• 締切済み

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

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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 ) といった記述です