在聲明組件的方法時(shí),,有時(shí)候會(huì)用到其它的組件作為參數(shù),,這時(shí)會(huì)在一個(gè)組件的DLL中引入其他組件的定義。 如果在組件B的實(shí)現(xiàn)文件B.DLL中使用了A組件,,則B.DLL也包含組件A的定義,,假如有個(gè)應(yīng)用程序同時(shí)要使用組件A和組件B時(shí),在這個(gè)程序開(kāi)頭必須包含這樣的語(yǔ)句: #import "..\A.dll" no_namespace raw_interfaces_only, raw_native_types #import "..\B.dll" no_namespace, raw_interfaces_only, raw_native_types, named_guids 問(wèn)題出來(lái)了,,因?yàn)榫幾g時(shí)會(huì)說(shuō)”A組件被重復(fù)定義“而出錯(cuò),,原因是A組件在A.DLL和B.DLL都有定義,這顯然是不行的,,解決方法是在第2句加上exclude("IA") #import "..\A.dll" no_namespace raw_interfaces_only, raw_native_types #import "..\B.dll" no_namespace, raw_interfaces_only, raw_native_types, named_guids, exclude("IA") 意思是不包括B.DLL中關(guān)于A組件接口的定義,,這樣就解決了組件重復(fù)定義的問(wèn)題。 |
|
來(lái)自: semo_zhang > 《com組件》