(Visual Studio 2005에서) WinSNMP로 막 시작했으며 다음 코드를 작성했습니다. (이것은 단편이다.)WinSNMP에서 SnmpRegister()가 실패 함
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과 같이 정의된다 :
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이 예에서는 NULL이다. WM_SNMP_TEST가 Windows 메시지로 등록되었습니다.
첫 번째 ASSERT가 성공합니다. m_SnmpSession
은 SnmpCreateSession()
이 호출 될 때 0x00000001
값을 가져 오므로 두 번째 ASSERT도 성공합니다. 그게 정상인가요? 세션에 언급 된 가치가있을 수 있습니까? 그런 다음 SnmpRegister()
이 실패하고 SnmpGetLastError()
이 1을 반환합니다. 내 Windows SNMP 및 SNMP 트랩 서비스가 실행 중입니다. 내가 도대체 뭘 잘못하고있는 겁니까?