1

我在 vc++ 中做一个 dll 来阻塞端口(如 tcp 嗅探器)。在本地机器中阻塞 udp 端口​​时,它工作正常。当我从我的系统中取出远程计算机时,它会引发异常

      "system.NullReferenceException'occurred in system.windows.forms.dll"

我在 C# 应用程序中合并了 dll。请给出你的建议

4

2 回答 2

0

由于信息非常有限,我能想到的最可能的原因是:

您的 C# 应用程序正在尝试创建 C++ dll 类的实例,并且很可能失败并导致 NULL 指针。稍后通过该实例调用方法会导致此异常。

要解决这个问题,您应该首先检查实例是否创建成功。

于 2009-12-31T06:29:22.587 回答
0

太糟糕了,你没有收集和分享这些信息。不用担心。这是最容易检测和修复的情况之一。它只是意味着某些引用类型的某些成员/变量通过使用其实例(非静态)成员取消引用,这要求此成员/变量为非空,但实际上它似乎为空。只需在调试器下执行它,它将停止抛出异常的执行。在该行上放一个断点,重新启动应用程序并再次到达这一点。评估下一行中涉及的所有引用,看看哪个是空的,而它需要不为空。弄清楚这一点后,修复代码:要么确保成员/变量正确初始化为非空引用,要么检查它是否为空,如果为空,则执行其他操作。

于 2017-07-18T10:28:47.050 回答