2011-04-28 42 views
1

在前面的問題中,我試圖獲得一個C#類作爲VB5的COM對象運行。& 6.我確實設法讓COM對象與VB6應用程序一起工作,但是在使用VB5時遇到了問題 - 在同一臺機器上。C#COM組件適用於VB6,但不適用於VB5 - 這有什麼用?

作爲參考,以前的問題是HERE

我的最終目標是讓這個COM對象適用於VB5,但是當它運行時它會拋出一個異常:運行時錯誤80070002.對Stackoverflow的研究表明HERE這個錯誤代碼是一個File not found異常。 VB6程序能夠在與VB5程序相同的機器上運行(相同的代碼),COM DLL已正確註冊(使用regasm.exe),TLB顯示在VB5中的引用列表中。正在執行的代碼是:

Dim arcom As ARCOMObject.ARCOM_Class 
Set arcom = New ARCOMObject.ARCOM_Class 
Dim s As String 
s = arcom.GetServiceResponse() 
MsgBox (s) 

執行實例化類的行時拋出異常。

在其他地方我發現,特別是在上面提到的第二個SO參考文獻中,已經提出了使用utility.exe來查看可能缺失什麼依賴關係的建議。不幸的是,我無法在我的.Net開發機器和VB5機器上找到這樣的實用程序。我不知道這是否會告訴我任何東西,但...

那麼,什麼不能VB5看到,VB6要麼可以看到或不需要?

編輯補充:

重要的警告 - 因爲它扔了錯誤,而從IDE中運行我從來沒有建立可執行文件來運行它,但是當我終於長出了一槍這樣做因爲DependencyWalker需要它,所以我發現可執行文件本身工作正常!現在,DependencyWalker給我提示「警告:由於延遲加載相關模塊中缺少導出功能,至少有一個模塊導入未解析。」哇,這很酷,這句話究竟意味着什麼?大聲笑。

,無論如何,我不知道,我有需要的時刻解決問題,但任何建議,歡迎!

+0

這可能會幫助:http://www.dependencywalker.com/ – 2011-04-28 17:44:02

+0

這確實幫助,但不一定在預期時尚!查看我的問題的附加組件。 – Cyberherbalist 2011-04-28 18:10:07

+0

谷歌搜索該錯誤消息拋出了幾命中提示錯誤可能是忽略不計(例如http://www.dependencywalker.com/faq.html),但如果你在Windows XP上運行它也許只有。 – 2011-04-28 18:15:17

回答

2

以下是我在解決這些類型問題時遇到的問題。你的問題是,VB5版本在某處丟失了一個文件,所以你需要知道哪一個文件。簡單的解決方案(不訴諸於WinDBG)是拋出FileMon或ProcMon - 過濾它,以便只看到失敗。

然後,當你的應用程序失敗,您會看到哪些文件不見了。

+0

將procmon和Filemon的幫助我走出這樣的擁堵就不止一次。 – DarinH 2011-05-02 17:03:15

相關問題