![]() |
|
|
#1
|
|||
|
|||
|
Проблема такая - есть переменная bf типа Pchar, которая указывает на массив байт. Если сделать так, то все выводится нормально
Код:
Memo1.Lines.Add(bf) Код:
t:=String(Buf); Memo2.Lines.Add(t); |
|
#2
|
||||
|
||||
|
Код:
t := bf; |
|
#3
|
|||
|
|||
|
Ну, для чистоты, надо делать так:
Код:
t := StrPas(bf); |
|
#4
|
||||
|
||||
|
SysUtils.pas:
Код:
function StrPas(const Str: PChar): string; begin Result := Str; end; |
|
#5
|
|||
|
|||
|
Всем большое спасибо...))
|
|
#6
|
|||
|
|||
|
Известно, что при создании dll не стоит использовать тип string. Это распостраняется на все функции и процедуры в dll или только на те, которые будут экспортироваться?
|
|
#7
|
||||
|
||||
|
Желательно на все, но я использовал и проблем не получал.
|
|
#8
|
|||
|
|||
|
Спасибо за ответ...
|
|
#9
|
|||
|
|||
|
А когда вы создаёте dll, то Delphi вам в шаблоне чёрным по белому пишет, что первый модуль в uses должен быть ShareMem "if your DLL exports any procedures or functions that pass strings as parameters or function results..." (если вы используете строки в качестве параметров или результатов экспортируемых функций).
|
|
#10
|
||||
|
||||
|
А мне ничего не пишет, я в FAR-е текст набираю.
![]() |