vc2005调用gsl库出现的诡异错误,请大家指点。c文件可以cpp不可以,请指点
使用网上hessan的sift
其中的xform用到了gsl科学计算库
原先sift是使用c的,我用到了vc2005中,没有问题
但后来我要把sift功能移植到一个MFC的工程中去,发现所有c文件都要改成cpp
于是我就改了,最后,编译可以了,而且可以通过生成
于是就要调试了,结果一debug
总是中断 啊,
我干脆一个一个文件的加入工程,直到加入xform.cpp的时候,哪怕我在工程中还没调用其中的函数, 工程都是一debug
就中断,出现访问xx的错误
中断进入 gs_support.c,
#if define(_WIN64)
cookie =systime.ft_scalar
...
看callstack
再下分别是 GetSystemTimeAsFile()
mainCRTStartup()
这种诡异问题应该怎么解决呢?
[解决办法]
不用改成.cpp文件呀,直接加入就可以了
包含头文件的时候加上extern "C"{
#include "gsl的头文件.h"
}
[解决办法]
extern "C" 是为了避免C函数被C++调用的时候,名称被改编。