【发布时间】:2015-01-23 21:15:36
【问题描述】:
我有一个 VS2012 C++ 项目,它使用 vc.mak 生成文件来构建解决方案。我构建了一个或多或少相同的 .exe 和 .dll(exe 有一个 main() 是唯一的区别)。
我需要做什么才能使这两段代码可以在多个版本的 Windows 上运行?我使用的是 Windows 8.1 Pro,我当然可以运行我的 exe 并使用 dll 正常。我构建了一个新的 Win8.1 Pro VM,我发现尝试运行 .exe,它缺少 MSVCR110.dll 文件,所以我复制了它并运行。之后我的共享库也可以使用了。
我将项目的整个“安装”文件夹复制到我的同事 windows 8 框中,Exe 将运行,但我无法加载 .dll
我需要复制什么才能让我的 dll 在任何 Windows 机器上运行?
【问题讨论】:
-
请注意,如果 DLL 和加载它的应用程序使用不同的运行时库,则存在一些限制。例如,你不能将文件描述符从一个传递到另一个,你不能 malloc() 一个内存块,而 free() 另一个。
标签: c++ windows visual-studio-2012 dll