>>943 デバッグすればいいよ・・・・・・・・・・・・・・・・・・
ソース生成しているのか。くだらんなぁ。それはさておき、こりゃ酷い。 -- fputs("0x", fp); sprintf(tmp, "%02x", dt); tmp[2] = 0; fputs(tmp, fp); fputs(", ", fp); -- fprintf(fp, "0x%02x, ", dt)で事が足りるだろうに。処で、tmpはどう宣言されているんだ?
c++使ってるといちいち型変換がめんどくさいんだけど 一番簡単な方法はboostの変換ライブラリ使う事? 他にいい方法があれば教えてください。
sendmessageでwm_copydataが送れないんですけど、 何かプロジェクトの設定とかが必要だったりします? 他のメッセージは送れるんですがこれはデータのコピーとかやってるのでその辺でこけてるのかなあと。
GetLastErrorで原因調べた?
949 :
947 :2008/08/29(金) 15:25:28
sendmessageなのにスレッドループで捕まえようとしてました 解決しました
950 :
デフォルトの名無しさん :2008/08/30(土) 07:51:33
オブジェクトのメソッドの呼び出し規約ってどうなるんですか?
951 :
デフォルトの名無しさん :2008/08/31(日) 12:07:46
>>945 >>943 ほどの低レベルなコードを書く奴ならどうせchar*tmp;と宣言していると予想
953 :
デフォルトの名無しさん :2008/09/01(月) 08:01:13
printfなどでの書式指定で、たとえば0.123の場合、 最初の0をつけずに、.123の様になるようにするには どのように指定したらよいのでしょうか
"%.3f"
文字列を入力するときの例は、配列を使うものしか見たこと無いのですが、 文字列を入力する場合は、常に配列を使わなければならないのでしょうか。 たとえば、宣言は、 char st[100]; とかの例を見たりしますが、 char st; だけじゃ不都合があるのでしょうか。文字が一文字しか入らないとか。。。
文字列 = 文字の配列 と思えばとりあえずなんとかなる
>>955 Cには文字列形がないので、文字型の配列などに格納する必要がある。
文字型変数であるchar stには、当然ながら一文字しか入らない。
958 :
デフォルトの名無しさん :2008/09/01(月) 21:53:28
どなたかこの低脳野郎に知恵を授けてください・・・。実はいまC言語を学んでいるのですが C言語はソフト開発が出来るのでしょうか?(窓の杜にあるようなやつ) 回答お願いします。
低脳にもほどがある
>>958 アインシュタインは紙と鉛筆で相対性理論を完成させたかもしれないが、俺にはできない。
たしかに偉大な先人達はCで作ったソフトを窓の杜に投稿したかもしれないが、
その軌跡を今の私たちが無理してなぞる必要は無いと思わないか。
ということで、もっと楽ちんな言語使おうぜ。
C++とか。
961 :
デフォルトの名無しさん :2008/09/01(月) 22:48:25
>>960 ありがとうございます。偉大な人とはいえ結局は人ですからがんばって見ます。
がんばって何を見るというのだろう……
そりゃあ、おい、青少年ががんばって見るといえばアレしかないだろ。 まぁ俺からのアドバイスとしては薄目にしても効果はないということだ。
fopenとかで取るファイルポインタって解放せずにプログラム終了したら不味いことある? DBのコネクションは解放しなかったらいつまでも接続残って不味いとかはわかるんだけど メモリにリソースが残ったままになるとかあるのかな?
開きっぱなしになってOSを再起動するまでファイルを削除できないってことは昔はあったwindowsの話だけど 今は・・・無いのかな?
>>965 exit()の中でfcloseall()している筈だから大丈夫。
>.>966
削除までは確認してませんでした。時間あるときやってみます
>>967 CreateThreadでhoge関数を別のスレッドで動かす。
hoge関数内でファイルポインタを開く。
hoge関数がファイルポインタを持った状態で、
別の関数からCloseHandleでhoge関数を終了させた場合ってどうなんでしょうか?
Windowsもプロセス終了時にファイルハンドルは全部閉じられるので平気。
CloseHandle()ではスレッドを強制終了させられないから大丈夫。
>>969-970 レスありです
CreateThread使い出して気になったんで助かりました
ないよ
ファイル移動で、フォルダ内の不特定多数のファイルを 別のフォルダに移動するってどうやりますか?? MoveFileじゃできませんでした・・・
掃き溜めっぽくていいね。
>>973 system("move c:\\*.* d:\\*.*")
C言語はXPのPCで勉強できますか? 教えてください。
できます。ついでに言うと、 それくらいのことは、ここで聞いていないでググればもっと早く分かる。
質問です。以下はどちらもchar型の変数です。 // データ部 msg.data[0] = cTagID[0]; msg.data[1] = cTagID[1]; msg.data[2] = cTagID[2]; msg.data[3] = cTagID[3]; msg.data[4] = cTagID[4]; msg.data[5] = cTagID[5]; msg.data[6] = cTagID[6]; msg.data[7] = cTagID[7]; msg.data[8] = cTagID[8]; msg.data[9] = cTagID[9]; msg.data[10] = cTagID[10]; msg.data[11] = cTagID[11]; msg.data[12] = cTagID[12]; msg.data[13] = cTagID[13]; msg.data[14] = cTagID[14]; msg.data[15] = cTagID[15]; わかりにくい表現だと思いますが、msg.data[0]〜msg.data[15]で何バイト使ってるのでしょう? 16byte?
>>978 char型なら16バイト。それ以外の解釈の仕様が無い。
>>978 sizeof(char) == 1
なら上に同じく
16バイト
>>980 >sizeof(char) == 1
当たり前です。
sizeofはバイト数を返すと定義されてるわけではありません。
983 :
デフォルトの名無しさん :2008/09/13(土) 03:23:41
sizeofが返すのはbyte数であることと、sizeof(char)が1であることは規格で決められています。 ただし、これは言語上での定義なので、32bitのことを言語上では「1バイト」ということもありえます。
printfで浮動小数点型を表示する書式としてfとeとgがありますが、 私はgが気に入っています。 このままずっとgを使い続けて問題ありませんか?
>>985 私も%g推奨派ですが、出力フォーマットが仕様で決まっている場合などは%fを使うこともあります。
尤も、その場合は%9.3fなどの幅指定が入るわけで、生のままの%fを使うことは有り得ません。
そんなわけで、特に指定が無い出力に%gを使うのは蓋し妥当と言えましょう。
>>986 ありがとうございます。
特に指定がない限り%gのままでやっていきます。
>>983 sizeof(char)は1であり、sizeofはsizeof(char)の何倍かを返す。
単位がバイトであるとは規定されていない。
1バイトが何ビットか決められていないのとは、また、別の話。
>>988 バイトってはっきりかいてあるだろ
ただc言語の上では1byte=8bitとは限らないってだけで
C89の話じゃないのか?
991 :
デフォルトの名無しさん :2008/09/13(土) 17:28:39
>>988 古い規格だと、ISO 9899:1990 セクション 3.4 で "byte" が定義されている。
同 セクション6.3.3.4 に The sizeof operator yields the size (in bytes) of its operand.
とある。
sizeof(char)は1で単位はバイト。
終了。
scalaすれに誤爆しちゃった・・・(´・ω・`)
別にC99でも同じ話。 6.5.3.4の2に曰く The sizeof operator yields the size (in bytes) of its operand, 6.5.3.4の3に曰く When applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1.
993 :
978 :
2008/09/13(土) 21:33:38 自己解決しました^^