2011-02-09 140 views
0

我們可以使用爲32位編譯的應用程序調用爲64位編譯的DLL函數嗎?我們可以使用爲32位編譯的應用程序調用爲64位編譯的DLL函數嗎?

我正在使用Windows 2008 64位系統。但是,應用程序仍然使用32位編譯。

該代碼涉及到Windows SDK函數MFC &。

+0

[從32位進程調用64位DLL上的LoadLibrary]的可能重複(http://stackoverflow.com/questions/2466637/calling-loadlibrary-on-a-64-bit-dll-from -32位過程) – 2011-02-09 05:15:11

回答

4

編號 32位應用程序無法將64位模塊加載到其進程空間(反之亦然)。

請記住,32位進程只在64位版本的Windows中專用的Windows-on-Windows(WOW64)子系統上受支持。這使得互操作性充其量也是棘手的。雷蒙德陳的blog entry on the subject是非常有益的,如果你關心技術細節。

您將需要重新編譯一個或另一個,或將其加載到單獨的進程中,並使用interprocess communication在兩者之間進行協調。

+0

如果它是一個COM庫,你可以將它作爲一個進程外服務器加載,假設接口是可編組的... – bdonlan 2011-02-09 07:39:25

1

這是不可能的。包含在dll中的二進制代碼是不同的,指針是64位。

相關問題