场景 - 我正在编写一个控制台应用程序。需要使用一个名为Interop.ABCServer.DLL的特定DLL [我对COM很陌生,所以不知道它在这里的作用,但我已经通过ILDASM检查了这个DLL,它打开并显示元数据。所以,我猜它是一个.NET DLL而不是COM DLL]
现在当我尝试通过初始化其中某个类来使用它时,它会给我抛出一个异常 - 由于以下错误:80040154,无法检索具有CLSID<1111-1111....>的组件的COM类工厂。
问题 - 假设COM组件是一种旧技术,并且需要先注册组件,我们需要以某种方式注册它。如何注册此组件(记住它是.NET dll而不是COM dll)?
上述注册是否解决了问题?如果没有,那么如何解决它。
现在我已经使用regsvr32.dll注册了ABCServer.dll。
但是,我有如下代码:
try
{
Ilookup LP = New LoopUpClass();
IServer Svr = LP.LookUpServer(hostname, port);
}
catch(Exception ex)
{
}
之前报错的第一行现在只是终止了应用程序。我甚至在调试时在第一行和第二行添加了断点。但控制从未到达第二行,只要我按下F10键就立即终止应用程序。
基本上,一旦我注册了COM组件,我该如何使用它。我需要在ADD REFERENCE对话框中的COM选项卡中注册它,还是需要重新创建一个INTEROP.ABCServer.DLL文件,或者可以使用我提供的原始INTEROP.ABCServer.DLL文件。