掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ActiveXからDLLを呼出すには? (ID:115789)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えむえむです。 アドバイスありがとうございます。 指摘いただいた項目を試しましたが、下記のようになりました。 ・StartMode が vbSModeStandalone の場合にはエラーになるのか? エラーになります。 ・StartMode が vbSModeAutomation の場合にはエラーになるのか? エラーになります。 ・ActiveX EXE内で TestFunc を呼ばない時は、エラーにならないのか? エラーは発生しません。 ・ActiveX EXE内で TestLib のフルパスを指定してみてもエラーになるか? フルパス指定しても駄目でした。 ・ActiveX EXE内で TestFunc 以外のDLLを呼び出した場合は問題無いのか? Win32のDLL(FindWindow)の予備だしはうまくいきます。 ・プロセスの実行ユーザーに Administrators グループ権限を与えた場合はどうか? 結果は同じでした。 ・エラー発生時の Err.LastDllError と Err.Source は何になっているか? Err.LastDllError = 0 Err.Source はActiveX名になっています。 ・最適化無しのネイティブコンパイルや、P-Code コンパイルなどに変更してみても結果は同じか? 結果は同じでした。 あれから色々と試したのですが、不思議なことにVBおよびVCの引数を なくしてみるとDLL呼出しが正常に動作します。 下記に例を示します。 VB側のソース Private Declare Function TestFunc Lib "TestLib" () As Long Dim lRet As Long lRet = TestFunc() VC側のソース extern "C" __declspec(dllexport) long TestFunc() 引数がないので当然処理はうまくいかないのですが、DLL呼び出しは正常に 動作します。 なぜでしょうか? ほとほと困っています。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.