有沒有什麼辦法可以建立一個VC++項目,這樣它創建的DLL/EXE將作爲32位Windows操作系統上的32位應用程序和64位Windows操作系統上的64位應用程序(不在WOW64中) 。我們可以創建一個VC++可執行文件,它可以在32位和64位Windows上本地工作嗎?
我知道使用/ ANYCPU選項的C#應用程序是可能的。
有沒有什麼辦法可以建立一個VC++項目,這樣它創建的DLL/EXE將作爲32位Windows操作系統上的32位應用程序和64位Windows操作系統上的64位應用程序(不在WOW64中) 。我們可以創建一個VC++可執行文件,它可以在32位和64位Windows上本地工作嗎?
我知道使用/ ANYCPU選項的C#應用程序是可能的。
CLR對/ ANYCPU選項有特殊的加載器支持。
如果你真的想爲本土做到這一點,做到這一點的最好辦法是:
這就是Sysinternals工具的工作原理(將Process Explorer下載到64位機器上並運行它:您會看到它將procexp64.exe寫入磁盤,然後從那裏運行它)。這是一個黑客,但它的工作原理。
不AFAIK - 問題是,
您可以爲.EXE做的最好的事情是發佈一個32位.exe文件,檢查它是否運行WOW64,然後生成64位版本。但我不能想到庫的等價技巧 - 它必須首先匹配主機進程的位才能加載。