Форум: "Начинающим";
Текущий архив: 2011.05.15;
Скачать: [xml.tar.bz2];
ВнизВыделить память в dll Найти похожие ветки
← →
Test_unit (2011-02-07 18:41) [0]Здравствуйте. Такая проблема. Имеется буффер pbyte. Я хочу чтоб он иницелизировался в моей длл. Вроде как иницилизируется но при фреемем прога валится. Что я делаю не так? Вот код.
/////////////////////Project2.dll/////////////////
procedure test (Buff:pbyte;Size:integer) ;STDCALL;
begin
if Buff <> nil then Buff := nil;
ReAllocMem(Buff, Size);
end;
///////////////////////////////////////////////////
////////////////////////Программа///////////////////////
procedure test(Buff:pbyte;Size:integer); STDCALL; external "Project2.dll";
........
procedure TForm1.Button1Click(Sender: TObject);
var
P:pbyte;
begin
test(p,1000000);
freemem(p);
p:=nil;
end;
← →
Игорь Шевченко © (2011-02-07 18:43) [1]
> Что я делаю не так?
Не читаешь комментарий в проекте DLL
← →
Test_unit (2011-02-07 18:47) [2]Это про borland.dll ? Читал.. А если я захочу заюзать свою длл в другом проекте на другом ЯП. Тут как быть? Постоянно с собой таскать эту длл?
← →
Игорь Шевченко © (2011-02-07 18:51) [3]
> Читал..
Еще раз прочитай.
> Тут как быть?
HeapAlloc/HeapFree, VirtualAlloc/VirtualFree
← →
_Юрий (2011-02-07 19:27) [4]
> Вроде как иницилизируется но при фреемем прога валится.
> Что я делаю не так?
У проги и библиотеки по умолчанию разные менеджеры памяти.
Ты у одного менеджера запросил память, а другому приказываешь ее освободить.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.05.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c