我正在编写一个 C# 应用程序,它使用一个用 C++ 编写的 dll 作为参考。我可以使用那个 dll 命名空间并且我的项目编译得很好。但是,当我运行它时,我在为属性分配值的那一行中不断出现错误。我得到的异常错误如下:
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll
2013-06-03 12:26:32 - Unknown name. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
2013-06-03 12:26:32 - at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
2013-06-03 12:26:32 - at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
2013-06-03 12:26:32 - at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
2013-06-03 12:26:32 - at sstObjTapLib._DsstObjTap.set_CapCode(String )
2013-06-03 12:26:32 - at hpOutput.CTapPagerCom.MessageLoop() in c:\shs\Arial 8.1\XmarkClient\hpOutput\CTapPagerCom.cs:line 225
我使用以下代码启动了 dll 对象:
m_ctlTap = new sstObjTapLib.ctlTap();
下面是三张截图:
- 我使用的 DLL 的属性
- 我使用的dll的对象浏览器
- 显示异常发生位置的断点。
查看上面的堆栈错误,似乎.NET 正在尝试调用一些不存在的方法,但我只是设置了一个属性值。有人可以指出我正确的方向或我可能错过了什么吗?
注意一点:在调试时,我正在查看我加载的模块视图,但是我在加载的模块列表中没有看到这个 dll 名称。