有没有办法构建VC ++项目,以便它创建的dll / exe将在32位Windows操作系统上作为32位应用程序工作,在64位Windows操作系统上作为64位应用程序工作(不在WOW64中) )。
我知道使用/ ANYCPU选项的C#应用程序是可能的。
答案 0 :(得分:10)
CLR为/ ANYCPU选项提供了特殊的加载程序支持。
如果真的想要为本地人做这件事,最好的办法是:
这就是Sysinternals工具的工作方式(将Process Explorer下载到64位计算机上并运行它:您将看到它将procexp64.exe写入磁盘,然后从那里运行它)。这是一个黑客,但它的确有效。
答案 1 :(得分:5)
不是AFAIK - 问题在于
你能为.EXE做的最好的事情就是运送一个32位的.exe来检查它是否正在运行WOW64然后产生64位版本。我不能想到库的等效技巧 - 它必须首先匹配主机进程的位才能加载。