2014-03-13 55 views
0

我被要求維護使用VB6編寫的這種傳統activeX。我已經確定了我需要做的一項改變。但是,一旦我重新編譯並註冊ActiveX,對象不會加載重新編譯的OCX未在Internet Explorer中初始化

如下所示

<OBJECT style="display:none;" ID="Utils" Name="Utils" CLASSID="CLSID:EF82C1E0-36D4-4BDE-8EEB-10C7105C3FAF"></OBJECT> 

在稍後階段初始化對象,該對象在腳本中引用如下所示

if (typeof document.all.utils != "undefined" && document.all.utils != null) 

這裏document.all.utils是undefined :(

我一直在挖掘這個幾個小時,現在找不到任何有用的東西我試過去了http://msdn.microsoft.com/en-us/library/941zhks9%28v=vs.71%29.aspx,但這種聯繫並未解決應該做些什麼,以確保對象是可訪問的

誰能幫我什麼,我需要

+0

你弄壞的二進制兼容性?你的LPK文件過時了嗎?是否有任何有用的症狀(錯誤消息等)? – Bob77

+0

我沒有LPK文件。我如何檢查二進制兼容性? – Dhawalk

+1

第一步是查看IDE的Project Properties的Component選項卡。這是你處理兼容性的地方。但最終它只是關於類和類型信息以及COM接口版本中的GUID更改。你能找到一個VB6程序員來幫助你嗎? – Bob77

回答

0

正如Bob77建議,問題是,我的類GUID得到了改變。顯然它得到了改變,因爲我保存了.vbp文件!不知道,發生了什麼事。

驗證類公會會在註冊表中查找

Computer\HKEY_CLASSES_ROOT\[yourComponent]\Clsid 

注意的最好方法:你註冊的組件

解決此之後,這隻會工作,我只是刪除了文件夾包含該項目並檢查了最新的源代碼管理。一旦我有最新的代碼,它與同一個類GUID

下面的鏈接將是運行到類似的問題的人非常有用的編譯

http://forums.asp.net/t/1547658.aspx?INTEROP+CLSID+changes+every+new+build+How+can+I+solve+it+as+application+asp+net+does+not+stop+when+new+DLL+is+registred+