VB中创建可以输出函数的DLL [转贴]

转载 2004年08月14日 20:07:00

转贴自:http://www.applevb.com/art/vb_dll.html

VB中创建的DLL只是COM组件,无法作为输出函数的DLL。今天从袁波哪里搞到一种可以创建输出函数的DLL的方法。

VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法通过Link来输出函数了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里面写下面的语句:

 

然后编译为linktemp.exe,接下来将LINK.EXE改名为Link2.exe,将linktemp.exe改名为link.exe。这样在VB调用link.exe时会弹出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了 J

然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Module并创建一个Public函数mathadd:


Builder这个工程,在Link的时候就会中断。然后把创建的Class1.obj、Module1.obj、Project1.obj备份出来。

然后就可以调用Link2.exe连接OBJ到DLL了,我的连接代码是:

link2.exe "e:/vbdll/Class1.obj" "e:/vbdll/Module1.obj" "e:/vbdll/Project1.obj" "E:/Program Files/Microsoft Visual Studio/VB98/VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:mathadd /OUT:"e:/vbdll/ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VERS

注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd。这样就大功告成了 :-D,可以被其他语言引入,例如在VB中,只需要:

Private Declare Function mathadd Lib "e:/vbdll/ProjectOK.dll" (ByVal a As Long, ByVal b As Long) As Long

就可以了。

如何将vbs脚本用VB封装为DLL,并在vbs脚本中调用

近来,做关于wincc的项目,用到将vbs脚本封装成DLL,并在vbs脚本里面调用,故而整理如下。 一、如何将vbs脚本封装DLL 1. 在VB6.0中新建ActiveX DLL工程。 2.命名...
  • sillyboy1104
  • sillyboy1104
  • 2015年03月24日 13:34
  • 1870

vs2010 .vb如何生成类库(DLL)

vs2010 vb如何生成类库(DLL) 1.打开VS2010,文件,新建项目-visual basic -windows-类库 .vb如何生成类库(DLL)" TITLE="vs2010 .vb如...
  • esonbest1234
  • esonbest1234
  • 2016年02月24日 11:36
  • 2051

如何用VB编写自己的DLL文件,并调用其中的函数

如何用VB编写自己的DLL文件,并调用其中的函数?
  • sillyboy1104
  • sillyboy1104
  • 2015年03月09日 22:54
  • 2515

c# 调用 研华库函数中 C++ 非托管 Dll 一例(包含指针成员的结构体的调用) [转贴]

http://blog.csdn.net/iamoyjj/article/details/4145188 最近用到研华的一款高精度AD转换卡,PCL816,需要使用C#调用研华库函数中的动态库文...
  • ttgzs
  • ttgzs
  • 2012年12月03日 08:55
  • 1027

创建可以输出函数的DLL-vb教程

VB中创建的DLL只是COM组件,无法作为输出函数的DLL。       VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的...
  • zhongyhc
  • zhongyhc
  • 2011年06月08日 10:40
  • 866

VB创建可以输出函数的DLL

VB中创建的DLL只是COM组件,无法作为输出函数的DLL。       VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在lin...
  • km_afei
  • km_afei
  • 2016年12月02日 12:29
  • 358

VB6创建能作为输出函数的DLL

  • 2013年06月27日 14:28
  • 29KB
  • 下载

【转贴】Fast Reports V3.15 输出CJK PDF完美解决方案

  • 2006年02月23日 09:05
  • 10KB
  • 下载

VB中调用vc++ DLL文件中的函数问题

VB中调用vc++ DLL文件中的函数问题(2007-04-26 14:02:45) 转载▼      一般来说,VB和VC共同编程有3种方式:一种是VC生...
  • nidayewocao
  • nidayewocao
  • 2011年12月01日 13:18
  • 1078

VB.net调用C++ 6.0 DLL内部函数

VB.net调用C++ 6.0 DLL内部函数动态链接库技术是Windows最重要的实现技术之一,Windows的许多新功能、新特性都是通过DLL来实现的。其实,Windows本身就是由许多DLL组成...
  • xjnzhidao
  • xjnzhidao
  • 2015年08月07日 16:51
  • 1261
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB中创建可以输出函数的DLL [转贴]
举报原因:
原因补充:

(最多只允许输入30个字)