Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.164.151] |
|
Сообщ.
#1
,
|
|
|
Собственно нужно найти аналог функции Format(const Format: string; const Args: array of const): string; на WinAPI с аргументами типа PChar или PWideChar.
|
Сообщ.
#3
,
|
|
|
Спасибо. А как ее правильно объявить?
|
Сообщ.
#4
,
|
|
|
Ну, так она же объявлена в Windows.pas ...
|
Сообщ.
#5
,
|
|
|
Очередная борьба за пару десятков кило на винте??? Ну-ну...
|
Сообщ.
#6
,
|
|
|
Цитата LiquidStorm @ Собственно нужно найти аналог функции Format Просто юзай C-runtime (MSVCRT.DLL). Она входит в поставку винды, начиная с Windows 95 OSR2. Ее использует Explorer, так что она постоянно в памяти висит. Только не забудь про cdecl и varargs. uses windows; function sprintf(buf:pchar;format:pchar):integer; cdecl varargs; external 'MSVCRT.DLL'; var buf:array[0..MAX_PATH-1] of char; begin sprintf(buf,'Integer = %d, Hex = %Xh, String = %s',123,123,'aaa'); MessageBox(0,buf,'Delphi sprintf',0); end. |
Сообщ.
#7
,
|
|
|
Спасибо за ответы.
Цитата volvo877 @ угу, только из объявления Ну, так она же объявлена в Windows.pas ... function wsprintf(Output: PChar; Format: PChar): Integer; stdcall; Цитата jack128 @ В данном случае Вы ошибаетесь, задача не уменьшить размер, а сделать код некоторых процедур WinAPI/NativeAPI only Очередная борьба за пару десятков кило на винте??? Ну-ну... Цитата Krid @ Спасибо, попробую.Просто юзай C-runtime (MSVCRT.DLL). Еще попутно вопрос - в ntdll.dll есть функция sprintf - не подскажите как ее правильно объявить. |
Сообщ.
#8
,
|
|
|
Цитата LiquidStorm @ Еще попутно вопрос - в ntdll.dll есть функция sprintf - не подскажите как ее правильно объявить. Точно так же: uses Windows; function sprintf(buf:pchar;format:pchar):integer; cdecl varargs; external 'NTDLL.DLL'; var buf:array[0..MAX_PATH-1] of char; begin sprintf(buf,'Integer = %d, Hex = %Xh, String = %s',123,123,'aaa'); MessageBox(0,buf,'Delphi sprintf',0); end. |
Сообщ.
#9
,
|
|
|
Большое спасибо за помощь
|