Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > MessageBox


Автор: InfMag 17.1.2005, 17:32
Я вот пишу:

Код

int i = 5;
MessageBox(NULL,IntToStr(i),"Hi!",1);
return 0;


А он про AnsiString мне долбит. Что делать?

Автор: _hunter 17.1.2005, 18:09
и правильно долбит
IntToStr(i).c_str()

Автор: lynx_916 17.1.2005, 18:15
IntToStr() превращает инт в ансистринг.
воспользуйся простым применением типа

Код

int i = 5;
char k[1];
k[0]=char(i+65);
MessageBox(NULL,k,"Hi!",1);

вроде работает.

Автор: Adil' 18.1.2005, 15:42
Цитата(lynx_916 @ 17.1.2005, 18:15)
int i = 5;
char k[1];
k[0]=char(i+65);
MessageBox(NULL,k,"Hi!",1);
В том то и дело, что "вроде"...
Во-первых, Си-строка должна заканчиваться 0-терминаторм, так что
Код
char k[2];
k[0]=char(i+65);
k[1]=0;

Во-вторых, не +65, а +48 или +'0' (65 это 'A')
В-третьих, что делать, если i>=10?

Автор: InfMag 22.1.2005, 13:16
Нифика не понял... Точнее не получается. Пропишите вместо с Мессбоксом!

Автор: _hunter 22.1.2005, 13:19
что ты не понял?
вместо своего IntToStr(i) напиши мое IntToStr(i).c_str()

Автор: myaut 23.1.2005, 22:42
Цитата(lynx_916 @ 17.1.2005, 18:15)
int i = 5;
char k[1];
k[0]=char(i+65);

В таком случае - сразу itoa smile

Автор: InfMag 23.1.2005, 23:19
_hunter, я хочу туда текстовую переменную задолбить...

Автор: Altren 23.1.2005, 23:41
Так надо:
Код

char str[20];
int i = 5;
sprintf(str,"То, что нужно %d",i);//вписывай что хочешь
MessageBox(NULL,str,"Hi!",1);//вместо "Hi!" тоже можно str1 какой-нить
return 0;
Работает безотказно

Автор: Vyacheslav 24.1.2005, 10:18
Код

MessageBox(NULL,IntToStr(i).c_str(),"Hi!",1);


Код

MessageBox(NULL, AnsiString(i).c_str(),"Hi!",1);

Автор: _hunter 24.1.2005, 13:08
InfMag, куда туда? и что, по-твоему, ты "туда" задалбливаеш?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)