導航:首頁 > 源碼編譯 > vba編譯過程

vba編譯過程

發布時間:2022-07-11 23:30:26

Ⅰ vb怎麼做個vb編譯

如果你要自己做程序編譯的話很難,就算調用c2.exe和link.exe也沒用,因為VB

在調用之前已經在臨時目錄下生成了一堆看不懂的東西。

但你可以調用VB主程序的命令行來生成程序,如你要生成的程序在D盤根目錄,工程文件為

1.vbp那你可以在CMD里打VB6.exe /make D:\1.vbp

具體的可以參照VB6.exe /?

附:

VB的編譯過程大致如下,當我們在編輯環境中編寫完代碼後,VB調用C2將所有的模塊(包括CLASS)編譯成OBJ文件(能夠為機器語言識別的代碼)。一下是C2的一些編譯參數說明(E文):

- the the name of the prefixed one used for the names of the rowscontaining ' precompilato', one

risen of intermediate tails (from which name of the switch) temporary; these rows are 5 and finish withi suffissi GL, SY, FORMER, IN and DB; they contained are not documented

- f the name of the rows to compile

- W3 warning level 3, level of ' attenzione' dedicating to i warnings

- Gy it qualifies the connection to level of function (function-level linking)

- G5 optimization for the Pentium

- Gs4096 it allows not to insert the code for the control of stack (stack probe) if a function does not

use more than 4096 byte of stack

- dos not documented

- Z1 it removes the name of the bookcase of default from the rows.OBJ

- Fofileobj the name of rows OBJ to generate (rows output)

- Qifdiv it puts in action the corrections for the bug of the division of the Pentium (FDIV bug)

- MILILITER it creates rows eseguibile single-threaded

- basic it indicates the compiler C2 the fact that the compilation it happens for a plan basic

C2完成編譯後,VB會調用LINK.EXE將所有的OBJ文件連接成EXE文件,完成編譯過程。下面是一段命令行演示如何調用LINK.EXE:

LINK C:\Test\Form1.obj C:\Test\Molo1.obj C:\Test\Progetto1.obj C:\Programmi\Microsoft Visual Studio\VB98\VBAEXE6.lib /ENTRY:__ vbaS /OUT:C:\Test\Progetto1.exe /BASE:0x400000 /SUBSYSTEM:WINDOWS, 4.0 /VERSION:1.0 /DEBUG /DEBUGTYPE:CV /INCREMENTAL:NOT /OPT:REF/MERGE:.rdata =.text /IGNORE:4078

對於我們來說這些參數沒有什麼意義,用默認的就行了。這段命令行中並沒有包括輸出函數,如果我們希望輸出函數,可以定義一個.def文件,按照格式加入要輸出的函數列表,然後在命令行後面加上 「/DEF: 文件名」(當然也可以直接加/ EXPORTS參數),再調用命令行編譯,用的denpendency工具查看你就會發現你要輸出的函數了。

Def文件格式的定義:

LIBRARY 程序名稱

DESCRIPTION "MyDLL - (C) Antonio Giuliana, 2004"

EXPORTS

函數名= ?函數名@函數所在模塊名@@AAGXXZ



例:

LIBRARY MyDLL

DESCRIPTION "MyDLL - (C) Antonio Giuliana, 2004"

EXPORTS

DllRegisterServer= ?DllRegisterServer@SymExp@@AAGXXZ

DllUnregisterServer= ?DllUnregisterServer@SymExp@@AAGXXZ

注意:函數名和模塊名是區分大小寫的

我先用Vb編一個截取C2、LINK命令的程序:

C2:
Private Sub Form_Load()
f = UCase$(Left$(Command$, 256))
Open "E:\C2.txt" For Output As #1
Print #1, f
Close
End
End Sub

LINK:
Private Sub Form_Load()
f = UCase$(Left$(Command$, 256))
Open "E:\C2.txt" For Output As #1
Print #1, f
Close
End
End Sub

生成EXE後把VB98下的c2與LINK剪切到別處,在用這兩個程序代替。運行VB6.exe,隨意打開一個工程,點文件菜單,生成EXE。
不久我編的兩個程序就送給我夢寐以求的文件:
E:\C2.txt
-IL "C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\VB381884" -F "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\新建文件夾 (2)\FORM1.FRM" -W 3 -GY -G5 -GS4096 -DOS -ZL -FO"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\FORM1.OBJ" -QIFDIV -ML -BASIC

E:\LINK.txt
"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\FORM1.OBJ" "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\LINK.OBJ" "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\VBAEXE6.LIB" /ENTRY:__VBAS /OUT:"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\LINK.EXE" /BASE:0X400000 /SUBS

這兩個TXT就是VB送給c2以及LINK的命令。
詳細解讀如下:
C2.txt
-IL "C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\VB381884" -F "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\新建文件夾 (2)\FORM1.FRM"是c2准備處理的兩個文件。 -W 3 -GY -G5 -GS4096 -DOS -ZL是c2生成OBJ的格式,後邊則是OBJ文件的地址。

LINK.txt
"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\FORM1.OBJ" "E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\LINK.OBJ"是源文件。"E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\VBAEXE6.LIB"是轉換庫。後面是EXE文件地址及格式

Ⅱ 寫好的宏如何編譯成可執行程序

VBA程序不能編譯,但可以保存成DVB文件而進行分發。

Ⅲ vbs edit如何進行vba編程

利用宏進行。
通過自定義按鈕、菜單,並指定一個宏,VBA過程,自定義界面也可以通過編程手段完成此類工作,通過單擊此按鈕即可調用相應的VBA代碼。
vbsedit用起來比較爽,它是一個非常好用的VBS編輯器,支持語法高亮與自動修正,支持把VBS編譯成EXE等。

Ⅳ VBA是什麼

VBA(Visual Basic for Applications)是Visual Basic的一種宏語言,是在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,特別是Microsoft Office軟體。它也可說是一種應用程式視覺化的 Basic 腳本。

VBA提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。它的編寫是以子過程和函數為單位,在 Access中以模塊形式出現。

(4)vba編譯過程擴展閱讀

vb和vba區別

VBA是VB的一個子集,也可以講是VB的簡化版。VB的應用程序編譯後可以在系統下直接運行,VBA不行,必須在office下運行。VBA統計學中的曲線圖有現成的「宏」編程序比較方便,但沒有個性化,修改比較麻煩。VB畫圖功能非常強大什度么都能畫,但編程序比較麻煩。

vba主要應用在Office組件里。比如在Excel里,可以自己寫函數,可以用代碼定義一系列的操作。vba作為程序的自動化腳本而存在,是為了提高程序的自動化程度。而VB是編寫程序的工具。

Ⅳ 將VBA的代碼編譯成64位的dll文件的問題

VB6 是32位的 無法編譯 64位的, 用VB.NET 吧,
另外64位的系統 也可以用兼容模式 運行32位程序的, 你勾選兼容試試

Ⅵ EXCEL中vba 編譯錯誤:過程太大的問題如何解決

樓主的意圖建立這個宏,是需要反復執行的嗎?如果只是一次性執行,其實大可不必如此啊
假設把5000個關鍵字放在表2,原文在表1
在表1中建立搜索函數find,找到的設為1,找不到的設為0,然後按這個值排序,最後集體選中值為1的刪除就ok啦。
如果是需要反復執行的話,再去考慮用宏咯

閱讀全文

與vba編譯過程相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:578
python員工信息登記表 瀏覽:376
高中美術pdf 瀏覽:160
java實現排列 瀏覽:512
javavector的用法 瀏覽:981
osi實現加密的三層 瀏覽:231
大眾寶來原廠中控如何安裝app 瀏覽:913
linux內核根文件系統 瀏覽:242
3d的命令面板不見了 瀏覽:525
武漢理工大學伺服器ip地址 瀏覽:148
亞馬遜雲伺服器登錄 瀏覽:524
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:929
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:250
哈夫曼編碼數據壓縮 瀏覽:424
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:348