c++ - 低版本visual studio构建.dll

标签 c++ visual-studio visual-c++ dll

我正在使用 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/

相关文章:

c++ - 仅使用 Win32 API 的线程屏障类

c++ - Visual Studio 不创建 .exe

visual-c++ - 我在哪里翻译 MFC 消息框

c++ - 不需要删除 vector<StructA*> 中的结构内存吗?

c++ - 初学者 C++ 以多种方式接收输入

c++ - C++中如何检查一个对象是否是模板类的实例?

c++ - 访问派生类中成员变量的地址。当成员具有不同的访问说明符时行为会发生变化

c++ - C++中复杂继承的实现

c++ - 库管理对象的生命周期,使用智能指针还是原始的?