Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.15;
Скачать: CL | DM;

Вниз

Выделить память в 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1296130623
Knight
2011-01-27 15:17
2011.05.15
Права доступа и тормоза в 1с...


2-1297115766
Женя
2011-02-08 00:56
2011.05.15
Timage


2-1297090102
aka
2011-02-07 17:48
2011.05.15
WindowState


2-1297060368
Сергей
2011-02-07 09:32
2011.05.15
Счётчик


2-1296568705
Rembo
2011-02-01 16:58
2011.05.15
Обмен пакетами между сервером и клиентом