質問 |
||
| 質問者:tk516ncb | DLL作成後VBAで使用しようとするとエラーが出ます | |
|---|---|---|
困り度:
|
エントリxxがDLLファイルyy内に見つかりません。とエラーが出ます。 複雑な処理をCでやろうとして基本的な箱を作ろうとしたのですがうまくいきません。どなたか教えていただけないでしょうか? C側 #define DLL_EXPORT __declspec(dllexport) extern "C" { DLL_EXPORT void kinou(int a); } void kinou(int a) { //処理 } 呼び出し規約はstdcallしています。 VBA側 Declare Sub kinou Lib ".\test.dll[ (フルリンクしています)] " (ByVal a As Integer) Sub test() Call tasu(10) End Sub |
|
質問投稿日時:08/05/03 06:44 質問番号:3993918 |
||
回答 |
|
| 回答者:redfox63 | DEFファイルでエクスポート名を変更していないのであれば エクスポートされた関数は _関数名@引数のバイト数 といった命名になります DLL_EXPORT void kinou( int a );の宣言なら Declare Sub _kinou@4 lib "dllのPath" ( ByVal a as Long ) または Aliasを使って 本来の関数名を指示します Declare Sub kinou lib "dllのPath" _ Alias "_kinou@4" ( ByVal a as Long ) といった記述です |
|---|---|
| 種類:回答 どんな人:専門家 自信:自信あり |
|
| |
回答日時:08/05/03 06:59 回答番号:No.1 |
|
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |