在运行时为32位和64位加载dll

时间:2010-10-28 11:08:14

标签: c++

我需要在运行时为32位和64位加载dll。我如何确定32位和64位。

谢谢, 鉴

3 个答案:

答案 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

相关问题