Здравствуйте, romstyop, Вы писали:
R>Привет All! R>Такая проблема. R>Код в dll VC6: R>extern "C" __declspec(dllexport) BOOL ProcessD(LPCSTR FileName, LPSTR &pStrBuffer)
[skipped] R>и есть GUI на VB: R>Private Declare Function ProcessD Lib "mydll.dll" (ByVal FileName As String, ByRef strBuffer As String) As Integer
R>Label1.Caption = CStr(ProcessD("myfile.dat", str))
R> При debug dll выдается следующее: R>HEAP[test.exe]: Heap block at 0014E2F8 modified at 0014E310 past requested size of 10 R>HEAP[test.exe]: Invalid Address specified to RtlSizeHeap( 00140000, 0014E300 )
R>Подскажите, как правильно возвратить строку, плиз.
Попробуй вместо LPSTR использовать тип VARIANT (с типом BSTR). С "вариантом" Бейсик работает нормально.
З.Ы. Естественно, что буфер под строку надо выделять в ProcessD .