首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SnmpRegister()在WinSNMP中失败

SnmpRegister()在WinSNMP中失败
EN

Stack Overflow用户
提问于 2011-12-05 20:34:36
回答 1查看 712关注 0票数 1

我刚刚开始使用WinSNMP (在Visual Studio2005中),并且已经编写了以下代码。(这是一段代码片段。)

代码语言:javascript
复制
m_Status = SnmpStartup(&m_MajorVersion, &m_MinorVersion, &m_Level, &m_TranslateMode, &m_RetransmissionMode);
ASSERT(m_Status != SNMPAPI_FAILURE);

m_SnmpSession = SnmpCreateSession(GetSafeHwnd(), WM_SNMP_TEST, &CallBackFunction, NULL);
ASSERT(m_SnmpSession != SNMPAPI_FAILURE);

SnmpStrToOid("1.3.6.1.2.1.1.3.0", m_pIOD);

m_Status = SnmpRegister(&m_SnmpSession, m_pSrcEntity, m_pDstEntity, m_pContext, m_pIOD, SNMPAPI_ON);

SNMPAPI_STATUS temp = SnmpGetLastError(m_SnmpSession);
ASSERT(m_Status != SNMPAPI_FAILURE);

CallBackFunction定义为:

代码语言:javascript
复制
SNMPAPI_STATUS CALLBACK CallBackFunction
(HSNMP_SESSION hSession=0, HWND hWnd=0, UINT wMsg=0,
 WPARAM wParam=0, LPARAM lParam=0, LPVOID lpClientData=0)
{
    return (SNMPAPI_SUCCESS);
}

在本例中,m_pSrcEntity、m_pDstEntity、m_pContext为空。我已经将WM_SNMP_TEST注册为一条Windows消息。

第一个断言成功。m_SnmpSession在调用SnmpCreateSession()时获得值0x00000001,因此second ASSERT也会成功。这正常吗?我的意思是,会话可以有提到的价值吗?然后SnmpRegister()失败,SnmpGetLastError()返回1。我的Windows SNMP和SNMP Trap服务正在运行。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-05 21:56:51

问题是我将LPHSNMP_ENTITY, LPHSNMP_CONTECXT, LPHSNMP_SESSION, etc传递给需要HSNMP_ENTITY, HSNMP_CONTECXT, HSNMP_SESSION, etc的函数。Visual Studio即使在运行时也无法检测到这些错误,因为这些错误基本上都是处理过的。

但是我仍然想知道m_SnmpSession的值是否可以是0x1。实际上,我创建的任何Source/Destination实体总是等同于0x1。I am confused because they are all HANDLEs, and can 2 handles be the same? Any ideas?

编辑:它成功了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8385381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档