- PR -

ネイティブDLLのクラスをC#でインポートしたい

1
投稿者投稿内容
おいたん
会議室デビュー日: 2008/03/10
投稿数: 15
投稿日時: 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);
}
}
=================ここまで=====================
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2008-03-10 10:36
C# から直接 C++ のクラスを利用することはできません。
C++/CLI を使ってラッピングするのが一般的ですかね。
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-03-10 10:53
過去にこんなのが見つかったので。参考までに

[url]
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28623&forum=7
[url]
おいたん
会議室デビュー日: 2008/03/10
投稿数: 15
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)