當前位置:首頁 » 操作系統 » vbdll源碼

vbdll源碼

發布時間: 2022-09-25 12:19:42

❶ VB 怎麼編寫DLL

編寫API類型的DLL請看我後面的哪個文章,不明白的可以網路HI我,我實驗成功了

1-4問題,原因是ActiveX DLL 本質是一個控制項,所以你使用它就必須像使用控制項一樣引用,才可以

5、可以,但是這樣DLL很難封裝API一類的函數,有點類似於自定義控制項的效果。

6、可以,見下面的文章

怎樣用VB編寫.DLL動態鏈接庫文件

VB中創建的DLL只是COM組件,無法作為輸出函數的DLL,其實這只是個錯誤的說法。其實MS非常狡猾,如果你是個VB瘋狂發燒友的話,應該早就狂試出這種可以創建輸出函數的DLL的方法。
VB編譯文件實際上採取了兩次編譯的方法,首先是調用C2.exe產生*.OBJ文件,然後調用Link.EXE連接。如果在LINK的時候添加EXPORT選項,實際上是可以輸出函數的。但是,在VB的工程選項中將這些屏蔽了。而且過分的是:VB在Build完成後會將OBJ文件刪除,這樣就無法手動通過Link來創建我們需要的DLL了。不過我找到一個比較齷鹺的變通的方法,就是先創建一個Exe工程,在Form_Load事件裡面寫下面的語句:

Sub Main
If MsgBox("哈哈", vbOKCancel) = vbOK Then
Shell "link2.exe " & Command$
End If
End Sub

然後編譯為LinkTemp.EXE,接下來將LINK.EXE改名為Link2.exe,將LinkTemp.EXE改名為Link.EXE。這樣在VB調用Link.EXE時會彈出對話框,處理就會中斷。這時就可以有機會將OBJ文件拷貝出來了。
然後我創建了一個ActiveX DLL工程,在這個工程裡面添加一個Mole並創建一個Public函數mathadd:

Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
mathadd = a + b
End Function

編譯這個工程,在Link的時候就會中斷。然後把創建的Class1.obj、Mole1.obj、Project1.obj備份出來。
然後就可以調用Link2.exe連接OBJ到DLL了,我的連接代碼是:

Link2.exe "e:\vbdll\Class1.obj" "e:\vbdll\Mole1.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 /VERSION:1.0 /Dll /INCREMENTAL:NO /OPT:REF /MERGE:.rdata=.text /IGNORE:4078

注意裡面的/ENTRY和/EXPORT開關,/EXPORT開關聲明了輸出函數mathadd。這樣就大功告成了,可以被其他語言引入,例如在VB中,只需要:

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

❷ 怎樣用VB編寫標准dll

1、首先創建一個DLL工程,如圖:

❸ asp 調用vb寫的dll文件(源代碼)

假設dll文件和asp代碼文件在同一目錄以下是調用代碼
<%
Dim uploadPath
Dim objUpload
set objUpload = Server.CreateObject("dll文件名.類名")
uploadPath = Server.MapPath("/")
if Request.ServerVariables("Request_Method")<>"GET" then
objUpload.UploadPath=uploadPath//調用了DLL中的uploadpath方法
objUpload.UploadFlag=2
objUpload.IllegalTypes="asp,php,gif"
objUpload.GetFiles()
objUpload.FileName(0)="rename.txt"
objUpload.UploadFiles()
end if
%>
至於怎麼用VB封裝DLL,你可以Google一下。

❹ 什麼是VB源碼

這個詞分為兩部分來解釋。
第一、VB
VB可以是指一種計算機語言,是Visual Basic的縮寫,由美國微軟公司開發;也可以指用來進行VB語言開發的開發平台,比如MicroSoft Visual Basic 6.0

計算機語言分為最早的也是最基本的機器語言(二進制語言)、低級語言(匯編)、高級語言(VB、C、C++、C#)。其中執行效率最高的是機器語言,它不需要編譯可以直接被機器讀懂。效率最低的是高級語言,它需要經過編譯甚至多次編譯才能轉變為機器語言。但是高級語言是最接近自然語言的(如:英語),因此被廣泛的使用。

第二、源碼
類似的,用英語書寫的可以用來交流的文字片斷叫做文章,那麼用VB語言來書寫的可以被計算機編譯平台理解的文字片斷就叫做VB代碼了。
那麼如果有一個程序,是使用VB語言來寫成的,那麼這些VB語言就叫做該程序的VB源碼

不知道這樣解釋樓主能不能理解

❺ 求vb編寫dll的源代碼

希望下面的對你有幫助:
VB一般可以生成兩種特殊的DLL,一個是ActiveX DLL和ActiveX Control(*.ocx)。這兩種DLL都是VB支持的標准類型,在VB自身的例子中有,你可以參考。更詳細的介紹可以參考我寫的《Visual Basic編程晉級:ActiveX控制項》(http://china.zealsoft.com/articles/vbactivex/)一書的「第十六章 其他ActiveX部件 」。

NewViewStudio的意見:
VB中創建的DLL只是COM組件,無法作為輸出函數的DLL,其實這只是個錯誤的說法。其實MS非常狡猾,如果你是個VB瘋狂發燒友的話,應該早就狂試出這種可以創建輸出函數的DLL的方法。
VB編譯文件實際上採取了兩次編譯的方法,首先是調用C2.exe產生*.OBJ文件,然後調用Link.EXE連接。如果在LINK的時候添加EXPORT選項,實際上是可以輸出函數的。但是,在VB的工程選項中將這些屏蔽了。而且過分的是:VB在Build完成後會將OBJ文件刪除,這樣就無法手動通過Link來創建我們需要的DLL了。不過我找到一個比較齷鹺的變通的方法,就是先創建一個Exe工程,在Form_Load事件裡面寫下面的語句:

Sub Main
If MsgBox("哈哈", vbOKCancel) = vbOK Then
Shell "link2.exe " & Command$
End If
End Sub

然後編譯為LinkTemp.EXE,接下來將LINK.EXE改名為Link2.exe,將LinkTemp.EXE改名為Link.EXE。這樣在VB調用Link.EXE時會彈出對話框,處理就會中斷。這時就可以有機會將OBJ文件拷貝出來了。
然後我創建了一個ActiveX DLL工程,在這個工程裡面添加一個Mole並創建一個Public函數mathadd:

Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
mathadd = a + b
End Function

編譯這個工程,在Link的時候就會中斷。然後把創建的Class1.obj、Mole1.obj、Project1.obj備份出來。
然後就可以調用Link2.exe連接OBJ到DLL了,我的連接代碼是:

Link2.exe "e:\vbdll\Class1.obj" "e:\vbdll\Mole1.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 /VERSION:1.0 /Dll /INCREMENTAL:NO /OPT:REF /MERGE:.rdata=.text /IGNORE:4078

注意裡面的/ENTRY和/EXPORT開關,/EXPORT開關聲明了輸出函數mathadd。這樣就大功告成了,可以被其他語言引入,例如在VB中,只需要:

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

主持人註:
1)更詳細地說明,可以參考Ron Petrusha寫的Creating a Windows DLL with Visual Basic(http://www.windowsdevcenter.com/pub/a/windows/2005/04/26/create_dll.html?page=1)
2)這里有一個中文例子vbmakedll.zip。

老牛的意見:
同意樓上NewViewStudio的意見——經過變通,VB可以做出輸出函數的標准動態鏈接庫——其實,國外早已經有人做出了在VB中製作標准DLL的Add-Ins了,使用非常方便,我也做過測試,證明確實可行。詳情請看這里:
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=54190&lngWId=1

❻ VB編寫的DLL插件,想知道源碼或者反編譯,應該怎麼做高分求教!

可以反編譯,但反編譯後的代碼能夠重新使用的幾乎沒有,最多隻能搞出一些代碼片段來。
在這里回答問題的大多數本身就是程序員,反編譯是我們最忌諱的事,這是砸我們的飯碗啊。所以你還是就此打住吧,到其他地方悄悄地問。呵呵。。。

❼ VB調用DLL文件,怎麼在VB里編寫代碼,DLL文件有,說明和使用步驟也有,我是菜鳥高手幫忙

VB對API的支持不是直接的,而且是不完全的; 在使用上,Windows的API編寫時是假設調用者是C或C++語言,因此VB調用API不是很方便,容易出錯。有些數據類型比如char*需要做專門的處理,具體可以網上查資料多試,慢慢地調穩定。

VB中使用API之前,需要先對API進行聲明,聲明的方法是使用Declare關鍵字,如:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
聲明了一個名為SendMessage的API函數。許多API的聲明可以在API瀏覽器中找到,而且本文在講述一個API時也會給出聲明,更深入的知識將在以後講述。
比如你的:extern "C" __declspec( dllexport ) void OpenRelay( int iNum )這個函數,可以聲明成:
Public Declare Function OpenRelay Lib "你的dll文件名,放在和程序同一目錄下" Alias "OpenRelay" (i As Integer)

把這段聲明放在你的程序文件中的最上面,然後,你就可以在程序中調它了,如:
Dim n as Integer
n = 3
call OpenRelay(n)

開始的時候,程序可能不穩定,要多找原因,多試。記得運行前要存檔,因為一出錯,可能整個VB就掛了需要重新啟動。

❽ 怎麼用VB編寫DLL

  1. 打開VB,然後先中「ActiveX Dll」工程,然後開始編輯。

  2. 編完後,保存一般是以「.cls」和「.vbw」保存。這時你選擇「文件」菜單,彈出下拉框,選中「生成.dll」選項,它就會在上面彈出一個進度條「正在生成.dll文件」。

  3. 生成以後是一個有好象齒輪狀的圖標。如果你要引用,就開一個「標准EXE」工程,然後在「工程」選項中,單擊「引用」。

  4. 找到你剛才的「.dll」的文件名,在前面的復選框中打勾,就可以引用你剛才在那裡面寫的方法了。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:106
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:737
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:801
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:507
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:369