3

私は、既存のネイティブc ++プロジェクト(同じソリューションファイル内の2つの別々のプロジェクト)をラップアラウンドするCLIプロジェクトを作成中です。マネージドクラスのメンバーとして、ネイティブクラスへのポインターを含めたいのですが。私がオンラインで読んだドキュメントから、これは、マネージコードとアンマネージコードの両方が同じプロジェクトに一緒にある場合に実行できます。ネイティブコードとマネージコードが別々のプロジェクトにある場合、唯一のオプションは、2つのプロジェクト間でdllimport属性とdllexport属性を使用し、ネイティブコードクラス関数を静的関数としてエクスポートすることです。

これらは私の唯一のオプションですか、それとも2つの別々のプロジェクト間でネイティブクラス全体をインポートおよびエクスポートできますか?これにより、マネージラッパーの設計方法が決まるためです。前もって感謝します。

4

1 に答える 1

5

さて、「ポインター」という言葉が私を少しの間投げました。P/Invokeを使用せずにC++/ CLIコードのネイティブコードを使用したいということですか?もちろん。ヘッダー、libへのリンクを含めるだけです。それらが両方ともネイティブである場合にあなたがすることとまったく同じです。最近はC++Interopと呼ばれています-私は古い名前(It Just Works Interop)の方が好きです。

もちろん、どこからでもヘッダーを含めたり、どこからでもリンカー入力を追加したりできるので、技術的には同じ.slnに含める必要はありませんが、Visual Studioを使用すると、作業が少し楽になります。

于 2011-03-28T22:36:12.253 に答える