2011-07-11 12 views
2

私はC++でWinSnmpを使って簡単なプログラムを書こうとしています。これに関する情報はほとんどありません。私は完全に失われています。私がしたいのは、私のネットワーク上のプリンタに問い合わせることです。&私に送られた情報を読んでください。ここに私のコードは次のとおりです。C++のSNMPに関するヘルプ?

#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:Iveは少し進歩しましたが、まだ固まっています。私はSnmpCreateSession関数に渡すことができるようにコンソールウィンドウの値を調べようとしていますが、問題があります。 HERESに私の更新されたコード:

#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です...私は次に何をすべきか分かりません。

+2

これはCコードによく似ています。 C++では廃止予定のヘッダーも使用しています。 –

+0

同じウィンドウで 'SnmpCreateSession'を2回調整することは許可されていますか? – RedX

+0

私はOPのフラストレーションを感じます。 Windows SNMPには多くのドキュメントの問題があります。 – EhevuTov

答えて

2

SnmpStartupのもののようなうちのparamsは、RECうUINT32sのアドレスを渡す)のサンプルコードを提供します値を入力してください:

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

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

これ以上の間違っているかもしれませんが、これは1番目のベースを過去に取得する可能性があります。

+0

ありがとう!私はそれをコンパイルするために(smiLPUINT32)として各パラメータを型キャストしなければならなかったが、今ではすべての値が正常に返されている。 – Ashton

+1

@アストン - ああ。 smiUINT32を使用すると、キャストを取り除く必要があります。更新されたコードスニペット... – Roddy

+0

もう一度:)ありがとう。ここからどこに行くのですか? – Ashton

2

私は数年前のWindowsアプリケーションのためのSNMPモジュールをしなければならなかったとによるドキュメントとオンラインリソースの不足のために私は次の本を買ってしまった:

関連する問題