VCでのDLLからVBへの文字列の引渡し
===VB(Ver.6.0 SP5)側===
Public Declare Function GetStrSample Lib "Test.dll" () As String
・・・・・
Label1.Caption = GetStrSample
===VC側(Ver6.0)===
const char *StrSample="ABCDE01234";
・・・・
_declspec(dllexport) BSTR _stdcall GetStrSample()
{
CString strResult;
strResult = StrSample;
return strResult.AllocSysString();
}
上記のようなコードで、VC側をDLLとしてVBから呼び出すと、
Label1には "A" しか表示されず、ブレークを置いてGetStrSample
の戻り値を調べてみると、0x41,0x00,0x42,0x00,のように、
0x00が挟まれてしまいました。
( ?hex(asc(mid(GetStrSample,3,1))) のようにして調べました。)
何故なのでしょうか? 文字コードの違いでしょうか?
正常にABCDE01234が渡せるようにするにはどうすればいいでしょうか?
VCは初心者で、本や他人の作ったコードやMSDNを見て作成してみました。
目的は、DLLのバージョン等の情報をVB側に渡したいのです。
よろしくお願いします。
お礼
アドバイス有り難うございます。 参考にして変更してみます。 結果は後ほど報告いたします。
補足
LoadLibrary("***.dll"); GetProcAddress( hDll, "########"); を使って読み込めました。 お世話になりました。 ありがとうございます。