私は、グループの新しいC#プログラムで使用する必要があるネイティブC++ DLLを持っています。私はネイティブのC + +のDLLのC + +/CLIのラッパーを作成したいので、C#でそれらをインポートしてコンパイルすることができます。C++ネイティブDLLのC++/CLIラッパー
私が知る必要があるのは、dllファイルを最初にラッパーソースファイルにロードする方法です。 #using < ...とまったく同じことは、MSILの場合と同じですが、ネイティブC++ dllをロードする場合は同じです。
また、DLL内のオブジェクトと名前空間は、(論理的に)どのようにアクセスできるようになりますか?
EDIT:よう__declspec(dllimport) public class radar;
:私は私のradar.dllから私のレーダークラスをエクスポートし、そしてこのようなVC++(CLI)のプログラムでそれをインポートする必要があるために
class __declspec(dllexport) radar
{
// declarations and definitions
...
};
を使用
その定義をC#にするには、VC++(CLI)で公開されていないので、C#でレーダーを見ることはできません。私はradar pos1();
のように、VC++ DLLのコードにネイティブDLLのオブジェクトを使用したい場合でも、私が取得:
error C2512: 'radar' : no appropriate default constructor available
はどのようにこれを行うことができ、手元にあるだけでレーダー宣言を持ちますか?
終了EDIT。
ありがとうございました!
なぜC++/CLIラッパーを作成する必要がありますか? C#からPInvokeを使ってネイティブDLLを呼び出さない理由はありますか? http://msdn.microsoft.com/en-us/library/aa446536.aspx – PeskyGnat