全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2015
推到 Plurk!
推到 Facebook!

讀取還未載入DLL的ProgID ?

 
SleepWalker
一般會員


發表:16
回覆:20
積分:12
註冊:2004-06-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-09-18 18:23:24 IP:220.229.xxx.xxx 未訂閱

有辦法從DLL檔案裡直接取出DLL ProgID做應用嗎?

SleepWalker
一般會員


發表:16
回覆:20
積分:12
註冊:2004-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-09-29 09:16:36 IP:220.229.xxx.xxx 未訂閱

已解決, 方法是使用TLBINF32.DLL,

附上簡單的範例, 用VB寫成的COM,

Public Function GetProgID(ByVal sFileName As String) As Variant
Dim TLibInfo As TypeLibInfo
Dim TLibClass As CoClasses
Dim sResult() As String
Dim sHeader As String
Dim i As Integer

On Error GoTo ErrorMark

'Initialize
GetProgID = ""
sHeader = ""
Set TLibInfo = TypeLibInfoFromFile(Trim(sFileName))
Set TLibClass = TLibInfo.CoClasses

'ProgID Header
sHeader = TLibInfo.Name

If TLibClass.Count > 0 Then
ReDim sResult(TLibClass.Count - 1)

For i = 1 To TLibClass.Count
sResult(i - 1) = sHeader "." TLibClass.Item(i).Name
Next i

GetProgID = sResult
End If

ErrorMark:
Set TLibInfo = Nothing
Set TLibClass = Nothing
End Function

Public Function CheckFormat(ByVal sFileName As String) As Boolean
Dim TLibInfo As TypeLibInfo
Dim TLibClass As CoClasses

On Error GoTo ErrorMark

CheckFormat = False
Set TLibInfo = TypeLibInfoFromFile(Trim(sFileName))
Set TLibClass = TLibInfo.CoClasses

If Trim(TLibInfo.Name) <> "" And TLibClass.Count > 0 Then
CheckFormat = True
End If

ErrorMark:
Set TLibInfo = Nothing
Set TLibClass = Nothing
End Function

系統時間:2024-04-26 23:10:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!