2013-10-24 156 views
1

如何在API僅支持32位調用時從x64應用程序調用x86 API函數。 示例CreateStream在x64系統上運行32位API

<DllImport("avifil32.dll")> _ 
    Public Shared Function AVIFileCreateStream(ByVal pfile As IntPtr, ByRef ppavi As IntPtr, ByRef ptr_streaminfo As MyAVISTREAMINFO) As Integer 
    End Function 

方案1:x64的計算機+編譯爲應用:avifil32.dll稱爲SUCCESSFULLY

方案2: 64計算機+編譯爲應用程序:avifil32.dll調用WITH ERROR

問題是,該應用程序也使用x64硬件驅動程序,我需要編譯爲x64。任何解決方法使用此avifil32.dll將是絕對好的。

Access violation with avifil32.dll

+0

任何方式你可以得到一個x64 dll的avifil?或者反過來在您的應用程序中使用x86硬件驅動程序?我不知道有什麼方法可以讓某些軟件成爲x86,其他成爲x64 – Brandon

回答

0

你需要一個新的項目添加到您的解決方案和移動API進去。在項目屬性中,您可以指定它將始終編譯爲x86。右鍵單擊Project> Properties> Compile> Target CPU> Set to x86。該設置對解決方案的配置(調試/發佈)和平臺(AnyCPU/x64/x86)設置是唯一的。確保它爲你使用的任何設置。

這將使您可以將主項目編譯爲x64,將API項目編譯爲x86。

相關問題