私はWinSNMPを使用してC++でアプリケーションを構築しようとしていましたが、私は徐々に進歩していますが、問題は継続しています。これまでのところ、私のプログラムは、SNMPセッションの起動、作成、オープンを試み、ポートを設定してから、そのポートをlistenして終了します。私はそれがアクセスしているすべての変数の値を出力しているので、プログラム内のすべてを追跡できます。私が今得ている値は全く意味をなさない。それらの値のいくつかは、関係のない変数について繰り返され、値が与えられていてもnullまたは0に留まるものもある。&は変更されない。私は詰まっている&これについて何をするか、またはプログラムを構築するために次に何をするか分からない。次のように私のコードです:C++のSNMPに関するヘルプ?
#include <WinSnmp.h>
#include <stdio.h>
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
smiUINT32 majorVers;
smiUINT32 minorVers;
smiUINT32 nLevel;
smiUINT32 translateMode;
smiUINT32 retranslateMode;
UINT msgNum=1;
UINT port = 80;
HWND window;
char oldWindowTitle[MY_BUFSIZE];
HSNMP_ENTITY entity;
SNMPAPI_STATUS status;
SNMPAPI_CALLBACK callBackNum;
void Startup(){
//Starting the snmp session
SnmpStartup(&majorVers, &minorVers, &nLevel, &translateMode, &retranslateMode);
printf("Major Version: %i \n"
"Minor Version: %i \n"
"nLevel: %i \n"
"Translate Mode: %i \n"
"Retranslate Mode: %i \n\n",
(majorVers, minorVers, nLevel, translateMode, retranslateMode));
GetConsoleTitle((LPWSTR)oldWindowTitle, MY_BUFSIZE);
window = FindWindow(NULL, (LPCWSTR)oldWindowTitle);
}
void CreateSession(){
SnmpCreateSession(window,msgNum,callBackNum,NULL);
printf("Create session returns: %i \n\n", SnmpCreateSession(window,msgNum,callBackNum,NULL));
printf("Window: %i\n"
"msg num: %i\n"
"Call Back num: %i\n\n",
(window,msgNum,callBackNum));
}
void OpenSession(){
SnmpOpen(window, msgNum);
printf("Open session returns: %i\n\n", SnmpOpen(window, msgNum));
}
void SetPort(){
SnmpSetPort(entity,port);
printf("Entity: %i\n"
"Port: %i\n\n",
(entity,port));
}
void Listen(){
SnmpListen(entity,status);
printf("Entity: %i\n"
"Status: %i\n\n",
(entity,status));
}
int main(){
Startup();
CreateSession();
OpenSession();
SetPort();
Listen();
SnmpCleanup();
}
次のように返す値は次のとおりです。
Major Version: 1
Minor Version: 4320440
nLevel: 4320760
Translate Mode: 4320628
Retranslate Mode: 1358752
Create Session returns: 2
Window: 0
msg num: 4320436
Call Back num: 4320760
Open Session returns: 4
Entity: 80
Port: 4320444
Entity: 0
Status: 4320444
Imはここに失いました。助言/助け?
返される値は、固定された単一の&の単一の数値を除いて、一般に毎回異なる/ランダムであることに注意してください。
「c」ではなく「C++」とタグ付けされている理由がわかりません。しかし、もしそうなら、私はそれを間違って紛失している。 – sbi
彼がC++でコンパイルしている場合... – Puppy
@Dead ... C++コンパイラでコンパイルされていても、まだCです。 – sbi