VS如何编译debug/release全版本的dll

xyconly 2016-08-18 05:37:07
在VS2013环境下,如何编译出一个Dll,即能在Deug下运行,也能在Release下运行。
是和运行时库相关吗?还是和/Zl相关?为何使用/Zl以后会有非常多的错误?
网上有许多dll直接可以加载进工程,即能在Debug下使用,也能在Release下使用,是如何做到的?
...全文
813 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hownbin 2019-10-29
  • 打赏
  • 举报
回复
确保dll导出接口及回调接口的参数不含std::string等在debug和release模式下内存分配方式有较大差异的参数类型,尽量使用内置数据类型。这样生成的release版dll,一般可以兼容debug程序。
赵4老师 2016-08-19
  • 打赏
  • 举报
回复
学会使用depends.exe查看exe依赖的dll
  • 打赏
  • 举报
回复
引用 5 楼 xyconly 的回复:
[quote=引用 3 楼 akirya 的回复:] [quote=引用 2 楼 xyconly 的回复:] [quote=引用 1 楼 akirya 的回复:] 本来标准dll就不分debug和release 能互相用
不太理解,如何使用VS2013编译一个标准的dll[/quote] 只导出C函数即可,当然参数也必须是C能用的类型。[/quote] 也就是说在导出类的函数中添加__cdecl[/quote] 只能导出的是C函数,不能是类

extern "C" __declspec( dllexport ) void func( int ,char*)
导出类的就不是标准DLL了,就算编译出来了,能用不能用还是一回事。
xyconly 2016-08-18
  • 打赏
  • 举报
回复
引用 3 楼 akirya 的回复:
[quote=引用 2 楼 xyconly 的回复:] [quote=引用 1 楼 akirya 的回复:] 本来标准dll就不分debug和release 能互相用
不太理解,如何使用VS2013编译一个标准的dll[/quote] 只导出C函数即可,当然参数也必须是C能用的类型。[/quote] 也就是说在导出类的函数中添加__cdecl
xyconly 2016-08-18
  • 打赏
  • 举报
回复
引用 1 楼 akirya 的回复:
本来标准dll就不分debug和release 能互相用
一般dll在Debug下。运行库选择“多线程调试 DLL (/MDd)” release下。选择“多线程 DLL (/MD)”
  • 打赏
  • 举报
回复
引用 2 楼 xyconly 的回复:
[quote=引用 1 楼 akirya 的回复:] 本来标准dll就不分debug和release 能互相用
不太理解,如何使用VS2013编译一个标准的dll[/quote] 只导出C函数即可,当然参数也必须是C能用的类型。
xyconly 2016-08-18
  • 打赏
  • 举报
回复
引用 1 楼 akirya 的回复:
本来标准dll就不分debug和release 能互相用
不太理解,如何使用VS2013编译一个标准的dll
  • 打赏
  • 举报
回复
本来标准dll就不分debug和release 能互相用

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧