人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VC++(MFC 共有DLL)で作成したDLLをVBで利用するにはどうしたらいいでしょうか? VS2005環境です。
以下のように文字列を単純にDLLから返したいと考えています。

VC++側

extern "C" BOOL PASCAL EXPORT test(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return "abcde";
}

Def file
LIBRARY "dlltest"

EXPORTS
; 明示的なエクスポートはここへ記述できます
test

VB側
Declare Function test Lib "C:\Visual Studio 2005\Projects\dlltest\debug\dlltest.dll" () As String

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = test

End Sub

エラー内容:保護されているメモリーに読み書きをしようとした。

●質問者: mai_mai_mail
●カテゴリ:コンピュータ インターネット
✍キーワード:as def DLL LIB mfc
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ko8820
●60ポイント

http://homepage1.nifty.com/MADIA/vc/vc_bbs/200606/200606_0606006...

SysFreeString( *str );

をつかってDLL側でメモリー確保するか、

VBから文字列のアドレスを渡すかの

どちらかです。

◎質問者からの返答

ありがとうございました。

extern "C" BOOL PASCAL EXPORT test(char *str)

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

strcpy(str,"abcdef");

return 0;

}

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ