opencv中在静态库中使用MFC的配置

opencv中在静态库中使用MFC的配置


1、lib选择staticlib;
也就是VC++目录中的包含目录应该为如下路径
D:/Program Files/opencv/build/x86/vc12/staticlib


2、属性页---配置属性----MFC的使用---在静态库下使用MFC;
这样会将你程序用到的一些库写到你的exe文件中,换来的是可移植性,但是exe文件会稍微大一些


3、属性----C/C++ -----代码生成----运行库选择位多线程调试(/MTd)。
如果出现错误的话就换其他运行库方式(不出意外的话应该是这样
)


在静态库下会出现这种异常错误:

windows已在xx.exe中触发一个断点,其原因可能是堆被损坏,这说明xx.exe中或它所加载的任何DLL中有bug。 原因也可能是用户在xx.exe具有焦点时按下了F12。输出窗口可能提供了更多诊断信息 。
解决办法
1、确实是你程序错误,如果程序错误最有可能是你new的指针没有delete,或者某个内存没有分配就开始用再或者就是野指针等情况,最好单步调试,注意指针和数组。


2、opencv的配置错误
配置好opencv后发现我的程序在共享DLL下使用MFC是没有错误,但是一旦选择了静态库下使用MFC就出现了上面的错误。如果不是程序问题,那么查看下opencv的配置是否有问题,通常,Debug下面可能引用了Release下面静态编译的库。

你可能感兴趣的:(BUG)