痔になりやすい生活習慣とは?

エントリ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

このQ&Aに関連する最新のQ&A

A 回答 (1件)

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 )
といった記述です
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング