2009-01-07 19 views
4

我使用的是第三方應用程序,並進行呼叫建立 COM對象的實例。該調用是成功的,但是在功能上的第三方應用程序不會返回一個指向所創建的對象(我不知道爲什麼)。有什麼方法可以獲得指向我的對象的指針嗎?指向COM對象時,應用程序不會返回

澄清,這裏的一些僞代碼:

// This function has no return value! 
ThirdPartyApp.CreateObject("MyObject"); 
+0

什麼叫第三方庫? – willcodejavaforfood 2009-01-07 22:06:26

回答

2

在創建你的對象,使其成爲一個參考存儲本身在一個全局變量或一些其他類型的共享存儲位置。然後從您的COM DLL中導出一個函數,該函數將從該位置讀取,以便您可以調用它並獲取對之前創建的對象的引用。

這個共享的參考應該是而不是增加對象的引用計數,否則它永遠不會被銷燬。當你的對象被破壞時,確保你清除共享引用。

如果你能有這樣的對象在同一進程的多個實例,那麼你可能需要管理列表,而不是隻是一個單一的全局變量。

0
  1. 存儲您的返回值HRESULT(這是C++?),它可能會產生一個線索。
  2. 有時有偷偷摸摸的棘手編組/創建問題,如果你正在調用哪一個存在於另一個公寓工廠類型的對象。
相關問題