snmp_pp.cpp
来自「HP公司的SNMP++的Win32版本源码」· C++ 代码 · 共 82 行
CPP
82 行
// snmp_pp.cpp : Defines the initialization routines for the DLL.
//
#include "stdafx.h"
#include <afxdllx.h>
#include "winsock.h"
#include "winsnmp.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CRITICAL_SECTION my_critical_section;
static AFX_EXTENSION_MODULE Snmp_ppDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
WORD wVersionReq;
WSADATA wsaData;
int err;
#ifdef _DLL_ATTACH_OPTION
smiUINT32 nMajVer, nMinVer, nLevel, nTrans, nReTrans;
SNMPAPI_STATUS status;
#endif
wVersionReq = MAKEWORD(1,1);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("SNMP_PP.DLL Initializing!\n");
// set up snmp critical section object
InitializeCriticalSection( &my_critical_section);
// fire up WinSock
err = WSAStartup( wVersionReq, &wsaData);
if (err!=0)
TRACE0("Failed to Startup WinSock!\n");
else
TRACE0("Startup WinSock OK");
#ifdef _DLL_ATTACH_OPTION
// start up WinSNMP
status = SnmpStartup(&nMajVer,
&nMinVer,
&nLevel,
&nTrans,
&nReTrans);
if ( status != SNMPAPI_SUCCESS ) {
TRACE0("Unable to Startup WinSNMP!\n");
return 0;
}
TRACE0("Startup WinSNMP OK\n");
#endif
// Extension DLL one-time initialization
AfxInitExtensionModule(Snmp_ppDLL, hInstance);
// Insert this DLL into the resource chain
new CDynLinkLibrary(Snmp_ppDLL);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
// free up critical section object
DeleteCriticalSection( &my_critical_section);
TRACE0("SNMP_PP.DLL Terminating!\n");
#ifdef _DLL_ATTACH_OPTION
if ( SnmpCleanup() != SNMPAPI_SUCCESS) TRACE0("-- SNMP++, SnmpCleanup Failure\n");
#endif
// shut down WinSock
WSACleanup();
}
return 1; // ok
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?