从引用的托管程序集执行本机DLL调用时,调试程序挂起

时间:2014-08-29 21:08:23

标签: c# dll native managed

我的C#项目引用了依赖于本机dll的托管dll。因此,在调用托管dll函数之前,我将本机dll复制到文件夹:Path.GetDirectoryName(Assembly.GetAssembly(typeof(ManagedDllClass)).Location)

但是,我仍然遇到问题,在执行本机调用时,我的调试器挂起。这可能是什么原因?处理引用的托管dll依赖于本机dll的情况的首选方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

"原生DLL"在这种情况下实际上是误导。

.NET只能使用COM Interop与COM服务器DLL连接。通常,COM DLL需要在操作系统中注册才能通过.NET访问 - 它们通常不像.NET程序集那样兼容xcopy。

如果您不确定COM服务器DLL是否已注册,请使用regsvr32.exe再次注册DLL。

有关如何使用regsvr32.exe的更多说明:How to use the Regsvr32 tool and troubleshoot Regsvr32 error messages