MessageBoxについて – プログラミング – Home

通知
すべてクリア

[解決済] MessageBoxについて


ひろし
 ひろし
(@ひろし)
ゲスト
結合: 23年前
投稿: 24
Topic starter  

お世話になります。

一応、期待した結果は取れているのですが、
書き方が本当にコレで良いのか疑問なんです。
(回りにロジックを見てくれる人がいない・・・)

DWORD dwResult;
char aaa[256];
 ・
 ・
 ・
sprintf(aaa,%d,dwResult);
messagebox(NULL,aaa,NULL,MB_OK);

疑問点ですが、MessageBoxの[aaa]ですが、毎回
文字列に変換してからパラメータにしなければいけないのでしょうか?
そのときは、sprintfで上記のようにやればOKなのでしょうか?

##入門書を一冊読んだんですが、やっぱり、生のロジックを
##一杯みないといけないですね・・・


引用未解決
トピックタグ
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 24年前
投稿: 114
 

MessageBox の第2引数は NULL で終わる文字列へのポインタを指定しないと
いけませんので、直接数値を指定することはできません。

1行にしたいのであれば、_itoa を使うという手もあります。
MessageBox(NULL, _itoa(dwResult, aaa, 10), NULL, MB_OK);


返信引用
ひろし
 ひろし
(@ひろし)
ゲスト
結合: 23年前
投稿: 24
Topic starter  

早速のご返答有難う御座います。

>1行にしたいのであれば、_itoa を使うという手もあります。
>MessageBox(NULL, _itoa(dwResult, aaa, 10), NULL, MB_OK);

とても参考になりました。
でも、やっぱり、aaa[]みたいな文字配列を作り、
それを出力するように作らないとだめなんですね。

>MessageBox の第2引数は NULL で終わる文字列へのポインタを指定しないと
>いけませんので、直接数値を指定することはできません。

え・・・一応、動いているんですが、
これって、たまたま動いているんですかね??

一応、直接数値を入れない為に
sprintf(aaa,%d,dwResult);
で、文字列にしたのですが、これだとダメでしょうか?


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

>これだとダメでしょうか?
いえ、OKです。

>疑問点ですが、MessageBoxの[aaa]ですが、毎回
>文字列に変換してからパラメータにしなければいけないのでしょうか?
>そのときは、sprintfで上記のようにやればOKなのでしょうか?

この質問が二つのことを片方は肯定で、片方は否定で聞いてるから混乱する。

>疑問点ですが、MessageBoxの[aaa]ですが、毎回
>文字列に変換してからパラメータにしなければいけないのでしょうか?

変換しなければいけません。

>そのときは、sprintfで上記のようにやればOKなのでしょうか?
sprintfでOKです。
sprintf以外でもいいですけど。(itoaとか)


返信引用
ひろし
 ひろし
(@ひろし)
ゲスト
結合: 23年前
投稿: 24
Topic starter  

数値型をメッセージボックスで出力するのに
わざわざ、文字列型の変数を作ってとかって、
「皆こんな事すんのかな・・・」なんて思ってました。
結果的には、作らなければならないという事ですが、
お陰で、スッキリしました。

ゆうさん、PAIさん、有難うございます。

##質問で紛らわしい文章書いてしまい
##申し訳ありません。以後、気をつけます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました