【发布时间】:2023-03-19 19:49:01
【问题描述】:
我已经在 QtCreator 和 Visual Studio 2015 中尝试过。我玩过不同的配置,据我所知,我已经正确设置了环境。
但是,每当我进行 API 调用(到目前为止,我只尝试 WiFi Direct 调用)并在发布模式下构建时,我都会收到此错误。
C2664 'long __winRT::__getActivationFactoryByPCWSTR(void *,Platform::Guid &,void **)': cannot convert argument 1 from 'const wchar_t [60]' to 'void *'
在调试中,我在 Visual Studio 2015 中遇到这些错误。
Error LNK2038 mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in main.obj qtmaind.lib(qtmain_win.obj)
Error LNK2001 unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MainWindow::metaObject(void)const " (?metaObject@MainWindow@@UBEPBUQMetaObject@@XZ) PROJECT mainwindow.obj
Error LNK2001 unresolved external symbol "public: virtual void * __thiscall MainWindow::qt_metacast(char const *)" (?qt_metacast@MainWindow@@UAEPAXPBD@Z) SSLocalServer mainwindow.obj
Error LNK2001 unresolved external symbol "public: virtual int __thiscall MainWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z) mainwindow.obj
Error LNK2019 unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z) qtmaind.lib(qtmain_win.obj)
先简单的问题。当前版本的 Qt 5.6 甚至可以在桌面应用程序中使用 WinRT API(特别是 WiFi Direct)吗?
如果是,我错过了什么?
编辑—— My test project. Qt 目录可能需要更改。
【问题讨论】:
-
您确定您使用的 Qt 副本已使用您用于编译应用程序的同一编译器进行编译吗? This question 就是关于这个问题的。
-
请添加重现问题的最小示例。确保包含完整的
.pro文件、完整的main.cpp(它应该是您拥有的唯一其他源文件)以及指向您的Qt 二进制文件副本的链接,或者您用来编译您的文件的configure行Qt 的副本。 -
@KubaOber 测试项目已添加。我没有编译我自己的 Qt 版本。这是 5.6 的社区版本,它似乎使用不同版本的 msvc 编译了它的调试 msvc 2015 调试库。
-
如果不自己编译,你会很难用 Qt 进行开发。我建议您这样做,否则很难重现此问题,因为这可能是包装问题,仅此而已。我没有使用任何预构建的 Qt,所以至少我自己无法测试它。
-
@KubaOber 编译我自己的 Qt 5.6.0 版本导致完全相同的错误。这使得 MSC_VER 错误完全没有意义,也让我觉得我缺少一些配置选项或 Qt 5.6 的一些配置导致了问题。
标签: visual-studio qt visual-c++ windows-runtime c++-cx