微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C ++:如何在不使用mingwm10.dll的情况下提供单个可执行文件

如何解决C ++:如何在不使用mingwm10.dll的情况下提供单个可执行文件

|| 我正在使用C ++ / wxWidgets创建一个小的跨平台程序。通过使用静态链接,我最终只为Windows获取一个.exe文件。但是,它仍然需要一个小的(18 KB)mingwm10.dll 尽管我可以使用此dll分发我的应用程序,但我更希望将其“放在” .exe里面...可以吗? 谢谢     

解决方法

如果使用configure脚本编译wxWidgets,请添加“ 0”。这会将
wxUSE_THREADS
设置为0,wxThread类,并且所有依赖线程的代码都不会编译。不会自动链接mingwm10.dll。     ,\“包含所有项目文件的单个EXE”称为安装脚本。考虑类似InnoSetup或MSI之类的东西。 从理论上讲,可以在首次使用的代码上滚动自己的安装DLL,但是非常丑陋。它像这样:将DLL(如果可能的话)添加到EXE作为资源。在启动时,您尝试加载DLL。如果不能,请从资源中获取并放置在某个地方。而这将在非管理员用户下崩溃。自动特权升级将不起作用(它适用于安装文件)。而且您必须非常小心,在安装DLL之前不要调用任何东西。就像我说的那样,非常非常难看。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。