制作含有类的dll

laymandog 2007-08-21 09:35:02
class A
{
public:
int fun();
};
我想把fun 做成接口函数,这样能吗?而且要能被vb调用。
给个方法或例 先谢啦。
online
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y___Y 2007-08-21
  • 打赏
  • 举报
回复
函数可以,但类不行
laymandog 2007-08-21
  • 打赏
  • 举报
回复
定义一个全局的
A * a;
extern "C" __declspec(dllexport) int __stdcall test();

int __stdcall test()
{
return a->fun();
}

这样好似得哦
我试过可以 嘿嘿
laymandog 2007-08-21
  • 打赏
  • 举报
回复
做成静态的能不?
Y___Y 2007-08-21
  • 打赏
  • 举报
回复
不能被vb调用
可以考虑写成com,这样vb就可以用了
laymandog 2007-08-21
  • 打赏
  • 举报
回复
想问下工程里应该是
#include "a.h"
还是
#include "a.cpp"
还是两个都写上
如果是a.cpp 会有警告
[C++ Warning] a.cpp(4): W8058 Cannot create pre-compiled header: code in header
本人觉得应是a.h 但有error
laymandog 2007-08-21
  • 打赏
  • 举报
回复
[Linker Error] Unresolved external 'A::fun()' referenced from E:\DLLTEST\UNIT1.OBJ
laymandog 2007-08-21
  • 打赏
  • 举报
回复
class A
{
public:
int fun();
};
int A:: fun()
{return 1;}
会有warning

如果定义与实现分则会有错误
文件:a.h
class A
{
public:
int fun();
};
a.cpp
#include "a.h"
int A::fun(){return 1;}
只有这样才没事
class A
{
public:
int fun(){return 1;}
};
是不是漏了什么?急。。。。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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