繁体   English   中英

将Visual C ++库DLL部署为私有程序集

[英]Deploying Visual C++ library DLLs as private assemblies

本页说明如何在您的应用程序中部署VC ++ 2008库的本地副本,以避免必须安装第三方vcredist。 这对我很有用,因为它使我可以将压缩的文件夹发送给可以运行的用户,而不必使用不受欢迎的安装程序。

但是,这对我不起作用。 我的应用程序不使用MFC,仅使用Win32,否则为标准C ++。 我有app/MyApp.exe ,就是这样...我应该从%PROGDIR%\\Microsoft Visual Studio 9.0\\VC\\Redist\\x86复制哪些文件,它们到底应该放在哪里?

我正在XP模式虚拟PC上对此进行测试,并且当我尝试按照页面中的说明进行操作时,跨文件复制对获取“应用程序初始化失败”错误没有任何影响。 我缺少一些步骤吗?

我看了看清单,似乎只使用了CRT: http : //pastebin.com/BD4NZMC2

解决DLL地狱的最简单方法是使用/ MT编译器标志(而不是默认的/ MD)重新编译应用程序。 这将静态链接C运行时库。 如果这是一个独立的exe,它将始终有效。

如果没有(即您有自己的DLL),则必须注意在同一模块中分配和释放内存-也就是说,如果您在可执行文件中分配了一块内存,而在DLL中释放了同一指针,则释放了该指针。 ,它将崩溃-因为可执行文件和DLL都将获得它们自己的堆,并且尝试对不匹配的堆使用free()将不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM