建立可以輸出函式的DLL vb教程

2021-05-26 02:28:47 字數 1289 閱讀 6642

vb中建立的dll只是com元件,無法作為輸出函式的dll。

vb編譯檔案實際上採取了兩次編譯的方法,首先是呼叫c2.exe產生obj檔案,然後呼叫link.exe連線。如果在link的時候新增export選項,實際上是可以輸出函式的。但是,在vb的工程選項中將這些遮蔽了。而且過分的是:vb在build完成後會將obj檔案刪除,這樣就無法通過link來輸出函式了。不過我找到乙個比較齷鹺的變通的方法,就是先建立乙個exe工程,在form_load事件裡面寫下面的語句:

private sub form_load()

if (msgbox(/"hehe/", vbokcancel) = vbok) then

shell /"link2.exe /" & command$

end if

endend sub

然後編譯為linktemp.exe,接下來將link.exe改名為link2.exe,將linktemp.exe改名為link.exe。這樣在vb呼叫link.exe時會彈出對話方塊,處理就會中斷。這時就可以有機會將obj檔案拷貝出來了

然後我建立了乙個activex dll工程,在這個工程裡面新增乙個module並建立乙個public函式mathadd:

public function mathadd(byval a as long, byval b as long) as long

mathadd = a + b

end function

builder這個工程,在link的時候就會中斷。然後把建立的class1.obj、module1.obj、project1.obj備份出來。

然後就可以呼叫link2.exe連線obj到dll了,我的連線**是:

link2.exe /"e://vbdll" /"e://vbdll"

/"e://vbdll" /"e://program files//microsoft visual

studio//vb98" /entry:__vbas /export:mathadd

/out:/"e://vbdll" /base:0x11000000 /subsystem:windows,4.0

/vers

注意裡面的/entry和/export開關,/export開關宣告了輸出函式mathadd。這樣就大功告成了

:-d,可以被其他語言引入,例如在vb中,只需要:

private declare function mathadd lib /"e://vbdll" (byval a

as long, byval b as long) as long

就可以了。

VB中建立可以輸出函式的DLL

vb中建立的dll只是 元件,無法作為輸出函式的dll。今天從袁波 搞到一種可以建立輸出函式的dll的方法。vb編譯檔案實際上採取了兩次編譯的方法,首先是呼叫c2.exe產生obj檔案,然後呼叫link.exe連線。如果在link的時候新增export選項,實際上是可以輸出函式的。但是,在vb的工程...

VB中建立可以輸出函式的DLL

vb中建立可以輸出函式的dll vb中建立的dll只是com元件,無法作為輸出函式的dll。今天從袁波 搞到一種可以建立輸出函式的dll的方法。vb編譯檔案實際上採取了兩次編譯的方法,首先是呼叫c2.exe產生obj檔案,然後呼叫link.exe連線。如果在link的時候新增export選項,實際上...

python建立可以迭代的類

python中可以使用 for in 進行遍歷 迭代 的資料型別,都是可迭代的物件。如 列表,字串,字典,元組 都是可迭代的 iterable 而浮點數,整型,布林值都是不可迭代。for i in 1 2,3 4 print i for i in abcd print i for i in prin...