Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Delphi x64
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 12.02.2023, 03:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,038
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от leon2009
Когда передаешь Pchar -> Китайские иероглифы в мемо.
если возможность почистить блок? в моем случае.

Скорее всего заморочки с Ansi vs Unicode. Если ты работаешь с AnsiString, то надо использовать соотв. PAnsiChar.

по поводу чистки блока - используй FillChar, заполняй #0
Ответить с цитированием
  #17  
Старый 12.02.2023, 20:58
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Лампочка Memory

Код:
function LoadFile:string;
var
MemoryFile,buffer: TMemoryStream;
begin
MemoryFile := TMemoryStream .Create;
try
MemoryFile.LoadFromFile('test.txt');
result:=inttostr(MemoryFile.Size);
finally
 MemoryFile.Free;
end;
end;
этот код передает размер файла, а как сам файл передать? вернее содержимое.
Ответить с цитированием
  #18  
Старый 12.02.2023, 21:07
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Стрелка т.е.

DLL
Код:
function LoadFile:TMemoryStream;
var
MemoryFile: TMemoryStream;
begin
MemoryFile := TMemoryStream .Create;
try
MemoryFile.LoadFromFile('test.txt');
result:=MemoryFile;
finally
 MemoryFile.Free;
end;
end;
FORMA
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Memory: TMemoryStream;
begin
Memory := TMemoryStream .Create;
try
Memory.LoadFromStream(LoadFile);
memo1.Lines.LoadFromStream(Memory);
finally
 Memory.Free;
end;
end;
пустое значение приходит
Ответить с цитированием
  #19  
Старый 12.02.2023, 22:45
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,038
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Конечно пустое. Ты же убиваешь объект перед выходом из процедуры...
Ответить с цитированием
  #20  
Старый 13.02.2023, 10:29
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Стрелка ошибка_DLL_64_Memory_II

DLL
Код:
function LoadFile:TMemoryStream;
var
MemoryFile: TMemoryStream;
begin
MemoryFile := TMemoryStream .Create;
try
MemoryFile.LoadFromFile('test.txt');
result:=MemoryFile;
finally
showmessage('ok');//MemoryFile.Free;
end;
end;
Forma
Код:
memo1.Lines.LoadFromStream(LoadFile);
а работает!!! с Memory то работает и нет глюков.
а ничего страшного, что MemoryFile.Free; = этого нет?
и потом куда его воткнуть? MemoryFile.Free; ????
Ответить с цитированием
  #21  
Старый 13.02.2023, 19:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,038
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Сделай в dll дополнительный вызов, который будет уничтожать объект.
Ответить с цитированием
  #22  
Старый 13.02.2023, 19:52
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Сообщение мысля

да, сделал уже if size>=124kb then LoadFile('delete');
мне бы научится buffer [0..buffer-1]:array через dll
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter