vb.net – VS 2008中的“多线程调试DLL”运行时库选项究竟是什么
发布时间:2020-12-17 00:10:08 所属栏目:大数据 来源:网络整理
导读:VS 2008中有一个解决方案来创建一个DLL.然后我在另一个应用程序中使用该DLL.如果我进入DLL项目属性页面,并更改以下DEBUG构建的配置,那么内置的dll不会提供所需的功能.如果我更改它并重建DLL,那么DLL确实提供了正确的功能: 属性页=配置属性= C/C++ =代码生成
VS 2008中有一个解决方案来创建一个DLL.然后我在另一个应用程序中使用该DLL.如果我进入DLL项目属性页面,并更改以下DEBUG构建的配置,那么内置的dll不会提供所需的功能.如果我更改它并重建DLL,那么DLL确实提供了正确的功能:
属性页=>配置属性=> C/C++ =>代码生成=>运行时库 如果设置为“多线程调试DLL(/ MDd)” 如果设置为“多线程DLL(/ MD)”,则DLL不能正常运行…没有运行时错误或任何东西,它不起作用(DLL应该在地图上绘制一些线,但不会在这种模式下). 所以问题是,为什么使用/ MDd标志会导致基础代码的修正功能,而/ MD会导致不正确的功能? 有一点背景…有人在C中开发了DLL,我在VB.net应用程序中使用这个DLL.
所有DLL /调试代码生成必须匹配使用它们的所有内容.可能有另一个引用的库或对象或DLL或者使用错误选项构建的一些代码;或覆盖全局项目选项的单个元素的特定选项.
找出它的唯一方法是仔细检查每个文件的所有选项,检查包含和引用的库(.lib和.dll)和对象文件.检查链接器选项. 它不起作用的原因可能是因为调试版本在内存周围添加了额外的保护块以允许检测到错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |