VBだと作りやすいんですが何かと制約が多いので、
C++でDLLを作成してVBでそのDLLを参照する方法のメモです。
1.C++でDLLプロジェクトを作成する。
テンプレート
Visual C++ -> スマートデバイス -> Win32 スマートデバイスプロジェクトを選択
プロジェクト設定|アプリケーションの種類
DLL(D)を選択
公開する関数宣言をhファイルに追加(例えばstdafx.hの最後)
#ifdef __cplusplus extern "C" { #endif __declspec(dllexport) void fncTest(void); //VBから参照したい関数宣言 #ifdef __cplusplus } #endif |
extern "C"
C++だと同一関数名の識別のため変な関数名になってしまうので、そのままの関数名で公開。
__declspec(dllexport)
DLLからエクスポートするための修飾子
cppファイルに追加
__declspec(dllexport) void fncTest(void) //VBから参照したい関数 { return; } |
2.VBから作成したDLLを参照する。
<DllImport("\Program Files\test\test.dll")> _
Sub subTest() |
ちなみに、C#から作成したDLLを参照する場合
[DllImport("\\Program Files\\test\\test.dll")] |
__declspec(dllexport)について
http://hp.vector.co.jp/authors/VA023539/tips/dll/001.htm
extern "C"について
http://1024x768.blog74.fc2.com/blog-entry-31.html