[過去ログ] C言語なら俺に聞け 163 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
435
(1): (ワッチョイ 6761-/Pym) 2024/12/09(月)21:34 ID:OpvCpgOo0(1) AAS
チェックボックスとかラジオボタンの状態を保存したいんだけどなんて調べればええんすの?
現状ウィンドウを破棄する前にコントロールの内容を取得して状態に合わせた変数を初期化ファイルに保存、再起動時に変数に対応した状態に再設定するみたいなのしか思いつかん
冗長になって見づらいだろうし代替案を知りたい
436
(1): (ワッチョイ 7f63-xJXv) 2024/12/09(月)21:38 ID:IOR7vjsa0(2/2) AAS
その通りで良いと思います
437: (JP 0H9f-uiwC) 2024/12/09(月)21:39 ID:XfZ/p96kH(1) AAS
BEアイコン:nida.gif
www最近、EchoAPIを使い始めたところ、効率的なAPIテストツールを提供してくれるおかげで、開発プロセスが向上した!
438: (ワッチョイ 6761-/Pym) 2024/12/10(火)09:40 ID:9vz9QL6n0(1) AAS
>>436
これで行くしかないのか
439: (ワッチョイ e707-f5HH) 2024/12/10(火)10:01 ID:gzrtf0Gl0(1) AAS
対応表をだーっと並べる、control_state_read_and_write(bool is_write, ...) みたいな関数を置く、など
割り切ってしまえば工夫のしがいはある

ただ、そのときはよくても、あとになってみたら黒魔術でしかなかったりする
愚直なのもいいぞ
440: (ワッチョイ ff5a-gNLw) 2024/12/10(火)17:10 ID:TsXGEoU20(1) AAS
>>435
何がどう"冗長になって見づらい"のか?
441: (ワッチョイ bf79-/9Tr) 2024/12/10(火)19:03 ID:ruXLR+AW0(1/2) AAS
属人化だとか 尻アナルライブだとかあったような
442: (ワッチョイ 7f63-xJXv) 2024/12/10(火)19:06 ID:RLBTgK1d0(1) AAS
身体に刻む学習方法
443
(1): (アウアウ Sa4f-f5HH) 2024/12/10(火)21:11 ID:RajTC0DHa(1/2) AAS
>>422-424
ありがとん
444
(1): (アウアウ Sa4f-f5HH) 2024/12/10(火)21:43 ID:RajTC0DHa(2/2) AAS
これでなんか機能した

TCHAR buf[255];
this->GetWindowText(title, 255);

int len = _tcsclen(buf);
_sntprintf(buf + len, 255, " %d", uiWindowCount);

this->SetWindowText(buf);
445: (ワッチョイ bf79-/9Tr) 2024/12/10(火)21:51 ID:ruXLR+AW0(2/2) AAS
this->
ナニコレ
もしかしてC言語スレでC++使えるぞあぴーるですか!
すげー
446: はちみつ餃子◆8X2XSCHEME (ワッチョイ 4732-f5HH) 2024/12/10(火)22:13 ID:ujXLUuNp0(1) AAS
>>443-444
もし C++ の話なら上述 (>>424) の restrict の説明が役に立たない。
C++ に restrict は無いから。
447
(1): (アウアウ Sa4f-f5HH) 2024/12/11(水)07:46 ID:P/b6xwK7a(1) AAS
API自体はC言語なんでそこらへんはスルーでお願い
448: はちみつ餃子◆8X2XSCHEME (ワッチョイ 4732-B9Rp) 2024/12/11(水)14:36 ID:fIut9/tx0(1) AAS
>>447
C の snprintf と C++ の snprintf は違うという話をしてるんやが
(最終的に同じものが呼び出される実装の場合はあるにしても。)
449: (JP 0H9f-uiwC) 2024/12/11(水)20:35 ID:GrIf7glWH(1) AAS
BEアイコン:nida.gif
最近のRESTful APIについての議論に触発されてEchoAPIを試してみたところ、エンドポイントのシミュレーションツールがテストプロセスを非常に効率化してくれました。
450: (ワッチョイ 7f63-xJXv) 2024/12/11(水)23:04 ID:xKzgcnaC0(1) AAS
MSは採用していないのかな?
なんでこんなにバグが多いんだろう
451: (ワッチョイ 33b8-iztn) 2024/12/15(日)15:13 ID:jrfqO5QN0(1/6) AAS
1つめのプロシージャで宣言した変数を2つ目のプロシージャで使うって頑張れば可能?
それともグローバル変数宣言したほうがいい?
452
(1): (ワッチョイ a301-aNNs) 2024/12/15(日)15:17 ID:Vq+PRAKz0(1) AAS
引数で渡せばいいんじゃね
453: (ワッチョイ 33b8-iztn) 2024/12/15(日)15:23 ID:jrfqO5QN0(2/6) AAS
>>452
それも考えたんだけど、プロシージャ作るときライブラリ側が指定した引数以外渡せないんじゃない?
454
(1): (ワッチョイ be63-Vy5I) 2024/12/15(日)15:31 ID:wmU+aa0b0(1/2) AAS
そのプロシージャーを同一モジュール内lに記述して、
変数をスタティック宣言する、とか
455: (ワッチョイ 33b8-iztn) 2024/12/15(日)15:38 ID:jrfqO5QN0(3/6) AAS
>>454
そんなことできるんかよ知らなかった
{}内かつ、他のswitchと干渉しないところにベタ書きすればいいってことよね?
456
(1): (ワッチョイ be63-Vy5I) 2024/12/15(日)15:45 ID:wmU+aa0b0(2/2) AAS
ちょっと違う様な気がする
そのファイル内にある全ての関数から参照出来る宣言です
スタティック宣言を調べて見て
457: (ワッチョイ 33b8-iztn) 2024/12/15(日)15:46 ID:jrfqO5QN0(4/6) AAS
>>456
ごめん、スタティックはわかってる
モジュール内への記述の方
言葉足らずですまん
458
(1): (ワッチョイ 33b8-iztn) 2024/12/15(日)16:32 ID:jrfqO5QN0(5/6) AAS
調べてみたけど関数内に別の関数の処理はかけないっぽい?
とりあえず自前のソース書き換えてみたけどC2275が出てしまう
459
(1): (ブーイモ MM8a-1w4P) 2024/12/15(日)16:54 ID:Wjdp3H7kM(1) AAS
モジュールとかプロシージャはc言語の用語ではないよ
誤解を生むからなるべく正しい用語で
あるいはソース書け
460
(1): (ワッチョイ a301-2Zui) 2024/12/15(日)17:04 ID:5Q71kCB70(1) AAS
Cで作ったソフトにアイコンをつける方法ありますか?
コンパイラはmingw
461: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-782k) 2024/12/15(日)17:07 ID:SAQ/jMe00(1/2) AAS
>>460
リソーススクリプトを書いて windres コマンドでコンパイルしてリンク。
462
(1): (ワッチョイ 3338-UX28) 2024/12/15(日)17:11 ID:jrfqO5QN0(6/6) AAS
>>459
ウィンドウプロシージャでおk?
463
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-782k) 2024/12/15(日)17:25 ID:SAQ/jMe00(2/2) AAS
>>462
windows の話?
ウィンドウプロシージャにデータを結びつけたいのなら必要なのは SetProp じゃないかな。
464: (ワッチョイ 4a12-O1Z7) 2024/12/15(日)20:08 ID:7bvd8wX+0(1) AAS
>>458
よくある質問に書いてあんだからそれを読めよ
465: (ワッチョイ 4aa2-SaU4) 2024/12/15(日)21:32 ID:8K4C8OcF0(1) AAS
2つ目のプロシージャってなんやねん
466
(1): (オッペケ Srb3-aNNs) 2024/12/16(月)07:18 ID:Y4GCxOlhr(1) AAS
今北
何のデータかわからんが、だれに属しているデータなのやら

「全然関係ないところ」には、置かないほうがいいぞ少なくとも
467
(1): (ワッチョイ 3369-iztn) 2024/12/16(月)18:03 ID:o/MtQx1A0(1/4) AAS
下記のコードのsizeof(buf)/sizeof(TCHAR)ってなんの意味があるの?
ただのsizeof(buf)じゃだめ?

static int num;
TCHAR buf[8];
stprintf_s(buf,sizeof(buf)/sizeof(TCHAR), TEXT("%d"), num);
468: (ワッチョイ 3369-iztn) 2024/12/16(月)18:17 ID:o/MtQx1A0(2/4) AAS
>>463
なるほどね、それで行けるかありがとう
469: (ワッチョイ 3369-iztn) 2024/12/16(月)18:18 ID:o/MtQx1A0(3/4) AAS
>>466
自分の知識だと外に置くくらいしか思いつかんかった
470: (ワッチョイ 666d-1w4P) 2024/12/16(月)18:20 ID:/03Ox5VG0(1/2) AAS
TCHARは_UNICODEのマクロの定義の有無によって16bitまたは8bitになる
471: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-aNNs) 2024/12/16(月)18:26 ID:26oXJeTE0(1/2) AAS
>>467
> ただのsizeof(buf)じゃだめ?

だめ。

TCHAR はコンパイル時に ANSI モードか Unicode モードかで定義が切り替わる。
ANSI モードのときは char で Unicode モードのときは WCHAR と同じ。

_stprintf_s も ANSI モードのときは sprintf_s に置き換えられて Unicode モードのときは swprintf_s になる。
swprintf_s のときの第一引数は文字数 (この場合は UTF-16 でのコードポイントの数) なのでバイト数である sizeof(buf) を渡しても駄目。
省1
472
(2): (ワッチョイ 3369-iztn) 2024/12/16(月)22:06 ID:o/MtQx1A0(4/4) AAS
Unicodeになるとなんで割る必要が出てくるのかいまいち掴めないなあ
BuffのサイズをTCHARのサイズで割ってどうしてサイズが出せるの?
473: (ワッチョイ 666d-1w4P) 2024/12/16(月)22:41 ID:/03Ox5VG0(2/2) AAS
>>472
ごちゃごちゃ考えてないで
とっととデバッガ使って値を確認しな
474: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-782k) 2024/12/16(月)22:48 ID:26oXJeTE0(2/2) AAS
配列の大きさを得るために配列のバイト数を配列要素のバイト数で割るのはごく一般的なイディオムなので何がわからないのかわからない。
475: (JP 0Hff-K+1m) 2024/12/16(月)22:57 ID:Q04ymynwH(1) AAS
BEアイコン:nida.gif
これらのアイデアを実装するために取り組んでいる中で、EchoAPIが設計ワークフローを本当に効率化してくれた
476
(1): 2024/12/17(火)00:02 ID:KLd2kDAJ0(1/2) AAS
>>472
Unicodeの場合、2バイトで1文字を表現
?????????????????? で9文字、18バイト

ANSIの場合、
????????? で9文字、9バイト

> sizeof(buf)/sizeof(TCHAR)

sizeof(buf)が指すのはバイト数、Unicodeなら18、ANSIなら9
省6
477: 2024/12/17(火)00:05 ID:KLd2kDAJ0(2/2) AAS
丸付き数字自体が1文字1バイトって意味じゃないからな
内部表現を表すために使用しただけで数字がx文字目として見て
478: (アウアウエー Sae2-N2kD) 2024/12/17(火)10:25 ID:hEkGaD6xa(1) AAS
_countof()
479: (ワッチョイ 666d-1w4P) 2024/12/17(火)12:09 ID:2fZmW/080(1) AAS
いやvc++使ってんならstd::sizeでいい
480
(1): (ササクッテロロ Spb3-DtHK) 2024/12/17(火)12:36 ID:5c2Y3gwMp(1) AAS
C言語スレだろw
481: (ワッチョイ be63-Vy5I) 2024/12/17(火)12:49 ID:6SQ8uEd20(1) AAS
そこは禁欲しましょう
482
(1): (ワッチョイ 33ef-iztn) 2024/12/18(水)01:25 ID:ILkVh3nA0(1/2) AAS
>>476
朝わかりやすいね
でもANSIって1バイトと2バイト混合できるよね?どうなっちゃうんだろう
483
(2): 2024/12/18(水)02:49 ID:NqM0X43U0(1) AAS
>>482
ANSIはバイト=文字数
そもそも論理的な文字数じゃなくて処理単位での文字数ね
だから strlen("あいう") = 6
strlen("123あ67い0") = 10 // 数字は半角(1バイト)、ひらがなは全角(2バイト)

Unicodeの場合でも正しい文字数になるわけじゃない、サロゲートペアの場合に文字数は2(4バイト)になる
484
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-782k) 2024/12/18(水)09:23 ID:w442kBzm0(1/2) AAS
Unicode だとサロゲートペアを脇においても異体字だの合成だのといったものがあるし、人間が紙の上に書くときの直感的な感覚で言うところの「文字数」とは定義が違うので、各文字コードの仕組みを知っておくしか仕方がない。
485
(1): (ワッチョイ 3339-iztn) 2024/12/18(水)17:31 ID:ILkVh3nA0(2/2) AAS
>>483
>>484
つまりこの方法だとコンパイル時に気をつけるしか無いってことか、大変だね
テキストエディタみたいなの作ろうとすると禿げ上がりそう
486: (ワッチョイ 8b93-1p0V) 2024/12/18(水)17:41 ID:NuF84nX60(1) AAS
文字コード問題よりC言語で作れってほうがハゲりそうだ
487: (ワンミングク MMda-UGgi) 2024/12/18(水)17:56 ID:2i1n2GHXM(1) AAS
固定長ならそこまで禿げないかと
488: (ワッチョイ 66be-1w4P) 2024/12/18(水)18:24 ID:ccS3E3GJ0(1/2) AAS
>>485
方法が大変?
お前まだ理解できてないぞ
一般論として文字コードの扱いは大変だがTCHARの仕組みは単純だ
489: (ワッチョイ 2679-qWVo) 2024/12/18(水)18:25 ID:U+/f/ac80(1/3) AAS
CがC++だったとしても変わらんでしょ
VSCodeはレンダリングの都合でWebルレームワークとjavascriptで作られてるからC/C++製エディタと比較して遅いというデメリットがある
490: (ワッチョイ 66be-1w4P) 2024/12/18(水)18:34 ID:ccS3E3GJ0(2/2) AAS
c言語で文字列処理はクソ面倒でしょ
ライブラリの整備からやる必要がある上にコードがとっ散らかる
491: (ワッチョイ 2679-qWVo) 2024/12/18(水)18:36 ID:U+/f/ac80(2/3) AAS
Windowsの場合使用フォントに応じて描画幅を返すAPIに丸投げできるから大した手間にならないが
メモ帳の「右端で折り返す」相当を実装する場合右端のどこで切るかでその人センスが露になる
492: (ワッチョイ 2679-qWVo) 2024/12/18(水)18:41 ID:U+/f/ac80(3/3) AAS
>>480
何か誤解があるみたいだが開発言語にCを選ぶようなやつがそんなのを面倒に感じる事はないんだよ
493: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-aNNs) 2024/12/18(水)22:35 ID:w442kBzm0(2/2) AAS
アプリケーションを作るにあたって TCHAR が必要になる状況はそれほどない。
Unicode 対応をきちんとやるならそれとは別に ANSI 版も作るという必要性はないし、両方を作る必要性がないなら切り替えを意識する必要もないから。
最初から WCHAR で書けばよい。

ライブラリとしてまとめるならどちらにも対応したほうが良いこともあるかもしれんけど。
494: (ワッチョイ be63-Vy5I) 2024/12/18(水)23:14 ID:1nhczz8f0(1) AAS
テキストエディタ、アセンブラで作った奴いるだろう
ハゲてはいなかったと思う
495: (アウアウエー Sae2-N2kD) 2024/12/19(木)15:05 ID:p9TYuGiMa(1) AAS
>>483
strlen("123あ67い0") == 12 // utf-8
496: (ワッチョイ be63-Vy5I) 2024/12/19(木)15:35 ID:boHB/shj0(1) AAS
strcat()、実装大変そうだな
497
(2): (ワッチョイ eaad-NYGQ) 2024/12/19(木)18:03 ID:KNZC4rFA0(1/5) AAS
UTF-8のバイト数ではなく文字列の長さを調べるソース
外部リンク:drive.google.com
498
(1): (ブーイモ MMbf-1w4P) 2024/12/19(木)18:29 ID:ByBpVqn8M(1/3) AAS
>>497
Unicodeで文字列の長さって何?
書記素クラスタか?

って突っ込まれるから知ったかぶらないほうがいいぞ
499
(1): (ワッチョイ eaad-NYGQ) 2024/12/19(木)18:32 ID:KNZC4rFA0(2/5) AAS
>>498
文字数を数えられるように自分で書いたのだけど?
文字数数えられるけど知ったかとは?
500: (ワッチョイ 4a5b-SaU4) 2024/12/19(木)18:34 ID:hCGKCs/t0(1/3) AAS
👩🏽‍👩🏿‍👧🏻‍👧🏽
501
(1): (ブーイモ MMbf-1w4P) 2024/12/19(木)18:41 ID:ByBpVqn8M(2/3) AAS
>>499
それがまさに知ったか
unicodeの基礎すらわかってない
そんなやつのライブラリなんで誰が使うんだよ
502
(1): (ワッチョイ eaad-NYGQ) 2024/12/19(木)18:45 ID:KNZC4rFA0(3/5) AAS
>>501
基礎ってなに?
ただ文字数数えれるプログラムとしてだしたのに
503
(1): (ブーイモ MMbf-1w4P) 2024/12/19(木)18:50 ID:ByBpVqn8M(3/3) AAS
>>502
それは書記素クラスタか?ときいてるだろ
でもその言葉の意味がわからんのだろ?
504: (ワッチョイ eaad-NYGQ) 2024/12/19(木)18:52 ID:KNZC4rFA0(4/5) AAS
>>503
なんで書記素クラスタって言葉にこだわってるの?
もしかして教科通りにU+数字じゃないから言ってるだけ?
505
(1): (ワッチョイ 4a5b-SaU4) 2024/12/19(木)19:11 ID:hCGKCs/t0(2/3) AAS
﷽は1文字か?
506: (ワッチョイ eaad-NYGQ) 2024/12/19(木)19:27 ID:KNZC4rFA0(5/5) AAS
>>505
1文字 3バイトみたいだね
ソースを変えて出力してみた
507: (ワッチョイ 4a5b-SaU4) 2024/12/19(木)19:38 ID:hCGKCs/t0(3/3) AAS
そうなんだ
よかったね

外部リンク[txt]:www.unicode.org
508: (ワッチョイ 66fc-1w4P) 2024/12/19(木)19:46 ID:zv08w2oi0(1) AAS
main関数用のヘッダファイル用意してて草
509
(1): (ワッチョイ b704-1exS) 2024/12/19(木)19:59 ID:iU+Lg9qY0(1) AAS
unicode怖ひ
510: (オッペケ Srb3-aNNs) 2024/12/19(木)20:00 ID:y/hB6qNpr(1) AAS
退勤前に>>497見て、
ああ、"フロッピーディスク"って入れたら8が返り、"ハードディスク"って入れたら2.5が返るような関数だろ。
って思いつつ帰宅したら、またお前らときたら
511: はちみつ餃子◆8X2XSCHEME (ワッチョイ 0f32-782k) 2024/12/19(木)22:28 ID:uLfYubV70(1) AAS
>>509
自然言語がぶっ壊れてるんだよ。
Unicode は自然言語のぶっ壊れをどうにかこうにかコンピュータで扱える形にしただけ。
512: (ワッチョイ eb78-RqoG) 2024/12/20(金)15:28 ID:raronLtC0(1) AAS
JAIST、「並行量子通信プロトコル」の完全な自動形式検証を実現
外部リンク:news.mynavi.jp
513: (JP 0Hff-K+1m) 2024/12/20(金)23:42 ID:yXvtHThaH(1) AAS
BEアイコン:nida.gif
最近のRESTful APIについての議論に触発されてEchoAPIを試してみたところ、エンドポイントのシミュレーションツールがテストプロセスを非常に効率化してくれた
514: (ワッチョイ 3351-iztn) 2024/12/21(土)07:13 ID:37tGDg2N0(1/2) AAS
IsWindowVisible
IsWindowEnabled
EnableWindow
のダイアログ版教えてくりゃ
515
(1): (アウアウエー Sae2-N2kD) 2024/12/21(土)10:49 ID:bIHzWCsda(1) AAS
GetWindowHandle
1-
あと 487 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s