我想知道如何將.NET C#COM對象(使用.NET的COM Interop工具創建)添加到Visual Studio 2008 ATL EXE服務器。基本上,我試圖創建一個進程外的自動化服務器來保存我的C#COM對象,以允許它充當許多客戶端的Singleton服務器。我認爲我需要做的就是將正確的條目添加到ATL EXE服務器的IDL文件中?這聽起來正確嗎?任何人也有任何想法如何實際實例化我的C#COM對象呢?我猜我需要重新定義它的GUID,否則它會馬上實例化C#。謝謝你的幫助。HOWTO將.NET COM Interop集合到ATL EXE服務器上?
-David
例如: 。
import "oaidl.idl";
import "ocidl.idl";
[
uuid(A9F9E81F-D5FE-4718-8078-E8378CFB3D3C),
version(1.0),
helpstring("Libreria dei tipi SSOLoginDLLServer 1.0")
]
library SSOLoginDLLServerLib
{
importlib("stdole2.tlb");
import "SSOLoginDLL.tlb"; <-- Reference included to my C# project which creates the TLB
[
uuid(A8FD5BC5-3B8D-4828-B9CB-6496A7A6D9B9)
]
coclass CSSOLogin
{
[default] interface ISSOLogin;
[default, source] dispinterface ISSOLoginEvents;
};
};
這聽起來像你有三個問題那種混亂了。 (1)如何在ATL中創建一個COM服務器; (2)如何使該服務器單實例和/或有實例共享一個單例資源; (3)從該服務器(或資源)中如何實例化和使用另一個COM對象(恰好在.NET中實現)。你能否澄清你所困擾的是哪些? – Eric 2009-12-11 03:33:42
另外兩個我可以驗證/測試一次我有你的#3的答案:),所以我會說如何讓ATL EXE COM服務器向外界提供另一個已經寫好的COM對象。謝謝。 – David 2009-12-11 11:32:12