2011-10-12 141 views
1

我有3個.vbp項目是一個組的一部分。VB6項目參考

我能夠做的3和2的dll,當我要拍的1

的dll我的1項目引用設置項目的正確的DLL 2.

然而,當我保存更改並重新打開vbg文件時。我已經改變的引用沒有被顯示,並且它回到了某個版本的dll。

我還沒有在COM工作,我無法前進。 任何輸入或支持是高度讚賞。

回答

7

當您引用ActiveX或COM DLL的和EXE的,你幾乎沒有任何控制哪些DLL或EXE文件實際上得到,因爲VB6從的GUID和Windows註冊表工作嚴格使用。使用VB6和ActiveX以及保持理智的關鍵是理解二進制兼容性。 (見http://www.vbsight.com/BinaryComp.htm)。

這裏是我的關於的ActiveX/COM項目建議(無論是EXE,DLL,或OCX):

(1)瞭解二進制兼容性設置。 (2)將參考可執行文件後綴加上.cmp文件(如Project1.dll.cmp)是一種很好的做法。當你查看二進制兼容性時,你會明白我的意思。

(3)在VirtualPC中開發你的VB6 ActiveX工程; VB6 ActiveX開發在Windows註冊表上造成了很多磨損。 (4)當VB有理由找到ActiveX對象時,Reference =設置中DLL/EXE/OCX的文件路徑將會改變;它會隨着它在註冊表中找到的任何東西(最新註冊勝利)。此外,還有「升級ActiveX控件」設置可以進行更改的項目屬性。

(5)你有一點過度的GUID或類型庫VB6會產生,除非你可以通過適當的二進制兼容性管理實現程度的控制。

0

如果您使用的DLL文件的二進制兼容性選項/ OCX控件你在VB6編譯,重新編譯你的東西后,在現有的VB6項目中引用會斷裂。我們處理這個'問題'很多,所以我們實現了我們的VB6 Project References Update Utility來自動替換現有的.vbp項目中對ActiveX的引用。該實用程序是免費且開放源代碼的,最有可能的是,爲類似情況下的其他人節省大量時間。