1

当 API 仅支持 32Bit 调用时,如何从 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成功调用

场景 2: x64 计算机 + 编译为x64应用程序:avifil32.dll 调用WITH ERROR

问题是,该应用程序也使用 x64 硬件驱动程序,我需要编译为 x64。使用此 avifil32.dll 的任何解决方法都非常棒。

avifil32.dll 访问冲突

4

1 回答 1

0

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

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

于 2013-10-25T20:06:57.687 回答