光学追跡カメラ ソフトウェアに接続するための SDK であるNatNet SDKを使用するプロジェクトを実装しようとしています。
私の問題は次のとおりです。サーバーに接続するために可能な限り単純な例を使用しようとしていますが、VS2010 でコンパイルすると、提供された exe を実行すると動作が異なります。SDK ソリューションとコンパイル済みバージョンは VS2005 のものです。
プログラムには、コールバックを設定する 1 行があります。
theClient->SetDataCallback( DataHandler, theClient ); // this function will receive data from the server
問題は、VS2010 でプロジェクトをコンパイルすると、正常にコンパイルされ、正常に実行されますが、コールバックがトリガーされず、クライアントは何も起こらないと信じていることです。
テスト サーバー アプリケーションを再コンパイルすると、新しくコンパイルされたクライアントは、新しくコンパイルされたサーバーで動作します。
以下は、コンパイルされたさまざまなクライアントとサーバーがどのように機能するかを簡単にまとめたものです。
- 元のクライアント - ARENA => OK
- 元のクライアント - 元のサーバー => OK
- 元のクライアント - VS2010 コンパイル サーバー => 動作せず、1 行しか受信しない
- VS2010 コンパイル済みクライアント - ARENA => 動作せず、何も受信しない
- VS2010 コンパイル済みクライアント - 元のサーバー => 機能しない、機能しない
- VS2010 コンパイル済みクライアント - VS 2010 コンパイル済みサーバー => OK
このレベルの Visual Studio のバージョンの違いについては経験がなく、非トリガー コールバックをデバッグする方法がわかりません。提供されたソフトウェア(ARENA)に接続する必要があるため、サンプル サーバー ソリューションのように再コンパイルすることはできません。
次の質問について教えてください。
- VS2005 と VS2010 の違いは何ですか?これらのコールバック関数が互いにコンパイルされたバージョンで機能しないのはなぜですか?
- 簡単なビルド設定で直せますか?そうでない場合、問題が発生した場所をどのようにデバッグできますか?
- 最後に、SDK の代わりに純粋なソケット ベースの実装を使用することをお勧めしますか?