我有一个非常古老的(VC ++ 5.0)专有DLL,我需要在C#(Visual Studio 2010)中使用它。该示例指定要访问此组件,我需要调用CreateDispatch("application")
来指示OLE。
以下是示例代码(C ++):
IComponentServer Server;
Server.CreateDispatch("Component.Server");
我通过Visual Studio向我添加了TLB文件,我可以成功导入其命名空间,但IComponentServer
没有任何名为CreateDispatch
的方法。
通过C#创建OLE组件实例的正确方法是什么?
答案 0 :(得分:3)
如果您有CLSID或ProgID,则可以使用以下方法集。
var type = Type.GetTypeFromProgID(progIdString);
var obj = Activator.CreateInstance(type);
var server = (IComponentServer)obj;
答案 1 :(得分:1)
MFC的CreateDispatch
基于CLSID或ProgId字符串创建COM对象。您可以直接从C#代码实例化COM对象。
假设Visual Studio引用为您提供 Interop.Component.dll :
IComponentServer server = new Interop.Component.ServerClass();