1.fatal error C1900
错误:fatal error C1900: “P1”(第“20081201”版)和“P2”(第“20080116”版)之间 Il 不匹配
检查之后发现jepglib8c64.lib文件时LGCT库,重新编译成非LGCT库即可正常编译:
编译方法:设置项目-->属性-->配置属性-->常规-->项目默认值-->全程序优化选择“无全程序优化”
2
在MFC中使用,函数调用缺少参数列表;请使用“&Dlg6::Erosion”创建指向成员的指针
一般回调使用不正确,
如果在类中的回调,一定声明要用static,而且在类的实现中重新赋值
头文件中声明
typedef void(*stream_callback)(char* fReceiveBuffer, int frameSize); class video_stream_char{ static stream_callback mStreamCallback; };
类的实现中初始化
video_stream_char* video_stream_char::vsc=nullptr; stream_callback video_stream_char::mStreamCallback=nullptr; video_stream_char::video_stream_char(){ }
最后调用
3.1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: sprintf 已经在 中定义
多执行线程调试 (/MTd):对应 LIBCMTD.lib 生成debug版的lib
多执行线程 (/MT):对应 LIBCMT.lib 生成Release版的lib
多执行线程调试 DLL (/MDd):对应 MSVCRTD.lib 生成debug版的dll
多执行线程 DLL (/MD):对应 MSVCRT.lib 生成Release版的dll
4
stack around the variable '' was corrupted
可能是数组越界,也可能是dll库有修改,头文件没更新之类的
5
CRT detected that the application wrote to memory after end of heap buffer
数组越界
dll导出类的成员变化(如果不想导出,设置为private 用set/get方法访问)
dll接口变化