VS2008 error C2470

error C2470: '***类' : looks like a function definition, but there is no parameter list; skipping apparent body。

操作过程:由于***类 是我自己封装的dll,在编译该库的时候没有此错误,但是在需要用的工程里导入该库的时候在编译的时候报了此错误。

原因:找了会发现是我在dll库工程声明宏的时候声明在了stdafx.h里面,

#ifdef POTATO_EXPORTS
#define POTATOEXPORT _declspec(dllexport)
#else
#define POTATOEXPORT _declspec(dllimport)
#endif

在编译该dll工程的时候 这个stdafx.h文件是能找到了 因此编译dll库的时候不会报错,但是将该dll加载到所需工程的时候,由于stdafx.h头文件包含在dll工程里,在别的工程里就找不到#define POTATOEXPORT _declspec(dllimport) 所以会报looks like a function definition, but there is no parameter list; skipping apparent body。


解决办法:在dll工程里新添加一个头文件,然后将此宏

#ifdef POTATO_EXPORTS
#define POTATOEXPORT _declspec(dllexport)
#else
#define POTATOEXPORT _declspec(dllimport)
#endif

放在该头文件里,最后在你需要导出的类的头文件里包含此头文件再编译dll工程,替换所需工程里的dll,同步头文件以及lib,然后编译所需工程,通过。问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值