此页面包含如何在应用程序中部署VC++ 2008库的本地副本的说明,以避免安装第三方vcredist。这对我很有用,因为它可以让我将一个压缩的文件夹发送给他们可以运行的用户,而不必使用安装程序,这是不受欢迎的。
但是,它对我不起作用。我的应用程序不使用MFC,只使用Win32,其他都是标准的MFC。我有app/MyApp.exe,仅此而已。我应该从%PROGDIR%\Microsoft Visual Studio 9.0\VC\Redist\x86复制哪些文件,以及它们到底应该放在哪里?
我在XP-Mode Virtual PC上进行测试,当我尝试按照页面中的说明进行操作时,复制文件不会导致出现“应用程序无法初始化”错误。我是否遗漏了什么步骤?
我看了看我的清单,似乎像预期的那样只使用了CRT:http://pastebin.com/BD4NZMC2
发布于 2011-05-18 17:47:00
解决动态链接库地狱的最简单方法是使用/MT编译器标志(而不是默认的/MD)重新编译您的应用程序。这将静态地链接C运行时库。如果这是一个独立的exe,这将始终有效。
如果不是这样(即你有自己的DLL ),你必须注意在同一个模块中分配和释放内存-也就是说,如果你malloc()可执行文件中的一块内存,而在DLL中释放相同的指针,它将崩溃-因为可执行文件和DLL都将获得它们自己的堆,并且试图在不匹配的堆上使用free()将不起作用。
https://stackoverflow.com/questions/6042585
复制相似问题