我需要在运行时为32位和64位加载dll。我如何确定32位和64位。
谢谢, 鉴
答案 0 :(得分:2)
在Windows上,您使用IsWow64Process()功能。
答案 1 :(得分:1)
通常这是在构建时完成的。您生成32位二进制文件,加载32位DLL和64位二进制文件,加载64位DLL。
然后,用户使用她的平台设置(32位安装程序或64位安装程序)。
所以没有必要在运行时找到你所在的平台。
无法在64位应用程序中加载32位DLL,反之亦然。
答案 2 :(得分:0)
对于Windows,您可以使用以下功能。
#include<Windows.h>
BOOL IsX86()
{
char proc[9];
GetEnvironmentVariable("PROCESSOR_ARCHITEW6432", proc, 9);
if (lstrcmpi(proc, "AMD64") == 0)
{
return FALSE;
}
return TRUE;
}
至少它对我有用。
详情请见链接:
http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx