2012-03-16 37 views
6

我在32位Excel加載項應用程序中有一個類型庫。如何將32位typelib轉移到64位項目(同時防止出現nameclashes)

我需要將整個應用程序翻譯成64位。

enter image description here

我不能只是複製粘貼類型庫,因爲GUID的將與已安裝的32位應用程序,同上,用於命名衝突。
以避免名稱衝突的方式將應用程序轉換爲64位的最佳方式是什麼?

或者是否有一些機制可以自動解決我不知道的名稱和GUID衝突?

+0

[Windows 64位註冊表v.s. 32位註冊表](http://stackoverflow.com/questions/869783/windows-64-bit-registry-v-s-32-bit-registry)可能會有所幫助。 – kobik 2012-03-16 16:29:09

+0

因此,您有一個32位構建配置和64位構建配置的XE2應用程序,您只需切換構建配置並重建。對?如果大衛的回答是正確的(正如我懷疑的那樣),那麼這就是它的全部。 – 2012-03-16 16:46:57

+0

@WarrenP就是這樣。我沒有使用Excel COM插件完成這項工作(但是,我的TODO列表中的數據非常高),但是幾年前我在一個shell擴展中做了這個。整潔的事情是,你在各個方面使用相同的代碼,只是針對x86或x64。根本不需要條件編譯。 – 2012-03-16 17:03:59

回答

11

32位和64位COM服務器註冊在不同的註冊表視圖中。所以32位進程和64位進程存在於不相關的GUID名稱空間中。換句話說,對32位和64位版本使用相同的GUID。剩下的就是註冊表重定向器。

+0

感謝大衛,我懷疑(並希望)會是這樣。 – Johan 2012-03-16 20:01:37