問題細節描述:
現在有一個舊版本的應用程式使用的是老版本的COM組件,現在想做一個新版本的COM組件,完全替代舊版本的COM。卻不改動原應用程式的內容,不知是否可以實作原應用程式直接使用新版本COM組件實作其原有的功能?
uj5u.com熱心網友回復:
COM組件升級,一般是老介面保持不變,增加新介面,不同的IID這樣,老程式和新應用程式都可以相安無事,甚至新程式可以老介面和新介面混合使用
老程式,只知道老的IID,所以只能使用老介面了
uj5u.com熱心網友回復:
嗯!我想實作的是原應用程式直接呼叫新版本的COM組件而丟棄使用舊版本的COM組件,不知道這樣能否實作?uj5u.com熱心網友回復:
如果只是功能加強,介面未改變,可以直接替換COM組件成最新版本即可uj5u.com熱心網友回復:
使用ATL創建COM組件,可否將已經使用的組件的CLSID給另一個組件使用,然后應用程式不作任何改變的情況下去呼叫新的組件?uj5u.com熱心網友回復:
使用你的新的 COM 組件,然后注冊到原來的 CLSID 上面去就可以了。如果你使用 COM 組件提供的注冊方法,那么需要把原來的 CLSID 復制到新的工程中。
如果使用 ATL ,最簡單的方法就是,把原來工程的 .IDL 復制到新的工程中。
這樣介面定義和 coclass 都是一致的了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/153566.html
上一篇:opencv生成樣本描述檔案出錯
