我通过以下方法在该类中有一个dll
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
bool SetIPAddress([MarshalAs(UnmanagedType.BStr)] ref string lpszIPAddress, int dwPortNumber, int dwPassWord);
如何将值传递给此方法:
public FP_CLOCKLib._DFP_CLOCK ff = new FP_CLOCKLib.FP_CLOCK();
拒绝创建类似"Catastrophic failure" when accessing an OCX library from C#的实例
bool status = ff.SetIPAddress(ref ip, 5005, 0);
抛出错误
System.Runtime.InteropServices.COMException(0x8000FFFF):灾难性的 失败(来自HRESULT的异常:0x8000FFFF(E_UNEXPECTED))在 System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags标志,对象目标,Int32 [] aWrapperTypes,MessageData& msgData)位于FP_CLOCKLib.FP_CLOCKClass.SetIPAddress(String& lpszIPAddress,Int32 dwPortNumber,Int32 dwPassWord)
答案 0 :(得分:1)
这可能是您的问题,以下步骤可能会有所帮助。
此问题是一个已知问题的神秘表现。 URLMON.dll。 KB945701- http://support.microsoft.com/default.aspx?scid=kb;EN-US;945701
我们执行了以下修复程序,以解决该问题:
请注意,如果FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 子项不存在,必须手动创建