我正在使用GetBinaryType检查可执行文件是32位还是64位。我正在针对64位文件进行测试,但它一直失败。我相信这是由于我比较DWORD结果的方式?

我正在使用Visual Studio 2010 C++:

DWORD dwBinaryType;
if (GetBinaryType(ChildFile(), &dwBinaryType) == 6)
{
    MessageBox(NULL, L"64bit Detected...", L"Debug: GetBinaryType", MB_OK); // DEBUG
}
else
{
    MessageBox(NULL, L"Probably 32bit...", L"Debug: GetBinaryType", MB_OK); // DEBUG
}

任何建议将不胜感激。

最佳答案

根据MSDN for GetBinaryType :

将上面的代码更改为此应该可以解决问题:

if (GetBinaryType(ChildFile(), &dwBinaryType)
    && dwBinaryType == SCS_64BIT_BINARY)
{
  // ...
}

关于c++ - C++ GetBinaryType失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20308195/

10-11 16:13