![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поможите кто может... wsprintf(...) [D5, WinXP]
wp2 © (2006-09-26 18:38:00)Этот долбанный третий параметр :-Е
В королевстве Делфи нашел такой кусок
[b]var[/b] szMessage: PChar;
GetMem(szMessage, 256); [i]// Определяем размер строки в памяти[/i]
wsprintf( szMessage, 'Number %d', Pointer(899034));
MessageBox( 0, szMessage, 'Сообщение', MB_OK );
Но и он не помогает!!! Я в шоке!!!
Игорь Шевченко (2006-09-27 10:01:00) [1]
> Мне надо превратить Интеджер в Стринг :-)
> Только на АПИ
_ltoa из ntdll ?
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
function _ltoa (Value: Integer; Buffer: PChar; Radix: Integer = 10): PChar;
cdecl; external 'ntdll.dll' name '_ltoa';
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
Buffer: array[0..10] of char;
begin
Edit1.Text := _ltoa(11, Buffer);
end;
end.
guav (2006-09-26 22:05:00) [2]в windows.pas wsprintf объявлена неверно как stdcall
Можно переобъявить, см. [4] MBo ©
Однако, кроме wsprintf есть wvsprintf, которая то же самое, но stdcall. Ещё существуют другие функции. В delphi существует ф-ция Format, которая удобнее и безопаснее winapi-функции. Hет причин использовать именно wsprintf.
MBo (2006-09-26 21:57:00) [3]В D6 и новее можно объявить эту функцию с модификаторами cdecl и varargs, и вызывать нормальным образом
wp2 (2006-09-26 21:17:00) [4]Всмысле?
Мне надо превратить Интеджер в Стринг :-)
Только на АПИ
clickmaker (2006-09-26 19:00:00) [5]
> wp2 © (26.09.06 18:38)
тебе чего надо-то? адрес вывести? так для этого %p
wp2 (2006-09-26 18:59:00) [6]Ага понял...
asm
push i
push B
push A
call wsprintf
end;
Где А - первый параметр, В - второй и i третий...