VBとDLL(VC)間でメモリの確保と開放を行うには?


プッカ  2003-12-11 11:27:25  No: 110624  IP: [192.*.*.*]

VBとdll(VC)との間で文字列のやりとりを行いたいのですが、文字列のサイズが大きいため(1Mバイトくらい)
↓のようなことをやりたいと考えています。
VBでメモリを確保し、dll(VC6)で確保したメモリに文字列を入れる。
VBで画面に表示し、メモリを開放する。
------------------
※VB(VB6)
'メモリ確保
AAA = GlobalAlloc(  GMEM_MOVEABLE, 10000 );

'dll呼び出し
VCdll( ByRef AAA )

'画面表示
txt1.text = AAA

'メモリ開放
GlobalFree( AAA )


※dll(VC6)
VCdll( char *AAA ) {

    sprintf( AAA,"文字列" );

}
------------------
又はdll(VC)でメモリ確保し、VBで表示した後に開放することなどはできないでしょうか。
質問内容がわかりにくいかもしれませんが、どうぞよろしくお願いします。

編集 削除
特攻隊長まるるう  2003-12-18 16:50:33  No: 110625  IP: [192.*.*.*]

[VB6.0]で Alloc 系の関数は無いと思います。
変数を宣言した時点でメモリ領域を割り当ててるはずです。
単純に

Dim AAA As String
'//////////////////////////
'// VC側の処理
'//////////////////////////
AAA = ""

でいいのではないでしょうか?。あとはタスクマネージャなどで
メモリの使用量の確認をしつつ、もう少し具体的なメモリの無駄使いが
確認できてから考えるので良いと思います。

編集 削除
ねろ  2003-12-19 09:05:16  No: 110626  IP: [192.*.*.*]

配列のスコープを狭くしておけばそこを出た時点で、メモリーが
足りなくなればOSによって適当に捨てられますよ。
たとえばSubの中で宣言するとか。
>文字列のサイズが大きいため(1Mバイトくらい)
って大きいのかな?
この位が心配になるならメモリーの増設を。

編集 削除