• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBAからC言語のDLLの呼び出し方)

AccessVBAからC言語のDLLの呼び出し方

このQ&Aのポイント
  • C言語で作成したDLLをVBAで呼び出す方法について質問があります。
  • DLLの作成手順や呼び出し方法に関する指摘やアドバイスをお願いします。
  • 初心者がVBAでDLLを呼び出す際に発生するエラーについて解決策が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VC側ですが 呼び出し規約を変更しないといけません また C++(cpp)拡張子で組んであるなら extern "C"でくくるなどのひつっようがあります 外部公開用の名前が _関数名@引数のバイト数といった変換がなされるので Access側で Aliasを使って整合を取るか DEFファイルによるエクスポート名を指定しましょう これらを踏まえて DLL側は short __declspec( dllexport ) __stdcall dlltest( char* str1, char * str2 ) といった具合にします CPPファイルなら extern "C" { // これを使って CPP命名規則を抑止します short __declspec( dllexport ) __stdcall dlltest( char* str1, char * str2 )   {      // 関数本体    } } DEFファイルは LIBRARY DLLファイル名 EXPORTS dlltest といった具合です # DLLファイル名は適宜修正してください

red_fox
質問者

お礼

redfox63様 動きました!!!本当にありがとうございます。 私の場合はC++ではなくCで作成したものでしたのでアドバイスの通り short __declspec( dllexport ) __stdcall dlltest( char* str1, char * str2 ) と記述し、DEFファイルを作成しただけで動きました。 ググってもほとんど明確な答えになるものがなかったので本当に助かりました^^