DLL导出类的静态成员函数问题,帮忙啊

Veryx 2008-03-19 01:05:19
// 类声明
class EXPORT Test{
public:
static void f();
}
// 函数定义
void Test::f(){
MessageBox(0,"",0,0);
}

// 外部app使用这个dll
int main(){
Test::f();
return 1;
}

声明静态成员函数的时候加static 没问题,定义函数的时候不加,好像导出的函数并不是static的
外部应用编译时会找不到符号,如果定义的时候加static又说 (“static”不应在文件范围内定义的成员函数上使用)
定义一个普通的static函数则错误是(必须有外部链接才可进行导出/导入)
但是如果不是生成dll,而是一般的w32应用就完全没有问题,郁闷啊,是不是dll有什么特殊的处理,请大家帮帮我
环境是vc2005
...全文
516 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
proxiaobai 2010-12-23
  • 打赏
  • 举报
回复
sss
Veryx 2008-03-19
  • 打赏
  • 举报
回复
啊!!不好意思,是我自己搞错了,谢谢
确实没问题,谢谢
cnzdgs 2008-03-19
  • 打赏
  • 举报
回复
是这样写。
把错误信息贴上看看。
Veryx 2008-03-19
  • 打赏
  • 举报
回复
外部的include 是
class IMPORT Test{
public:
static void f();
}
这么写应该没错吧
Veryx 2008-03-19
  • 打赏
  • 举报
回复
没错?可是导出来,外部应用就出什么 无法解析的外部符号 xxxx 什么的一堆
没有直接loadL,我就是用导出生成的lib 再编译
cnzdgs 2008-03-19
  • 打赏
  • 举报
回复
类定义中加static,实现的时候不加,按你这样写法没错。
lsyxp17 2008-03-19
  • 打赏
  • 举报
回复
你是怎么调用DLL的?隐式还是。。。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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