c# - 如何将值传递给此方法?
问题描述
我在那个类中有一个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();
从 C# 访问 OCX 库时,建议创建类似“灾难性故障”的实例
bool status = ff.SetIPAddress(ref ip, 5005, 0);
它抛出了错误
System.Runtime.InteropServices.COMException (0x8000FFFF):在 System.RuntimeType.ForwardCallToInvokeMember (String memberName, BindingFlags flags, Object target, Int32 [] aWrapperTypes, MessageData & msgData) 在 FP_CLOCKLib 发生灾难性故障(来自 HRESULT 的异常:0x8000FFFF (E_UNEXPECTED))。 FP_CLOCKClass.SetIPAddress(String& lpszIPAddress, Int32 dwPortNumber, Int32 dwPassWord)
解决方案
这可能是您的问题,以下步骤可能会有所帮助。
此问题是 URLMON.dll 已知问题的隐秘表现。KB945701 - http://support.microsoft.com/default.aspx?scid=kb;EN-US;945701
我们执行了以下修复以解决该问题:
- 点击开始
- 点击运行
- 输入注册表
- 然后点击确定
- 找到并单击以下注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
注意 如果 FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 子项不存在,则必须手动创建
- 右键单击 FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 ,指向新建,然后单击 DWORD 值
- 键入 w3wp.exe 以命名新的注册表项
- 然后按 ENTER
- 右键单击 w3wp.exe
- 然后点击修改
- 在数值数据框中
- 1型
- 然后点击确定
- 退出注册表编辑器。
- 重启系统
推荐阅读
- javascript - 使用 iText 在 pdf 的特定位置上盖章
- python - 在 Pygame 中继续之前等待 keydown
- sql - SQL:如何检查列中是否包含字母
- java - 测试用例java中的骆驼确认
- cluster-analysis - Mahout 聚类 - 单个聚类中的所有文本向量 - 为什么?
- javascript - 您应该在全局范围内使用“var”还是“let”?
- angular - 如何在 Angular 6 中更新 Bootstrap?
- javascript - JavaScript中的null比较应该使用哪种方式
- angular - 带有对象的复杂 Typescript 接口
- mysql - 设置默认值为子查询输出