在x64系统上运行32Bit API

时间:2013-10-24 18:10:31

标签: .net com windows-7-x64 cpu-architecture

当API仅支持32位调用时,如何从x64应用程序调用x86 API函数。 CreateStream

的示例
    <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计算机+编译为 x86 应用程序:avifil32.dll名为 SUCCESSFULLY

方案2: x64计算机+编译为 x64 应用程序:avifil32.dll名为 WITH ERROR

问题是,应用程序也在使用x64硬件驱动程序,我需要编译为x64。使用这个avifil32.dll的任何解决方法都是绝对好的。

Access violation with avifil32.dll

1 个答案:

答案 0 :(得分:0)

您需要向解决方案添加新项目并将API移入其中。在项目属性中,您可以指定它将始终编译为x86。右键单击项目&gt;属性&gt;编译&gt;目标CPU&gt;设置为x86。此设置对于解决方案的配置(调试/发布)和平台(AnyCPU / x64 / x86)设置是唯一的。确保为您使用的任何设置。

这将允许您将主项目编译为x64,将API项目编译为x86。