C++/CLI x64 WindowsForms 应用程序的入口点 (VS 2015)

Entry point for C++/CLI x64 WindowsForms App (VS 2015)

我遇到了与 Visual Studio 2015 c++/CLI boost::thread 中的用户相同的问题:如果我同时使用 boost、Windows Forms 和 C++/Cli,我的应用程序会在启动时崩溃。

建议的解决方案对我有效(将子系统更改为控制台);唯一的小缺点是控制台与 GUI 一起启动。

我找到了另一个解决方案(参见 https://bytes.com/topic/net/answers/642179-c-cli-winforms-app-native-static-library-singletons-cra):将入口点更改为“?mainCRTStartupStrArray@@$$FYMHP$01AP$AAVString@System@@@Z”。

然而这只适用于 32 位编译;对于 64 位,符号无法解析。 我的问题:

啊,对于这个令人讨厌的被忽视的问题,隧道尽头的光亮了。您可以通过搜索 vc/lib/amd64 中的 .lib 文件找到正确的损坏名称。弹出msvcmrt.lib,名字是:

?mainCRTStartupStrArray@@$$FYMHPEAPE$AAVString@System@@@Z

顺便说一下,处理算法中的一个错误,它不应该添加额外的 E,因为这些是托管标识符。链接和运行良好,我还没有测试它是否解决了静态初始化顺序失败问题。很有前途。