|
DLL wINDOWS 下没问题 移植到UCOS 时编译发生错误
[复制链接]
DLL wINDOWS 下没问题 移植到UCOS 时编译发生错误: 错误如下
expected constructor, destructor, or type conversion before ‘(’ token
程序结构大概是:
XX.h
typedef struct tagstru1{
.....
}stru1;
typedef struct tagstru2{
.....
}stru2;
......
class a{
public:
函数1 ;
函数2;
....
stru1 s1;
stru2 s2;
.....
}
XX.cpp
a *a对象 = NULL; //全局
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
a对象 = new a;
}
函数1 ;
函数2;
....
然后建立 Export.h
#include "xx.h"
EXPORT 函数1;
EXPORT 函数1;
..............
Export.cpp
EXPORT 函数1
{
a对象->a类的函数;
}
EXPORT 函数2
{
a对象->a类的函数;
}
.......
在网上查了一下 只获取到一点信息 :有类似问题的都是将结构体声明为全局变量,且变量的声明与定义不在一起才会出现类似错误。因为c和c++的处理方式不同而导至,解决方案是把全局的放在函数体内完成。
此处我只有a对象是全局的。希望有经验的兄弟帮忙! 谢谢!
|
|