C语言调用C++函数出错

extern "C" string rd(int a,int b)//C++函数
{uc1601("进入RD函数",1);
char fnc[]="d:\\001\\1.xls";
string aab="";
// return(fnc[132]);
CoInitialize(NULL); //注意初始化
uc1601("完成初始化",1);

myexc::myexc_InterfacePtr p(__uuidof(myexc::Class1)); //创建智能指针
uc1601("完成指针",1);
myexc::myexc_Interface *s = p;
// printf(aab);
aab=WcharToChar(s->exc(CharToWchar(fnc),a,b));

// cout<<aab;
return(aab);

c语言调用时完成初始化后进入创建智能指针时出错,请问我该怎么做下去?谢谢!

哈哈,我看出来了,你是用vc编译的吧,看dos.h头文件,这是tc编译器的头文件,支持的暂停为delay()函数,如果用vc编译,那么就是用的windows环境下的32位编程,所以就应该加入windows.h这个头文件,告诉vc编译器这个名字空间,错误提示是由于你的sleep()函数中s要大写,改成大写就能编译通过了。
希望对你有所帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-27
extern "C" string rd(int a,int b)//C++函数

把 "C"去掉追问

问题是现在调用过程中已经进入了函数,系统也反馈了进入RD函数

追答

extern "C" 是指挥编译器按C来编译,删除它有没有问题?

本回答被网友采纳