做个DLL给VB调用,要注意什么?

cenpy 2002-05-08 10:47:56
我要用C++做个DLL给VB调用,请问呀注意些什么呢!?
我只知道C++的调用DLL的方法,但是VB的又是怎样,怎样做才能让VB调用得更好呢!?

望各位高手指点指点!
...全文
47 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
begar 2002-08-23
  • 打赏
  • 举报
回复
def文件怎么做???????
谢谢
fishliu2000 2002-08-22
  • 打赏
  • 举报
回复
最好不要用指针,否则很痛苦
julyclyde 2002-08-22
  • 打赏
  • 举报
回复
WINAPI其实就是_stdcall
webber84 2002-08-21
  • 打赏
  • 举报
回复
楼上已经说得差不多了。一是要注意声明函数的方式:
extern "C" int WINAPI somefunc(int value);主要是注意extern "C"和WINAPI.二是用.def文件来进行输出。
jediknight 2002-08-21
  • 打赏
  • 举报
回复
抛砖引玉。
C++编译器在导出DLL中的函数时会将函数名改成修饰名,DLL中存储的就是修饰名。要使C++导出的函数在VB中能正确调用有两种方法:
1 定义函数时使用extern "C" 来关闭C++编译器的对函数名修饰功能,这将丧失一些面向对象的特性如多态。
例如,定义函数如下:
extern "C" void __declspec(dllimport) MyFunction()
{
MessageBox(0,"DLL内的函数","DLL",0);
}
编译后DLL导出一个函数名为:MyFunction的函数
2 使用DEF文件。
例如,定义函数如下:
void WINAPI MyFunction()
{
MessageBox(0,"DLL内的函数","DLL",0);
}
建立DEF文件,(假定编译后的DLL文件为MY.DLL)内容如下:
LIBRARY "MY.DLL"
EXPORTS
MyFunction
编译后也可以导出函数名为MyFunction的函数
VB调用如下:
首先申明函数如下
Private Declare Function MyFunction Lib "MY.dll" () As Variant
申明后就可以直接调用MyFunction函数了。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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