我一直在寻找答案,但还没有运气。
在Win8 64bit上使用Qt5.5 32位,VS2013
我的.pro文件包含:
NSLog(@"%f", NSFontWeightUltraLight);
NSLog(@"%f", NSFontWeightThin);
// ... need I go on?
我检查了两个文件夹,WinUser.h位于Include中,User32.lib存在于Lib中。
我的代码中有以下两个函数:
INCLUDEPATH += "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include"
LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -ladvapi32
和
void suppressAnimations()
{
ANIMATIONINFO m_original_settings;
m_original_settings.cbSize = sizeof(m_original_settings);
if (::SystemParametersInfo(SPI_GETANIMATION, sizeof(m_original_settings), &m_original_settings, 0)) {
ANIMATIONINFO no_animation = { sizeof(no_animation), 0 };
::SystemParametersInfo(SPI_SETANIMATION, sizeof(no_animation), &no_animation, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
}
我在Windows 7 64位上使用与Qt 5.3.2 32位VS2010完全相同的代码,它编译没有任何问题。在我当前的配置中,我得到了:: SystemParametersInfo和函数的SendMessage部分的链接错误以及标题上的一堆警告。
警告
int BackgroundTaskManager::changeMonitorState(bool turnOn)
{
int lparam = 2;
if(turnOn) {
lparam = -1;
BackgroundTaskManager::MonitorIsSleeping = false;
} else {
lparam = 2;
BackgroundTaskManager::MonitorIsSleeping = true;
}
return SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)lparam);
}
关联错误
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\sal_supp.h:57: warning: C4005: '__useHeader' : macro redefinition
另外一点信息,我在Win7 64bit上也尝试使用Qt5.5 32位VS2013,并且还收到了上述错误。还有一点信息,在Qt Creator中,我可以在上面的任何一个符号上按F2,它会将我带到正确的标题。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
我知道这很简单:
LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -ladvapi32 -luser32
我没有链接user32.lib。