我使用snmpstartup函数编写程序,msdn上是这样说的:
SNMPAPI_STATUS SnmpStartup(
smiLPUINT32 nMajorVersion,
smiLPUINT32 nMinorVersion,
smiLPUINT32 nLevel,
smiLPUINT32 nTranslateMode,
smiLPUINT32 nRetransmitMode );我的程序中先
smiLPUINT32 nMajorVersion;
smiLPUINT32 nMinorVersion;
smiLPUINT32 nLevel;
smiLPUINT32 nTranslateMode;
smiLPUINT32 nRetransmitMode;再调用SNMPAPI_STATUS SnmpStartup(nMajorVersion,nMinorVersion,
nLevel, nTranslateMode,nRetransmitMode );,但会出错!而改用:
unsigned long nMa,nMi,nL,nT,nR;
再snmpstartup(&nMa,&nMi,&nL,&nT,&nR);就可以!
这是为什么?
smiLPUINT32 是长整型指针(unsigned long *)
这个问题是不是很简单?是不是我的C语言学的有问题?
请各位高手告诉我!谢谢!!
SNMPAPI_STATUS SnmpStartup(
smiLPUINT32 nMajorVersion,
smiLPUINT32 nMinorVersion,
smiLPUINT32 nLevel,
smiLPUINT32 nTranslateMode,
smiLPUINT32 nRetransmitMode );我的程序中先
smiLPUINT32 nMajorVersion;
smiLPUINT32 nMinorVersion;
smiLPUINT32 nLevel;
smiLPUINT32 nTranslateMode;
smiLPUINT32 nRetransmitMode;再调用SNMPAPI_STATUS SnmpStartup(nMajorVersion,nMinorVersion,
nLevel, nTranslateMode,nRetransmitMode );,但会出错!而改用:
unsigned long nMa,nMi,nL,nT,nR;
再snmpstartup(&nMa,&nMi,&nL,&nT,&nR);就可以!
这是为什么?
smiLPUINT32 是长整型指针(unsigned long *)
这个问题是不是很简单?是不是我的C语言学的有问题?
请各位高手告诉我!谢谢!!
smiLPUINT32既然是指针,用之前必须先指向某个unsigned long
则你定义以后必须new(C++)或者malloc(C)出来,
或者
unsigned long nMa,nMi,nL,nT,nR;
nMajorVersion=&nMa;
......
这样子