链接问题:Qt5.5 32位VS2013
Linking problems: Qt5.5 32bit VS2013
我一直在寻找这个问题的答案,但到目前为止还没有运气。
使用Qt5.5 32位,VS2013在Win8 64位
我的。pro文件包含这个:
INCLUDEPATH += "C:Program Files (x86)Microsoft SDKsWindowsv7.1AInclude"
LIBS += -L"C:Program Files (x86)Microsoft SDKsWindowsv7.1ALib" -ladvapi32
我已经检查了两个文件夹和WinUser.h是在包括和User32。
我的代码中有以下两个函数: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);
}
}
和
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);
}
我在Windows 7 64位的Qt 5.3.2 32位VS2010上使用完全相同的代码,它编译没有问题。在我目前的配置中,我在函数的::SystemParametersInfo和SendMessage部分上得到链接错误,并在标头上得到一堆警告。
C:Program Files (x86)Microsoft SDKsWindowsv7.1AIncludesal_supp.h:57: warning: C4005: '__useHeader' : macro redefinition
连接错误的main.obj:-1: error: LNK2019: unresolved external symbol __imp__SystemParametersInfoW@16 referenced in function "void __cdecl suppressAnimations(void)" (?suppressAnimations@@YAXXZ)
backgroundtaskmanager.obj:-1: error: LNK2019: unresolved external symbol __imp__SendMessageW@16 referenced in function "private: int __thiscall BackgroundTaskManager::changeMonitorState(bool)" (?changeMonitorState@BackgroundTaskManager@@AAEH_N@Z)
另一点信息,我也在Win7 64位上使用Qt5.5 32位VS2013尝试过,也收到了如上所述的错误。还有一点信息,在Qt Creator中,我可以按F2以上任何一个符号,它带我到正确的标题。
谁能给我指个正确的方向吗?我知道这很简单:
LIBS += -L"C:Program Files (x86)Microsoft SDKsWindowsv7.1ALib" -ladvapi32 -luser32
我没有链接user32.lib.
相关文章:
- 将应用程序从32位移植到64位时出现问题
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 浮点数为 32 位和 64 位二进制表示形式
- C++易失性:保证 32 位访问?
- C++将 16 位值转换为 32 位值
- 如何在 64 位平台上计算 32 位哈希C++?
- C++中的24位到32位转换
- 在机器字大小等于 32 位的计算机上int64_t如何工作?
- uint32_t如何保证 32 位?
- 将代码从 32 位迁移到 64 位时出现问题 Visual Studio 2010
- 如何将32位字符与内联assembelyc++中的32位字符进行比较
- 一个32位版本的应用程序,建立在CentOS 6 x64上,当在较新的Linux上启动时,在"dl_itera
- x86 32位对Cuda的支持
- 我把我的编译器从32位转换为64位,但我仍然不能使用超过2GB:(为什么
- 如何使用Canny到32位灰度
- 如何忽略32位整数中的特定位
- Clang++的InterlockedExchange的32位调用约定错误,但MSVC可以
- 链接问题:Qt5.5 32位VS2013