5
dllmain.cpp(16): warning C4447: 'main' signature found without threading mode
l. Consider using 'int main(Platform::Array<Platform::String^>^ args)'.

以上是我在构建 Windows Store App DLL 项目时收到的警告。除了包含我自己的 pch 版本外,我没有更改该默认 dllmain.cpp 文件中的任何内容。

在 MSDN 上找不到此警告的文档(以及许多 VS2012 错误/警告),这是我能找到的唯一相关链接:

http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/6daa9587-fe54-4e84-a8b9-0e5c52c2f6e8/

那里的操作员没有得到答案。

如果有人知道它的含义以及如何解决它,那就太好了!

4

1 回答 1

6

据我所知,您可以放心地忽略该警告。当编译器看到DllMain使用/ZW标志 ( Consume Windows Runtime Extensions ) 编译的 Win32 样式时,它会崩溃。但是,该函数会按照您通常的预期被调用。

或者,您可以通过编译dllmain.cpp而不使用/ZW. 您可能需要调整 PCH 设置才能正常工作。这是 Visual Studio 中的DLL(Windows 应用商店应用程序) C++/CX 项目模板所采用的路径。

顺便说一句,当您尝试构建Windows 运行时组件项目(使用 构建所有内容/ZW)时未收到警告的原因是 Windows 运行时组件未声明DllMain. 这并不是说它不能;它只是拾取DllMainCRT 定义的虚拟对象(它基本上关闭了每个线程的初始化并报告成功)。

于 2013-04-28T11:15:48.040 回答