讓VB生成的DLL工程匯出函式

2021-04-19 18:46:46 字數 918 閱讀 9743

vb是方便的快速開發語言之一,但是vb和最近流行的python相比,有一致使的缺點,就是它為了盡可能方便程式設計師傻瓜式開發,而把自己封閉在一圈子裡了,遮蔽了很多特性,比如用vb建立com元件是超級簡單,可惜若要自己加點東西,實存太麻煩了,比如我要讓dll匯出我自己的函式,用vb預設就做不到。

剛好這段時間要用vb做乙個demo,故分析了一下,發現vb的link.exe是支援匯出函式的,只是vb的ide沒有提供入口而已,故寫一工具以輔助之,相信很多人都遇到相似的事情。

具體原理我就不多說了,大家檢視一下vb中link.exe中引數幫助即知曉。

使用方法如下:先把vb原來的link.exe改名為link2.exe,然後把本工具link.exe拷到原來link.exe的相同目錄下即可。

若你想匯出函式,只要在你的工程目錄中,增加一.def檔案,此def檔案的格式和vc是一樣的,如:

library      "advapidemops"

description  'proxy/stub dll'

exports

dllcanunloadnow         @1    private

dllgetclassobject       @2    private

dllregisterserver       @3    private

dllunregisterserver     @4    private

initadvapi              @20    private

def的檔名任意,編譯時,會自動查詢當前工程下的def檔案,若沒有def檔案,則直接呼叫原來的link2.exe進行連線,若發現有def檔案,則會提示使用發現的def檔案進行鏈結。

鏈結完後你用depend等工具檢視一下生成的dll,即可發現你在def檔案中定義的匯出函式已經成功匯出了。

gook luck。

C 生成DLL匯出函式的小demo

一 建立dll 1.生成dll檔案,匯出函式,一般有兩種方法,一種是在函式宣告前面加上 declspec dllexport 另一種是用def檔案來動態匯出函式。這篇寫乙個用def匯出函式的小demo。2.建立makedll檔案。1 makedll.h define mathfuncsdll exp...

檢視dll的匯出函式

以下摘自msdn 選項由選項說明符 短劃線 或者正斜槓 後跟選項的名稱組成。選項名不能縮寫。某些選項帶引數,引數在冒號 後指定。在選項規範內不允許有空格或製表符。使用乙個或多個空格或製表符來分隔命令列中的選項規範。選項名及其關鍵字或檔名引數不區分大小寫。大多數選項適用於所有二進位制檔案 少數選項僅適...

如何隱藏DLL的匯出函式

估計有時你不想暴露所有的匯出函式,匯出乙個類有時候更是不安全的。以下這樣做是否可以?dll中定義乙個基類 class iinte ce 匯出類從這個基類派生 driver.h class cdriver public iinte ce driver.cpp void cdriver dfun1 vo...