Jan 20

C++/CLIでなでしこのプラグインを作る方法(Visual C++ Express Edition)

なでしこでプラグインを作る時にC#を使いたかったので、その前段階としてC++/CLIでプラグインを作る方法を探ってみました。

C++/CLIが使えると、.Netを使えるようになり、C#で作ったdllもVC++の参照設定から読み込んで使えるようになります。

なでしこにはC++でプラグイン開発するためのsdkがあります

ただし、VC++で使用するには
なでしこ質問掲示板
にあるような設定をしなければいけません。(以下引用)

1.Win32プロジェクトを作成
2.plugins_sdk_cからソースを追加
3.dnako_import.defを作成(内容は後述)
4.すべての構成でプロジェクトのプロパティを修正
 全般→文字セットを「マルチ バイト文字セットを使用する」に変更
 リンカ→入力→モジュール定義ファイルに「dnako_import.def」と入力
5.ビルド

//dnako_import.def
//これをメモ帳などでプロジェクトのフォルダに保存してください。

EXPORTS
ImportNakoFunction
PluginInfo
PluginVersion
PluginRequire
PluginInit
PluginFin

実際こちらで試した場合は他にも4の箇所で
全般→共通言語ランタイムサポートを「共通言語ランタイムサポートを使用しない」に
C/C++→プリコンパイル済みヘッダー→プリコンパイル済みヘッダーの作成/使用を「プリコンパイル済みヘッダーを使用しない」に

変更が必要でした。

ただし、この方法だとC++/CLIを使えないので、.Netを使うことは出来ません。そこで、次のように変更しました。

sdkに含まれる.cファイルを全て.cppに変更
dnako_import\let.h内にある各GetProcAddressの第一引数hDllをstatic_castでHMODULE型にキャスト

すると問題なくビルドが通り、.Netを使用することが出来ました。と言っても現在MessageBoxを試した程度ですが。

作成したsdkをVC++のソリューションとして下に置いておきますので、宜しければ試してみて下さい。

SDKダウンロード

さて、これでC#のdllを使えるようになるぞ!と思ってやってみた訳ですが・・・続きます

| comment(0)