vs2010编译时出现错误提示:error C2470: “xx”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
来源:互联网 发布:everyonepiano软件下载 编辑:程序博客网 时间:2024/05/19 11:47
一个vs2010的项目中包含了多个dll工程,最近由于修改,对其中的两个dll工程A、B都拷贝了一份分别命名为C、D,然后修改原始工程中的文件名和类名,以便和原来的名称相区分,防止一不小心弄错了就麻烦了
原始的是B调用A,新的当然也就是D调用C了,修改完后,C编译正常,编译D的时候出现了错误提示,如下:
1>e:\dll\bcom\bcom.h(32): error C2470: “CComMgrBin”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
我修改的时候主要是把相关的文件在UltraEdit中打开,然后候其中的类和包含的文件名,这样修改方便,不用到IDE中一个一个修改。
这个错误有点奇怪,原始的都好好的,为什么就修改了文件名和类名就不行了呢?
上网上查了查,基本确定是类CComMgrBin定义的附近有错误,但看不出问题,各符号都没有修改,不可能会变成全角或者中文的,在D中修改包含的C的头文件后再编译D工程,提示找不到头文件,说明包含的头文件也是没错的。
CComMgrBin的类定义如下:
... // 包含需要的头文件#ifdef BCOMBIN_EXPORTS#define BCOMBIN_API __declspec(dllexport)#else#define BCOMlBIN_API __declspec(dllimport)#endif// 此类是导出的,其它模块需要调用之class BCOMBIN_API CComMgrBin: public CMyTask{private:CComMgrBin();virtual ~CComMgrBin();... // 其它的接口和变量
根据提示,在编译完C之后,修改
class BCOMBIN_API CComMgrBin: public CMyTask
一行如下:
class CComMgrBin: public CMyTask
即把其中的BCOMBIN_API删除掉,然后编译D,结果通过!那确定就是这个定义有问题,再仔细检查
#ifdef BCOMBIN_EXPORTS#define BCOMBIN_API __declspec(dllexport)#else#define BCOMlBIN_API __declspec(dllimport)#endif
中的else分支才发现,其中多了一个“1”,即
#define BCOMlBIN_API __declspec(dllimport)
需要删除中间的“1”,修改后如下:
#define BCOMBIN_API __declspec(dllimport)
然后恢复
class BCOMBIN_API CComMgrBin: public CMyTask再编译D通过!
原来是在手动修改 BCOMBIN_API 的时候,中间多写了一个字符1导致dllimport实际上没有被定义,所以在调用的模块中就认为是错误的了。
希望对大家有帮助
0 1
- vs2010编译时出现错误提示:error C2470: “xx”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
- vs2010 error C2470: “ClassA”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
- error C2470: “main()”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
- 解决:ERROR C2470:"XXX" 看起来像函数定义,但没有参数列表;跳过明显的函数体
- error C2470 错误记录与解决方法。“看起来像函数定义,但没有参数列表”
- error C2470 错误记录与解决方法。“看起来像函数定义,但没有参数列表”
- vs2010, error C2059: 语法错误:“namespace” error C2334: “{”的前面有意外标记;跳过明显的函数体
- 错误:没有与参数列表匹配的 重载函数
- MFC 错误:没有与参数列表匹配的 重载函数
- 错误:没有与参数列表匹配的 重载函数
- MFC 错误:没有与参数列表匹配的 重载函数
- UNREFERENCED_PARAMETER,函数定义中没有使用函数入口的参数列表中的参数
- 解决使用libpq时提示一系列SSL相关函数没有定义导致编译失败的问题
- 编译内核时出现没有ncurses的错误提示
- 编译失败,但没有错误提示
- xcode 的编译时提醒报错,但却没有提示错误的位置
- 在一个函数中定义了同名但不同型的参数 低级错误
- settimeout提示函数没有定义
- 解决Sublime Text 3中文显示乱码(tab中文方块)问题
- 在win7旗舰版64位系统中,qtp破解密钥时,程序运行马上提示已停止工作
- AIR功能扩展的分享
- Python内置数据类型之Dict
- 性能优化,进无止境---CPU篇
- vs2010编译时出现错误提示:error C2470: “xx”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
- UVa 122 Trees on the level(二叉树层次遍历)
- UINavigationBar 的设置
- windows genymotion 安装报错和idea启动genymotion报错
- 如何快速修改iMindMap Android中关联线格式
- Java序列化与反序列化
- retrofit 错误解析
- 交叉熵(Cross-Entropy)
- The type java.lang.Object cannot be resolved.It is indirectly referenced from required .class files