VB代碼生成標準dll


 

 

在很久很久以前,曾經有一種語言,對於很多人來說是very beautiful,而對於很多人來說是very basic,它就是傳說中的vb。現在雖然各類語言風起雲涌,但是曾經這個語言也是流行一時。

 

在很多年前,因爲做autoit頁面自動化,但是autoit沒有很多方面的函數,考慮是否需要做標準dll,如果用vc,怕將來就維護代碼是個問題,必須選用更簡單的技術,於是用vb,會vb的人比較多。但是vb的ocx dll是COM組件,而非windows標準的dll,故此要尋找方法做出標準的dll,這樣就可以提供給各種語言進行調用了。

 

 

閒話少敘,開始:

 

先去下面down下zip包:

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=54190&lngWId=1

 

 

安裝步驟:

0) 解包zip,記錄下解包目錄;

1) 打開 .\linker\Linker.vbp,編譯成MakeDLL.exe,拷貝到vb安裝目錄(例如:d:\ProgramFiles\Microsoft Visual Studio\VB98)

2) 打開.\addin\MakeDLLAddin.vbp,編譯出MakeDLL.dll,MakeDLL.exp,MakeDLL.lib三個文件

3) 拷貝MakeDLL.DLL到vb安裝目錄,重啓vb

4) 拷貝.\dll project\目錄到項目模板目錄(例如:D:\ProgramFiles\Microsoft Visual Studio\VB98\template\projects)

 

 

使用方法:

1) 將項目模板目錄下的.\dllproject\拷貝出來,直接進行函數或者過程的修改添加;

 

試驗方法:

1) 先打開目錄.\test dll\下的項目,編譯成testdll.dll;

2) 再打開目錄.\test program\下的項目,打開調用testdll.dll執行。

 

 

看看例子是啥樣子的:

 

test dll\modTestDLL.bas:

Attribute VB_Name = "Module1"

''''''''''''''''''''''''''''''''''''''''''''''''

''    DLL PROJECT ?004 DanSoft Australia     ''

''   Your dlls MUST HAVE a DLLMain and Main   ''

'' proc, otherwise it won't compile properly! ''

''''''''''''''''''''''''''''''''''''''''''''''''

 

Function DLLMain(ByVal A As Long, ByVal B As Long, ByVal c As Long) As Long

    DLLMain = 1

End Function

 

Sub Main()

    'This is a dummy, so the IDE doesn't complain

    'there is no Sub Main.

End Sub

 

Function addition(ByVal A As Double, ByVal B As Double) As Double

    addition = A + B

End Function

 

Function subtraction(ByVal A As Double, ByVal B As Double) As Double

    subtraction = A - B

End Function

 

 

 

test dll\TestDLL.def:

LIBRARY TestDLL

EXPORTS

    addition

    subtraction

 

 

用vb直接寫個調用的例子:

test program\frmTest.frm

Private Declare Function subtraction Lib "testDLL.DLL" (ByVal A As Double, ByVal B As Double) As Double

Private Declare Function addition Lib "testDLL.DLL" (ByVal A As Double, ByVal B As Double) As Double

 

 

Private Sub cmdExit_Click()

End

End Sub

 

Private Sub Form_Load()

lblResult(0) = "9.87 + 2.99 = " & CStr(addition(9.87, 2.99))

lblResult(1) = "10 - 8.43 = " & CStr(subtraction(10, 8.43))

lblResult(2) = "9999 + 1543 = " & CStr(addition(9999, 1543))

End Sub

 

來看看最後結果:

001.Jpg

 

 

 

好了,懷舊貼大功告成,現在你的VB可以跨越語言,實現互聯互通了。

 

 

 

 

相關下載:

http://download.csdn.net/detail/testingba/5047346



 

 

發佈了87 篇原創文章 · 獲贊 23 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章