我正在使用 Visual Studio 2010 构建我的 DLL 库。
而且,其他使用 Visual Studio 2005 的程序员想要使用我的 DLL 库。他可以使用我的 dll 进行编译,但是,在运行他的应用程序时,它只是因 bad_alloc 异常而崩溃。我认为这是因为 CRT 版本不同。
在构建我的 DLL 库时,我尝试了 CRT(/MD) 的动态链接和 CRT(/MT) 的静态链接,但都失败了。
那么,我就不能制作低版本visual studio可以使用的DLL库吗?如果没有,我该怎么做?
最佳答案
据我所知,您必须只使用原始类型 dll 接口(interface)。这是因为即使在同一个编译器中,内存布局也会通过仅更改编译标志来更改,想想通过更改编译器会发生什么。这可能会导致大规模的未定义行为。
并为您的函数接口(interface)使用以下格式:
extern "C" __declspec(dllexport) void doSomething(int input);
关于c++ - 低版本visual studio构建.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261034/