Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поможите кто может... 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 третий...


Наверх

Титульная страница Поиск, карта сайта Написать письмо