MFC下debug改成release版本出现问题及解决办法

  自己在debug下成功运行了自己写的测试自己写第三方库的程序,这里有用到opencv库,所以同时用到了自己的库和opencv的库,需求因为要进行速度的测试,是想要把debug改成release版本,这里出现了错误改了一天,终于搞定。

  这里遇到的错误及解决方法如下:

问题一:出现如下所示错误。

问题二:错误 77 error C1189: #error : Please use the /MD switch for _AFXDLL builds     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\afxver_.h 81。

问题三:出现自己导出的第三方库出现问题,说未实行定义,看着像只声明未定义的问题。

下面一一来说明自己最后成功解决的办法:

一、错误一是由于笔者写的动态库时运行库是MT(不懂的可以搜索一下),但调用程序是MD,说是因为运行库不匹配造成的。即一个程序中混合了不同的运行时库(静态库和动态库,调试库和非调试库),可能会产生冲突,所以一个程序中应该使用相同的运行时库。

、这个原因是因为可能你使用项目默认值MFC选项的时候,使用了dll共享功能(在共享DLL中使用MFC),而你的程序中使用了静态库版本导致,可以把在共享DLL中使用MFC改成在静态库中使用MFC来改正(注意这时你lib库也要是static版本的)。

三、在笔者遇到这个问题时也很纳闷,明明定义了而且实现了函数,但是还提示类似为实现的错误;后来发现时因为我的实现实在头文件中,也就是类里面实现的,inline函数,貌似在类里面实现不可以,要把实现放到cpp里面,这样就可以了。原因自己还不知道,猜测可能是在头文件中给出的是声明,而dll是用cpp生成的,没有实现,所以在lib找地址时找不到。有知道的同学可以共享下,谢谢。

共勉!

时间: 2024-08-24 17:45:43

MFC下debug改成release版本出现问题及解决办法的相关文章

Fiddler下Firefox提示“您的连接并不安全”的解决办法

一.版本信息 Firefox 最新版本V46.0.1 Fiddler 最新版本V4.6.2.3 二.错误信息 开启fiddlers的https协议捕获的方法,百度上可以查到不再赘述,直接放张图(Tools - Fiddlers Options……). 开启https协议捕获之后,用firefox访问任何https协议的网址,都会提示如下图所示的"你的连接并不安全"的提示. 三.解决办法 首先说明,网上有很多过时的方法,譬如: 1.修改firefox 的 隐藏配置 about:confi

IOS7 UITableView一行滑动删除后 被删除行的下一行的点击事件将被忽略解决办法

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {     returnUITableViewCellEdit

Magento 切换成中文后没有数据信息解决办法

一款基于Google Closure compiler压缩Js文件插件. 快捷键: Ctrl+Alt+M            当前文件内压缩Js代码(不推荐) Ctrl+Alt+Shift+M   压缩Js并生成压缩文件 *.min.js 安装成功重启,如果报错,在配置里改一个参数,"compiler": "uglify_js", { // the closure compiler adds new lines every 500 characters // fo

Linux 下文件名乱码(无效的编码)的解决办法

文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码. sudo apt-get install convmv convmv 使用方法:convmv -f 源编码 -t 新编码 [选项] 文件名常用参数:-r 递归处理子文件夹–notest 真正进行操作,默认情况下是不对文件进行真实操作–list 显示所有支持的编码–unescap 可以做一下转义,比如把

WIN7下安装visualC++2008 redistributable 出现1935错误的解决办法(转自)

转自:http://zhidao.baidu.com/link?url=jylNh_JeANi4wrOMmd4d2i06e_N3QCw7z6BLGiNNNTu1Hc6ADTkUq2PORExKmjtkehr-KMRPaQdBaxhnr91hPa WIN7下安装visualC++2008 redistributable 出现1935错误的解决办法 试了很多种方法都无法解决 caesarblbj | 浏览 5291 次 2013-09-05 21:54 2015-09-22 14:53 最佳答案 W

SpringCloud+Feign环境下文件上传与form-data同时存在的解决办法(2)

书接上文. 上文中描述了如何在 SpringCloud+Feign环境下上传文件与form-data同时存在的解决办法,实践证明基本可行,但却会引入其他问题. 主要导致的后果是: 1. 无法与普通Feign方法并存 2. 几率性(不确定条件下)导致其他form-data类型参数无法识别,无法正常工作,错误信息大致如下: org.springframework.web.multipart.support.MissingServletRequestPartException: Required re

复利计算5.0(改成Java版本)与 单元测试

//由于C语言版本不方便单元测试,所以改成了java版本,部分代码如下:import java.util.Scanner; public class FuLi{ public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("\n复利计算按 1\n单利计算按 2\n计算筹集的养老金按 3\n计算时间按 4\n计算您要的利率按 5\n计算本利和投资按 6\n计算

XP系统下Chrome浏览器打开某些网站闪退的解决办法

这个星期用Chrome浏览网站的过程中,突然出现没有什么提示的闪退现象.一开始没怎么注意,以为只是偶然现象,但当重启Chrome后点恢复按钮再次闪退,这就可以肯定是因为打开某些网站造成.于是再次重启Chrome浏览器并按下恢复按钮,在可能导致Chrome闪退那个网站打开之前关闭那个分页,这样Chrome就不闪退了.这个办法只能治标不能治本,下次再打开这个网站同样会出现闪退的现象. 为了彻底解决这个问题,于是就用搜索引擎找找看有没有解决办法.首先用"Chrome打开某些网站闪退"作为关键

linux QQ使用实践兼wine QQ2013版本太低无法使用解决办法

本人系统debian7,安装完系统后就搜索了QQ使用,这可是最基本的功能.参考http://www.longene.org/forum/viewtopic.php?f=6&t=4700 摘要一部分:+-----------------------------------------------------------------------+安装说明:+-----------------------------------------------------------------------+