如何将值传递给此方法?

时间:2018-07-14 13:52:05

标签: c# asp.net

我通过以下方法在该类中有一个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)

1 个答案:

答案 0 :(得分:1)

这可能是您的问题,以下步骤可能会有所帮助。

  

此问题是一个已知问题的神秘表现。   URLMON.dll。 KB945701-   http://support.microsoft.com/default.aspx?scid=kb;EN-US;945701

     

我们执行了以下修复程序,以解决该问题:

  1. 点击开始
  2. 点击运行
  3. 输入regedit
  4. 然后单击确定
  5. 找到并单击下面的注册表子项: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet 资源管理器\ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
  

请注意,如果FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701   子项不存在,必须手动创建

  1. 右键单击FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701, 指向“新建”,然后单击“ DWORD值”
  2. 键入w3wp.exe以命名新的注册表项
  3. 然后按Enter
  4. 右键单击w3wp.exe
  5. 然后单击修改
  6. 在“数值数据”框中
  7. 类型1
  8. 然后单击确定
  9. 退出注册表编辑器。
  10. 重新启动系统

https://forums.iis.net/t/1148764.aspx?Catastrophic+failure+Exception+from+HRESULT+0x8000FFFF+E_UNEXPECTED+