1

特定のBluetoothデバイスからデータを取得するWindowsアプリケーションであるVS2010プロジェクトがあります。私がやりたいことは、OSC を使用して取得したデータを送信するように取得スレッドを変更することだけです。

LIBLO というライブラリを使用するために長い時間を費やしましたが、POSIX スタイルの非同期性を使用して機能しているようです。pthreads-win32 を機能させるためにさらに多くの時間を費やし、このライブラリを引き続き使用できるようにしましたが、まだ運がありませんでした。

リリースに含まれるバッチ ファイルを使用してコンパイルできなかった OSCPACK ライブラリを使用することに切り替えました。最終的に、VS2010 プロジェクトにライブラリを認識させることができましたが、今はリンカー エラー (LNK2019 および LNK2001) しか表示されません。関連するディレクトリは、プロジェクト プロパティの [追加のインクルード ディレクトリ] に一覧表示されます。これは簡単に修正できるはずですが、1日の欲求不満の後、私は頭が痛いです。私は osx で xcode を使用することに慣れているため、VS2010 で何かを達成するのは難しいと感じています。リンカーに追加の指示を与える必要がありますか?

Windows/VS と互換性のある単純なビルド済みの OSC ライブラリを提案できる人、または未解決の外部の問題を解決する方法を教えてください。

4

1 に答える 1

2

OSC は非常に単純なプロトコルです。特に、発信 OSC メッセージのみを送信する必要があり、着信 OSC メッセージの受信 (および解析) を気にしない場合はそうです。できることの 1 つは、仕様を読み、いくつかのを見て、規定の形式で OSC データをバイト バッファーに追加する独自の関数を作成することです。たった数時間の作業です。次に、その char バッファーを UDP ソケット経由で送信するだけです。これも非常に簡単です。ニーズによっては、サードパーティの OSC ライブラリと統合しようとするよりも簡単かもしれません (特に Windows では、イライラする可能性があることに同意します)。

もう 1 つの可能性は OSCPACK を使用することですが、それを個別にビルドしてから結果の DLL/LIB ファイルにリンクしようとする代わりに、必要な OSCPACK .c ファイルを自分のプロジェクトのソース ツリーに直接コピーし、同じように実行可能ファイルにコンパイルします。独自のコードをコンパイルする方法。これにより、2 つの異なるビルド システムを連携させようとするときに発生するビルド/リンクの問題を回避できます。また、OSC コードの (ろくでなしの) コピーを完全に制御することもできます。 OSCPACK の関数を別の方法で動作させるには、その関数のコピーを変更するだけです。(そうする場合は、混乱を避けるために、コードがもはや「在庫」ではないことを明確にしてください...そしてもちろん、他のOSCを使用するプロトコルとの互換性を損なうような方法でコードを変更しないようにしてくださいソフトウェア)

于 2012-03-11T19:38:34.210 に答える