mfc调用c语言dll,c – VS2010中的MFC100d.dll问题

DLL名称上的d后缀表示它是运行时DLL的调试版本.事实证明,当您尝试运行应用程序的调试版本时,会发生问题.

默认情况下,调试构建链接到运行时库的调试版本.这些版本不可再发行,因此未使用可再发行组件包(vcredist_x86.exe)进行安装.这通常不是问题:您不应该发送应用程序的调试版本.

但是,不可再发行的调试库随Visual Studio一起安装,因此应用程序的调试版本应该在您用于开发和构建它的计算机上正常运行.这可能与您将用于调试它的计算机相同.

Also I have set the Multi-threaded DLL (/MD) as the Runtime Library.

关于此的三个重要事项:

>您必须确保将其设置为正确的构建配置(即“Debug”).

>不建议这样做.应用程序的调试版本应使用运行时库的调试版本.他们在幕后做很多事情来帮助你捕捉bug.这就是他们存在的原因.如果您不希望依赖于运行时库的调试版本,请编译并分发应用程序的Release版本.

>该开关更改应用程序链接到的C/C++运行时库的版本.您收到错误消息的DLL是MFC运行时库.

MFC头测试是否定义_DEBUG预处理器符号以确定应链接哪个版本的运行时库.由于_DEBUG是在调试版本中自动定义的,因此它在MFC库的调试版本中进行链接.

要改变这种情况,您需要做大量的手工劳动,在包含MFC标题之前取消定义此符号,然后再重新定义它.

或者,您可以静态链接到MFC,这是项目属性中的设置.但是要小心这一点:你最终会无意中混合CRT的版本,这会让你处于一个受伤的世界.最好只发布发布版本并保留调试版本以进行内部调试.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值