c调用类的问题

wzh0324 2004-07-19 05:15:58
我现在的一个工程是用纯c做的,现在扩充功能,扩充的内容是用c++写成类来实现的。现在不知道怎么在c的工程里调用类,我把几个cpp文件加到工程以后,编译不能通过。然后我在工程里面追加了两个文件classmanage.c 和 classmanage.h,想用他们来作为访问类的接口,在classmanage.h文件中这样声明函数:extern "C" int initCodeFile();然后在classmanage.c文件中进行实现,来操作我的那几个类。等于我的工程调用的是classmanage中的函数,而不是直接调用类的函数。这样编译还是报错:“d:\program files\microsoft visual studio\vc98\include\eh.h(32) : fatal error C1189: #error : "eh.h is only for C++!"”。我现在不知道怎么办了,有没有人知道应该如何解决,多谢了。急等!
...全文
141 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzh0324 2004-07-28
  • 打赏
  • 举报
回复
谢谢大家,问题解决了。是别的原因出的问题,我一开始的做法是没问题的,这两天一直没来,现在马上结贴,不好意思了。
antijpn 2004-07-20
  • 打赏
  • 举报
回复
怎么会不可能改成cpp呢?把所有的文件名换掉就行了,然后把所有的#include指令修改一下就可以了
toxyboy 2004-07-20
  • 打赏
  • 举报
回复
同意 antijpn(antijpn) 所言,还有,extern "C"是c++里面调用c采用的方式。Mark
wzh0324 2004-07-19
  • 打赏
  • 举报
回复
因为这个工程原本就是用c写的,很多年了。现在进行维护,扩充一下功能,不可能改成cpp了。还有没有别的办法呢,除了dll
antijpn 2004-07-19
  • 打赏
  • 举报
回复
这个不太清楚,既然你用的是VC++6,为什么不换成C++来写呢?语法上面可以和C保持一致,只要把文件后缀换成CPP就行了,否则你就要用DLL了
wzh0324 2004-07-19
  • 打赏
  • 举报
回复
错误信息是:d:\program files\microsoft visual studio\vc98\include\eh.h(32) : fatal error C1189: #error : "eh.h is only for C++!"”。是vc安装路径下面的一个文件。好像是一个系统错误,不明白。
antijpn 2004-07-19
  • 打赏
  • 举报
回复
你的做法是正确的,哪里有eh.h啊?你添加的?
yndfcd 2004-07-19
  • 打赏
  • 举报
回复
用COM可以搞定.
wzh0324 2004-07-19
  • 打赏
  • 举报
回复
你的意思都把要实现的函数写在c文件里,不导入cpp文件,也就是说不能以类的方式存在,是这样吗?能不能举一个例子说明一下,谢谢!
antijpn 2004-07-19
  • 打赏
  • 举报
回复
用函数封装类,实现所有的接口,不把类导出

接口用extern "C"声明

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧