0

boost.asio を使用して、ビジュアル CLR プロジェクトにネットワーク アプリケーションを正常に実装しました。しかし、boost.asioが推奨する共通の「言語ランタイムサポート(/ clr)」を使用してWindowsフォームプロジェクトで同じコードを使用しようとすると、機能しませんError 15 error LNK2022: metadata operation failed (8013119F) : A TypeRef exists which should, but does not, have a corresponding TypeDef: (dummy): (0x01000019)

私の質問は、Windows フォーム プロジェクトで boost.asio を使用して実行したネットワーク コードを統合するにはどうすればよいかということです。私が今しようとしているのは、すべてのboost.asio実装を「共通言語ランタイムサポートなし」として別のプロジェクトで動的ライブラリとしてコンパイルし、それをWindowsフォームプロジェクトにリンクすることです。

その間、すでに試した人がいる場合は、時間を節約するのを手伝ってください.

4

2 に答える 2

1

boost::thread を使用しているようです。このバグ レポート、この質問、および私の個人的な経験によると、boost::thread は、静的にリンクされている場合、C++/CLR プロジェクトでは機能しません。自分で言ったように、それらを管理されていないライブラリに入れ、代わりにそのライブラリを使用する必要があります。

于 2012-06-22T05:47:49.677 に答える
0

@モハマド私はそれを理解したと思います。空のプロジェクトにフォームを手動で追加してから、boost/asio を含める必要があります。Windowsフォームプロジェクトでboost/asioをロードしても、それ自体が機能しないのは、コンパイル済みのヘッダーが原因である可能性があります。ここで、ブースト スレッドの問題を解決する必要があります。あなたが言ったように、私はあなたが提案した方法を試して、あなたに知らせます。

于 2012-06-25T09:36:59.727 に答える