VBで作成したDLLが取得した文字列を、VCで受け取る方法は?


トレジャリー  2006-07-25 01:39:09  No: 62562

初めて投稿します。
トレジャリーと申します。
いつもROMで、書き込んだことがありません、申し訳ありません。

本題に行きます。
VBでログファイル(テキストファイル形式)を読み取る処理をするDLLを作成しました。
そのDLLを、VC6(SP6)で利用して、文字列を取得したいのですが、
以下のエラーが出て取得することが出来ません。

例外処理 (初回) は Test.exe (OLEAUT32.DLL) にあります: 0xC0000005: Access Violation。

というエラーが発生します。

VBで作成したDLLの関数

Public Function GetLogData( _
    ByRef lngEventLevel As Long, _
    ByRef strDate As String _
    ) As Boolean

    lngEventLevel = 2
    strDate = "2006"
    GetLogData = true
End Function

VCから呼び出し
BOOL blnRet;
long lngEventLevel;
BSTR strDate;
blnRet = mtestobj->GetLogData(&lngEventLevel, &strDate);

戻り値とlongの値は取得できるので、DLLが動作していないということでは無さそうです。
また、文字列を渡すだけなので、コード自体変えてあります。(という書かなくてよかったかも?)

VBでのコーディングの問題でしょうか?
それともVCでの受け取り方が悪いのでしょうか?
ご教授願います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加