- - PR -
ネイティブDLLのクラスをC#でインポートしたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-03-10 10:13
過去スレッドに類似の書き込みがあるのですが、若干異なっていたため
質問させていただきます。 開発環境はVS2005です。 ネイティブC・C++で作成したWin32 DLLをC#でインポートし、 使用したいと考えています。 関数のインポートは、下記のようにして既に実現しています。 同様にしてクラスを扱いたいのですが、どのような記述で エクスポートし、どのような記述でインポートすればよいのか、が わかりません。 ご教授のほど、よろしくお願いいたします。 =================ここから===================== [DLL側のヘッダファイル] #ifdef __cplusplus extern "C"{ #endif int __declspec(dllexport) dll_func(int a); #ifdef __cplusplus } #endif [C#側のラッパ] namespace Wrapper { public class csclass { [DllImport("dllファイル名")] public static extern int dll_func(int a); } } =================ここまで===================== |
|
投稿日時: 2008-03-10 10:36
C# から直接 C++ のクラスを利用することはできません。
C++/CLI を使ってラッピングするのが一般的ですかね。 |
|
投稿日時: 2008-03-10 10:53
過去にこんなのが見つかったので。参考までに
[url] http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28623&forum=7 [url] |
|
投稿日時: 2008-03-10 11:39
すばやい返信ありがとうございます。
ご指摘の過去スレッド、見落としておりました。 「C++/CLIを使ってラッピング」について、具体例を 求めてネットをたたいてみますと、ちょうど以下の ような物を見つけました。 http://www25.atwiki.jp/guru/pages/35.html http://www.atmarkit.co.jp/fdotnet/special/vcppinvista01/vcppinvista01_03.html これらを参考にしたいと思います。 ちなみに、 『GUIはC#で、高速な処理はやはり過去資産を使いつつC・C++で、』 というのが、今回の質問に至った経緯です。 以上、ありがとうございました。 |
1