|
分類:[C/C++]
#36559で投稿したばかりで申し訳ないのですが
C++からVB6.0で作成したActiveX DLLの起動をおこなうプログラムを作成中で #36559で解答を頂いてBSTR型を使用することにより
Public Function main(ByVal moji1 As String, ByVal moji2 As String) MsgBox x & y End Function
というテストプログラムで実現できました しかし
Public Function main(ByRef moji1 As String, ByRef moji2 As String) as long moji1 = moji1 + "001" moji2 = moji2 + "002" main = 0 End Function
というようにByValからByRefに変更し 受け取った値を編集して返却するように修正をおこなったら C++側でコンパイルエラーが発生してしまいます
C++側では
BSTR MyBstr1 = SysAllocString(L"test01"); BSTR MyBstr2 = SysAllocString(L"test02");
と宣言しActiveX DLLのインスタンスを作成し そのまま
pClass1->main( MyBstr1, MyBstr2, &z );
というような形で呼び出しています C++側の呼び出し方をどのように対応させたらよいのでしょうか?
|