Delphi 访问冲突错误SNMP

Delphi 访问冲突错误SNMP,delphi,snmp,access-violation,Delphi,Snmp,Access Violation,我正在编写一个简单的SNMP应用程序,从comtech调制解调器CDM-570L获取信息 (例如,系统描述、功率电平和符号速率) 发生错误: 首次机会例外价格为005D39C9美元。异常类$C0000005,消息为“0x005d39c9处的访问冲突:读取地址0x00000000”。Process Project1.exe(8156) ~~我的第一篇帖子,谢谢你的阅读~~ 编辑:对不起,没有“如果那么”,我忘了编辑 SNMP.QuickSend('1.3.6.1.2.1.1.1.0',SNMP.

我正在编写一个简单的SNMP应用程序,从comtech调制解调器CDM-570L获取信息 (例如,系统描述、功率电平和符号速率)

发生错误:

首次机会例外价格为005D39C9美元。异常类$C0000005,消息为“0x005d39c9处的访问冲突:读取地址0x00000000”。Process Project1.exe(8156)

~~我的第一篇帖子,谢谢你的阅读~~

编辑:对不起,没有“如果那么”,我忘了编辑

SNMP.QuickSend('1.3.6.1.2.1.1.1.0',SNMP.Community,SNMP.Host,dn);
DeviceName.Caption:=dn;

SNMP
全局变量已声明,但从未分配给。因此它是
nil
。试图引用它将导致访问冲突。您必须先实例化对象,然后才能使用它


更广泛地说,我想知道为什么在这里使用全局变量。一般来说,最好避免全局变量

为了将来的参考,请使用调试器确定哪一行触发异常,并在您的问题中包含该细节。谢谢,它可以工作!只需添加Snmp:=tidsmp.Create(nil));哦,等等,我可以编辑你的答案,这太荒谬了!
SNMP.QuickSend('1.3.6.1.2.1.1.1.0',SNMP.Community,SNMP.Host,dn);
DeviceName.Caption:=dn;