在很久很久以前,曾經有一種語言,對於很多人來說是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