2010-06-07 91 views
1

這是我的場景。我正在使用Quicktest Pro(VB)從Labview VI創建ActiveX對象,並將其構建到可執行文件中。在VI的編譯規範中,我啓用了ActiveX服務器選項(ActiveX服務器名稱:「MyLabviewProgram」),並在VI Tools> Options> VI Server:Configuration中選中ActiveX框。爲什麼activeX無法從Labview可執行文件創建對象?

所以在QTP我的代碼是:

Set IvApp = CreateObject("MyLabviewProgram.Application") 
Set Vi = IvApp.getVIReference("MyLabviewVI.vi") 
Vi.Call ParamNames, ParamVals 

在運行此我得到的第一線運行錯誤:

ActiveX組件不能創建對象:MyLabviewProgram.Application「

我無法弄清楚它爲什麼會出錯。在National Instruments網站上,他們在他們的社區網頁上介紹了「LabVIEW可執行文件用作ActiveX服務器」。該步驟是在構建EXE之後,5.在目標上至少運行一次EXE以激活.TLB文件。我已經運行了可執行文件,但不確定它們在目標上的含義。

有沒有人有什麼我需要做的建議,讓這項工作?

回答

1

你的描述聽起來像你正確創建了一個vi.exe。 「在目標上」可能意味着「在目標PC上」。 EXE每次執行時都會將所有COM註冊項添加到Windows註冊表中。

這聽起來像你還沒有驗證COM註冊條目存在於註冊表中。這是第一個調試步驟。

運行regedit.exe並在HKEY_CLASSES_ROOT子鍵下搜索MyLabviewProgram.Application。您應找到一個條目,其中包含一個包含GUID(十六進制數字)的值的子鍵。

該「密碼ID」GUID應引用HKCR/CLSID密鑰。該引用應該包含一個LocalServer32子鍵,其缺省值指向附加了/Automation參數的應用程序的.EXE文件路徑。

看起來這些步驟中的一個可能會失敗。沒有更多信息,我無法確切地說出哪一個。

+0

謝謝,這樣做我注意到我給的ActiveX服務器名稱中有一個「_」,但在HKEY_CLASSES_ROOT子項下它沒有下劃線顯示。 即我的ActiveX服務器名稱是「MyLabview_Program」 和註冊表項是「MyLabviewProgram」 我想因爲我將它們重命名爲通用在我的帖子中,我仍然應該包括我使用的任何特殊字符。 – Timmy16bmx 2010-06-07 21:24:22

相關問題