1
我有一個COM客戶端和一個COM服務器,COM服務器擁有一個由客戶端公開的接口,現在客戶端實際上只是一個EXE,我如何確保客戶端公開的接口是可見的服務器?E_NOINTERFACE返回
因爲當我在服務器的該接口上調用CoCreateInstance時,我得到一個E_NOINTERFACE,並且我懷疑這是因爲系統上沒有註冊客戶端的代理/存根dll。
我有一個COM客戶端和一個COM服務器,COM服務器擁有一個由客戶端公開的接口,現在客戶端實際上只是一個EXE,我如何確保客戶端公開的接口是可見的服務器?E_NOINTERFACE返回
因爲當我在服務器的該接口上調用CoCreateInstance時,我得到一個E_NOINTERFACE,並且我懷疑這是因爲系統上沒有註冊客戶端的代理/存根dll。
是的,如果COM不能封送接口,則可以返回E_NOINTERFACE
。您可以使用Process Monitor來嘗試查找究竟發生了什麼。
所以我檢查了註冊表和IID存在的接口,但它仍然返回錯誤,還有什麼我可以做的嗎? – 2010-07-06 14:32:04
在ProcMon第一次查詢密鑰時,它說'BUFFER TOO SMALL' – 2010-07-06 14:34:27
好吧,IID存在,那麼是什麼?如果COM試圖找到代理/存根並失敗會怎麼樣?你不應該期望你只是看着Process Monitor輸出一會兒,並立即看到什麼是錯的。 – sharptooth 2010-07-07 05:36:17