2

C++ で WinSnmp を使用して簡単なプログラムを作成しようとしています。これに関する情報はほとんどなく、私は完全に迷っています。私がやりたいことは、ネットワーク上のプリンターにクエリを実行し、送信された情報を読み取ることだけです。これが私のコードです:

#include <WinSnmp.h>
#include <stdio.h>

smiLPUINT32 majorVers;
smiLPUINT32 minorVers;
smiLPUINT32 nLevel;
smiLPUINT32 translateMode;
smiLPUINT32 retranslateMode;

BYTE pdu;


int main()
{
    //Starting the snmp session
    SnmpStartup(majorVers, minorVers, nLevel, translateMode, retranslateMode);

    printf("%i majorVers \n %i minorVers \n "
           "%i nLevel \n "
           "%i translateMode \n "
           "%i retranslateMode \n\n", 
           majorVers, minorVers, nLevel, translateMode, retranslateMode);


    SnmpCleanup();
}

私はこれまでAPIをたどり、プログラムがどのように構成されているかを理解しようと努めてきましたが、完全に API に基づいてプログラムを作成することは困難です。

優れたチュートリアル、コード例、または役立つドキュメントがオンラインで見つかりません。誰かが私を正しい方向に導くことができる何かを知っているかどうか、たとえばコードスニペットや役立つチュートリアルなど、それは素晴らしいだろうと思っていました. 前もって感謝します :)

EDIT:私は少し進歩しましたが、まだ立ち往生しています。SnmpCreateSession 関数に渡すことができるように、コンソール ウィンドウの値を把握しようとしていますが、問題があります。更新されたコードは次のとおりです。

#include <WinSnmp.h>
#include <stdio.h>
#define MY_BUFSIZE 1024 // Buffer size for console window titles.

smiLPUINT32 majorVers;
smiLPUINT32 minorVers;
smiLPUINT32 nLevel;
smiLPUINT32 translateMode;
smiLPUINT32 retranslateMode;

HWND window;
HWND hwndFound;

char* returnInfo;
char newWindowTitle[MY_BUFSIZE];
char oldWindowTitle[MY_BUFSIZE];

LPWSTR consoleTitle;
BYTE pdu = 1;

void Startup(){

    //Starting the snmp session
    SnmpStartup(majorVers, minorVers, nLevel, translateMode, retranslateMode);

    printf("%i majorVers \n"
           "%i minorVers \n"
           "%i nLevel \n"
           "%i translateMode \n"
           "%i retranslateMode \n\n", 
            majorVers, minorVers, nLevel, translateMode, retranslateMode);

    GetConsoleTitle(oldWindowTitle, MY_BUFSIZE);
    hwndFound = FindWindow(NULL, oldWindowTitle);

}

void CreateSession(){

    SnmpCreateSession(window,5,0,0);
    printf("create session returns: %s", SnmpCreateSession(window,5,0,0));

}

int main(){

    Startup();
    CreateSession();
    SnmpCleanup();
}

この時点で最終的に得られる値はすべて NULL です...次に何をすべきかわかりません。

4

2 に答える 2

2

数年前にWindowsアプリケーション用のSNMPモジュールを作成する必要がありましたが、ドキュメントとオンラインリソースが不足していたため、次の本を購入することになりました。

于 2011-07-11T20:37:32.423 に答える
2

のような出力パラメータについてSnmpStartupは、値を受け取る UINT32 のアドレスを渡します。

smiUINT32 majorVers;
smiUINT32 minorVers;
smiUINT32 nLevel;
smiUINT32 translateMode;
smiUINT32 retranslateMode;

SnmpStartup(&majorVers, &minorVers, &nLevel, &translateMode, &retranslateMode);

もっと間違っているかもしれませんが、これで一塁を通過できるかもしれません。

于 2011-07-12T16:01:14.410 に答える