我们可以使用编译为32位的应用程序调用为64位编译的DLL的函数吗?

时间:2011-02-09 05:04:24

标签: c windows interop 64-bit 32bit-64bit

我们可以使用编译为32位的应用程序调用为64位编译的DLL的函数吗?

我正在使用Windows 2008 64位系统。但是,应用程序仍然使用32位编译。

该代码涉及MFC& Windows SDK功能。

2 个答案:

答案 0 :(得分:4)

否。 32位应用程序无法将64位模块加载到其进程空间中(反之亦然)。

请记住,32位进程仅在专用的Windows-on-Windows(WOW64)子系统中的64位版本的Windows上受支持。这使得互操作性最多变得棘手。如果您关心技术细节,Raymond Chen的blog entry on the subject非常有启发性。

您需要重新编译其中一个,或者将其加载到一个单独的进程中,并使用interprocess communication来协调这两个进程。

答案 1 :(得分:1)

那是不可能的。包含在dll中的二进制代码是不同的,指针是64位。