2008-12-05 79 views
11

我可以這樣做:關於產品的CreateObject()在VB6/VBA

Dim fso As New FileSystemObject 

或者我可以這樣做:

Dim fso As Object 
Set fso = CreateObject("Scripting.FileSystemObject") 

我怎麼知道是幹什麼用字符串創建對象?例如,我怎麼知道使用「腳本」。 「Scripting.FileSystemObject」的一部分?你去哪裏看那個?

回答

20

這是它在HKCR鍵註冊在Windows註冊表中的組件的ProgID

HKEY_CLASSES_ROOT\Scripting.FileSystemObject 

進程id的是COM對象的人類可讀的標識符。他們指出,實際的CLSID,在這種情況下是:

HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228} 

在這裏,你可以找到實際的COM .dll文件,其中包括組件的實現的地方。

在您提供的第一個示例代碼中,您正在進行早期綁定,而在第二個示例代碼中,您正在執行遲到綁定。

1

我會通過在MSDN庫中搜索FileSystemObject的在http://msdn.microsoft.com/library

該網站開始是座文檔的完整,包括如何調用創建對象的細節。

2

使用VB6 IDE,選擇Project,References,然後選擇引用'Microsoft Scripting Runtime'。

如果您不知道引用的調用方式,則可以使用「引用」對話框的「瀏覽」按鈕來選擇文件/系統32/scrrun.dll。

選擇參考,關閉參考對話框,然後打開對象瀏覽器(視圖菜單)。將下拉菜單更改爲最有可能的候選人,即'腳本'。這將顯示庫的類,其中一個是'FileSystemObject'。因此,你會發現CreateObject所需的字符串是'Scripting.FileSystemObject'。

如果您不知道參考名稱或文件名,但您確實知道類名稱,那麼您可以在註冊表中搜索「FileSystemObject」,並且很快就會發現您需要的完全限定名稱是' Scripting.FileSystemObject的」。