【问题标题】:Run 32Bit API on a x64 System在 x64 系统上运行 32 位 API
【发布时间】:2013-10-24 18:10:30
【问题描述】:

当 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 调用 SUCCESSFULLY

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

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

【问题讨论】:

  • 有什么方法可以获取 avifil 的 x64 dll 吗?或者相反,在您的应用程序中使用 x86 硬件驱动程序?我不知道有什么方法可以让软件的某些部分成为 x86 而其他部分成为 x64

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-06-12
    • 2012-07-26
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2012-11-17
    • 1970-01-01
    相关资源
    最近更新 更多