[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/04 11:46 / Filesize : 212 KB / Number-of Response : 986
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build62



1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/

367 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:13:09 ]
ビジーループでおk

368 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:15:10 ]
>>362
そのリストビューはカラムを2つ以上追加した状態なのか?(ListView_SetItemTextの第3引数は一番左のカラムなら0)
あとLVITEMは宣言時に { 0 } で初期化したほうがいい
まずはリファレンスか入門サイト見たほうがいいよ

369 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:21:34 ]
>>364
どんなウェイト?
他のスレッドに一瞬制御渡したい目的なら「メッセージポンプ」で検索。
そうじゃなきゃvolatile int i; for(i=0;i<100;i++);とかで適当に回すとか。

370 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:30:25 ]
I/Oポート触ったら約1μ秒だ、ってどっかに書いてあった

371 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:33:47 ]
>>364
精度がいらなくて短いウェイト?
つSwitchToThread()

372 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:40:21 ]
>>363
ランタイムは勝手にインスコされた気がするが。

373 名前:デフォルトの名無しさん [2008/02/12(火) 22:18:03 ]
>>368
ゼロで初期化したら、”できました!!”
カラムは4本です。だけど、不思議です。
ありがとうございました。!!!!

374 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:18:37 ]
>>364
Sleep(0);

375 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:39:45 ]
SetTimerのタイムアウト値って動的に変えるにはどうすればいいの?
UINT型でキャストした変数じゃむりですた



376 名前:デフォルトの名無しさん [2008/02/13(水) 00:02:33 ]
ウィンドウズのシステムの休止や終了に関する質問です。
システムの終了時を捉えるには、WM_ENDSESSION メッセージに対応すればいいと思うんですが、
ハイバネーションモードに入るのを捉えるにはどうしたらいいでしょうか
タイマーでプログラムが生きてるかどうか確認する方法しか思いつかないです。
(定期的に時間差をとることで、復帰後にシステムが休止状態にあった時間を調べるという泥臭い方法くらい)

377 名前:デフォルトの名無しさん [2008/02/13(水) 00:03:33 ]
>>375
普通に最初に指定したタイマーIDと同じIDを指定して、新しい時間を設定すればOKだと思いますが

378 名前:デフォルトの名無しさん [2008/02/13(水) 00:33:28 ]
>>361
オーナードローを使えと言いたいところだが…

379 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:50:41 ]
>>361
BS_RADIOBUTTON,BS_CHECKBOX,BS_AUTORADIOBUTTON,BS_AUTOCHECKBOX
のいずれかとBS_PUSHLIKEを組み合わせればトグル動作するけど
どうだろう?

380 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:54:37 ]
>>376
WM_POWERBROADCASTとか

381 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:46:07 ]
人材管理は技術のないやつの逃げ道ですか

382 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:24:07 ]
他人を使うことができる人間は、1日に24時間以上の時間を使うことができるのです
が、ム板にはこういうレスと人は不要です

383 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 05:52:26 ]
これひょっとしたらAPI関係ないかもしれないんですけど、
スレッドの開始関数に情報を渡すときってどうすればいいんですか?グローバル変数?

384 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 07:21:02 ]
>>383
void*の引数があるから、それで何とかしろ。
素人にはお勧めしない方法だが、下のような方法で組むことがあるな。
渡した内容をきちんと受け取るまで待っている所が重要。

static foo_data {
 volatile int flag;
 int data1;
}

DWORD ThreadProc (LPVOID lpParam) {
struct foo_data param = *(struct foo_data *)lpParam;
((struct foo_data *)lpParam)->flag = 1;
...
}

HANDLE ThreadStartProc(int data1) {
struct foo_data param = { 0, data1 };
HANDLE hThread;
if ( (hThread = CreateThread(NULL, 0, ThreadProc, ¶m, ...)) != NULL ) {
while ( !param.data1 ) Sleep(100);
}
return hThread;
}

385 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 08:44:44 ]
SleepにINFINITE渡しても49.7日後に起きないよね?



386 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:17:35 ]
アクティブウィンドウとフォアグラウンドウィンドウとフォーカスの違いについて教えてください。

387 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:47:16 ]
フォーカスは別物。正しくはキーボードフォーカスって言えばなんだかわかるよな?

388 名前:383 [2008/02/13(水) 16:34:53 ]
>>384
すみません自己解決しました
グローバル変数とクリティカルセクションを併用すればいいみたいです

void *の引数はWindowsで使用する的なことが書いてあったので避けていたのですが、その方法でも出来るんですね
蛇足だけど、1行目のstaticってのはきっとstructのことですよね

389 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 17:22:10 ]
普通にnewなりmallocなりして渡せばいいのに

390 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 17:42:42 ]
素人にはお勧めしないとか言ってるくせに>>384のコードが素人丸出しな件について

391 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 17:51:09 ]
こっちの方が問題のような
-while ( !param.data1 ) Sleep(100);
+while ( !param.flag ) Sleep(100);

392 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:29:25 ]
>>384>>388>>391
そういう待ち合わせにはイベントを使う。
クリティカルセクションとフラグじゃItaniumでうまく動かないし、
一回空振りしただけで無駄に 100msec も待ってしまう。

それからデータの受け渡しだけなら、new した構造体のポインタを渡して
スレッド側で不要になったら解放すれば、そもそも待ち合わせる必要もない。

393 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:40:22 ]
>>379
まさにそれでした。まさか普通のボタンではないとは。
ありがとうございました。

394 名前:384 mailto:sage [2008/02/13(水) 22:04:32 ]
確かに色々間違い杉だった。朝っぱらから書き込むもんじゃない。orz
メモリバリアは完全に忘れてた。Interlock系API使わなきゃダメだな。
でもクリティカルセクションが駄目な理由が良く判らん。何で?
まあ、Cで解放とか面倒なことをせずに済むように考えて書いたコードだから勘弁。

395 名前:383 [2008/02/13(水) 23:00:55 ]
>>392
イベントですか・・・調べてみます



396 名前:392 mailto:sage [2008/02/13(水) 23:09:16 ]
>>394
>でもクリティカルセクションが駄目な理由が良く判らん。何で?

漏れの眼か頭が悪くて、転記していながら見落としていたからw

397 名前:386 mailto:sage [2008/02/13(水) 23:43:26 ]
>>387
どうもです。フォーカスはキー入力を受け付けるということで良いのですが、
フォアグラウンドとアクティブウィンドウはどう違うのでしょうか?
SetForegroundWindow() の説明では「アクティブウィンドウにしてフォーカスをセットする」
と記述されてますが、アクティブウィンドウとはタイトルバーの色が変わっているウィンドウのことでしょうか?

398 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:13:51 ]
WinAPI勉強し始めてからCPUの凄さに驚かされっぱなしです
CUIの時は実感なかったけどこんな複雑な計算が一瞬で行われてるなんて…
人はなんて恐ろしいものを作ってしまったんだ

399 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:26:01 ]
なんとなく宇宙ヤバイ思い出した

400 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:43:05 ]
ヤバイ。CPUヤバイ。まじでヤバイよ、マジヤバイ。
CPUヤバイ。
まず速い。もう速いなんてもんじゃない。超速い。
速いとかっても
「リニアモータカーくらい?」
とか、もう、そういうレベルじゃない。
何しろギガ。スゲェ!なんか単位とか丸められてるの。何キロとか何万とかを超越してる。10億倍だし超速い。
しかもさらに速くなってるらしい。ヤバイよ、加速だよ。
だって普通は時間とか加速しないじゃん。だって寝てられる時間がだんだん短くなったら困るじゃん。5分しか寝られないとか困るっしょ。
朝日が出て、先月は沈むまで16時間だったのに、今日は2時間とか泣くっしょ。
だから時間とか加速しない。話のわかるヤツだ。
けどCPUはヤバイ。そんなの気にしない。加速しまくり。最も初期から考えると10億倍とかよくわかんないくらい速い。ヤバすぎ。
ギガって言ったけど、もしかしたらテラかもしんない。でもテラって事にすると
「じゃあ、テラの次ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超熱い。約333ケルビン。摂氏で言うと60℃。ヤバイ。熱すぎ。生卵が温泉卵になっちゃう。怖い。
それに超高集積。超キツキツ。それに超高い。10億万円とか平気で出てくる。億万円て。小学生でも言わねぇよ、最近。
なんつってもCPUは計算力が凄い。WinAPIとか平気だし。
うちらなんてプログラムとかたかだかエクセルマクロで出てきただけで上手く扱えないから使わなかったり、
足し算くらいにしか使わなかったり、出来る人にやって貰ったりするのに、CPUは全然平気。WinAPIを機械語のまま扱ってる。凄い。ヤバイ。
とにかく貴様ら、CPUのヤバさをもっと知るべきだと思います。
そんなヤバイCPUを作ってるAMDとか超偉い。もっとがんばれ。超がんばれ。

401 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:45:03 ]
わざわざ作ったのか

402 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:47:24 ]
>>400
ワロタw

403 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:50:15 ]
すまん、つい・・・

404 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:53:42 ]
>>400
くると思ったw

405 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:50:46 ]
>>400
和んだwww



406 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:17:51 ]
私はノートパソコンを使っているのですが、少し前にうっかりしてコカコーラをこぼしてしまいました。
慌てて逆さにしたり、ドライヤーで乾かしたりしたのですが、キーの入力がおかしくなってしまいました。
今はUSBキーボードを繋いでパソコンを使っているのですが、けっこうな頻度で押してないキーが押されている状態になります。
USBのキーボードを外していても起きるので、ノートのキーボードのほうからキーの入力が起きていると思われます。
コントロールパネルからドライバのアンインストールをしてみたのですが、再起動すると勝手にインストールされてしまいます。
なので、自作のプログラムでノートのキーボードからだけの入力をシャットアウトしたいのですが、APIで解決できますか?

407 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:20:50 ]
ジュースの成分が残ってて短絡してるだけだからノートPCを分解してキーボードを水洗いすれば直るよ。

408 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:44:09 ]
分解ですか・・・。
機械音痴なので元に戻せるかどうかが心配です・・・。
いざとなったらやってみたいと思います。

409 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:26:01 ]
電源ボタンとキーボードが一体化されてないのなら
キーボードをコネクタのとこから外しちゃえ。

ThinkPadにコーラ飲ませたときは電源入れるときだけ繋いでたなあ。



410 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:11:23 ]
チソコパッド

411 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:35:19 ]
>>392
> それからデータの受け渡しだけなら、new した構造体のポインタを渡して
> スレッド側で不要になったら解放すれば、そもそも待ち合わせる必要もない。
横からだけど、そんなの気づかなかった。ずっとイベントで待ってた。トン

412 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:30:34 ]
不特定のプロセスに対して自身の再起動を要求するコードを書いているのですが、
新プロセス起動→自身死亡 だと対象になるプロセスが多重起動を禁止していた場合に上手く動きません
今のところ 
新プロセスサスペンド起動→リモートスレッド作成(待機)→自身死亡→死亡をトリガにリモート待機解除→リジューム
ぐらいの方法しか思いつかないのですが、なにか良い方法ってないですか?

413 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:32:50 ]
中継プロセス起動→自身死亡→新プロセス起動

414 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:51:29 ]
> 不特定のプロセスに対して自身の再起動を要求するコード
これって可能なの?
メモ帳みたいに「保存しますか?」とか出るやつにはどう対応するの?

415 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:53:25 ]
プロセスごと殺せばいいんじゃね



416 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:59:35 ]
編集中のデータが保存されないだろw

417 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:03:18 ]
>>416
想像力低下していませんか?
世の中のアプリ全てがエディタではないのですよ。

418 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:17:25 ]
>406
素直に修理に出したほうがいいよ。糖分は予後不良の原因になるから。

419 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:44:08 ]
>>417
お前頭悪いな
「不特定のプロセス」という事はプロセスを強制的に殺したらデータが飛ぶ物もあるだろう

420 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:48:37 ]
>>419
寝ているんですか?
データが飛ばないものもあるってことに気付いてください。

421 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 01:49:33 ]
煽り合い的なものは外でやってくれると助かります

422 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:09:04 ]
419と420はなぜ対立しているのかわからない。
「プロセスを強制的に殺したら、データが飛ぶものもあれば飛ばないものもある」

423 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:12:29 ]
「あるプロセスを強制的に再起動する」というのが要件で、
そのとき処理中のファイルは壊れる・消えるかも知れないけど
なんとかしる、ってのはたぶん要件に入ってないんだよ。

424 名前:デフォルトの名無しさん [2008/02/15(金) 02:20:05 ]
Windowsのコントロールパネルにあるタスクについての質問です
再起動時刻と実行ファイルを指定して、目覚ましのような機能を実装するにはどうしたらいいでしょう
このタスクというのはレジストリに記録するものなんでしょうか?
このあたりの取っ掛かりがドコにもなくて困ってます

425 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:27:29 ]
>>424
よく知らんけどITaskSchedulerというのがあるぞ



426 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:31:21 ]
NetScheduleJobAddでもええのんか?

427 名前:デフォルトの名無しさん [2008/02/15(金) 04:35:35 ]
>>425 >>426
おお トンクスです
ITaskSchedulerはc++じゃないとダメみたいですけど、やっぱcだけじゃ先細りかなぁ
ヘルプみながらやってみます。
こういう切っ掛けがもらえると、結構ありがたいです。
ありがとう

428 名前:412 mailto:sage [2008/02/15(金) 06:24:41 ]
レスどうもです

413の方法がより良いですね(楽だし) 
DLLのみで実装しているので、コンポーネントが増えるのがちょっとなぁ
という感じだったのですが、どこの馬の骨とも知らんプロセスにスレッド作るのも信頼性が無いですね

で安全な自殺の問題に関しては>>423の通りです
赤の他人のプロセスの正しい終了方法ってのは無いと思っているので
終了に関しては「いいから死ねよww」的実装にする予定です

429 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 07:33:05 ]
>>427
インターフェースはCでもきちんとアクセスできるよ。
ヘッダににもC用のマクロが生成されているはず。

430 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:26:47 ]
>>428
怖いソフトだな

431 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:45:53 ]
複数のウィンドウで別々の図形を表示する。
プログラムを作成しています。
www.gazoru.com/g-56c381307c3112291311c2c91b1d703f.jpg.html
www.gazoru.com/g-3f62aa51c6bc698fbc545808c1d04fa0.jpg.html



最初は、別々に表示されるのですが、重なった場合
下のを上(アクティブ)にすると、一枚目と同じになって
しまいます。

○原因
○対処方法

をお教え下さると有り難いです。
ソースは、一応付けます。
Pass=1 
(win2000 vc6.0)
www11.axfc.net/uploader/20/so/He_72578.zip.html

432 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:46:55 ]
主要部分プログラム
case WM_PAINT:


   //1
hdc= BeginPaint( hWnd, &ps );
Rectangle(hdc, 100, 100, 400,400);
ReleaseDC(hWnd, hdc);
EndPaint( hWnd, &ps );


     //2
RECT rect;
GetClientRect( hWnd3,&rect );
hdc= BeginPaint( hWnd3, &ps );
Rectangle(hdc, 0, 0, 100,100);
ReleaseDC(hWnd3, hdc);
EndPaint( hWnd3, &ps );


//3
hdc= BeginPaint( hWnd5, &ps );
Rectangle(hdc, 50, 50, 200,200);
ReleaseDC(hWnd5, hdc);
EndPaint( hWnd5, &ps );



break;


433 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:47:16 ]
case WM_SIZE:



//2
hdc= BeginPaint( hWnd3, &ps );
Rectangle(hdc, 0, 0, 100,100);
ReleaseDC(hWnd3, hdc);
EndPaint( hWnd3, &ps );


//3
hdc= BeginPaint( hWnd5, &ps );
Rectangle(hdc, 50, 50, 200,200);
ReleaseDC(hWnd5, hdc);
EndPaint( hWnd5, &ps );


434 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:57:56 ]
>>431
現象がよくわからん、2008でやっても再現しないみたい。
まあそれはおいといて、WM_PAINT以外でBeginPaintは使うな。
そこで書きたいならInvalidateでPAINTにまかすか、
GetDCで自分でDCもってこい

435 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:05:36 ]
ってソース見るとむちゃくちゃやっとるな。
WM_PAINTの仕組みとか、ウィンドウプロシージャの動作とか
知ることはいっぱいありそうだけど、いったいどれを参考にしたのこれ?



436 名前:デフォルトの名無しさん [2008/02/15(金) 15:58:10 ]
VC2008Expressをインストールしようと思っているのですが、これには前もってWindowsSDKをインストールしておいたほうがよいのでしょうか。
2005と違って2008は、最初からPlatformSDKが付いているようなので、WindowsSDKは必要ないように思っているのですが、どうなのでしょうか。

437 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:04:41 ]
>>436
.h ファイルや .lib ファイルを参照したり、取り込むよう指定が不要なら
要らないんじゃないか。スペルがあやしいが、dialog や listbox ctrl など
を使おうとすると、cmnctl32.lib とか要るだろう。
自分は dsound.h, dsound.lib も使うんで DirectX も入れたよ。

438 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:38:06 ]
WindowsSDK6.1落としてきたんだが、6.0には付いてたコンパイラが入ってない?
セットアップのコンポーネント一覧でグレーアウトしていてチェックできない・・・

それともVS2008が入ってると自動で弾かれるのか?(2008Proが入ってる)
2005の時と同じくソース解析対応コンパイラに差し替える裏技が使えると期待したんだが。

439 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 17:00:12 ]
>>431
>>435も言ってるけど、全体的にむちゃくちゃ。
基本から勉強し直した方がいいと思う。

とりあえず、複数のウィンドウで同じプロシージャを共有するのなら、
メッセージ受け取り時に、それを区別しないと。
www11.axfc.net/uploader/20/so/He_72614.zip.html
Pass:1

440 名前:デフォルトの名無しさん [2008/02/15(金) 17:01:21 ]
質問です。
ゲームのチートツールを作るAPIって何ですか?
猫飯みたいに今実行してるプロセスのメモリを見れて
いじれるものをつくりたいんですが。
つまり実行中のほかのプロセスのメモリを書き換えるAPIとかって無いですか?

441 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 17:11:24 ]
WriteProcessMemory

442 名前:デフォルトの名無しさん [2008/02/15(金) 17:35:57 ]
色々と調べて分かったのですが、WindowsSDKというのは、PlatformSDKと.NETFrameworkを一緒にまとめたもののようです。
ということは、VCだけを使う場合であれば、.NETFrameworkは不要ということで、
WindowsSDKをインストールする必要はないように思えるのですが、実際どうなのでしょうか。
一番気になっているのは、VC2008に付属するPlatformSDKが、
APIを使ったWinプログラムに完全に対応しているかどうかです。
437の方が言うように、comctl32.libが抜けていたりしたら困るところです。

443 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 17:41:25 ]
それくらいの基本的なものは揃っているから大丈夫。
ヘッダ・インポートライブラリに関してはVC++付属ので困ってから、
入れることを考えても遅くない。

だから、入れるとしたら、Windows SDKのツールやドキュメントが欲しいとき。


444 名前:デフォルトの名無しさん [2008/02/15(金) 17:49:23 ]
なるほど。分かりました。
取りあえず、2008をインストールして、何が不足しているかを探ってみます。

445 名前:デフォルトの名無しさん [2008/02/15(金) 18:03:59 ]
>>400

「じゃあ、テラの次ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。

ネタとはいえ、どんだけ教養ないんだよとオモタ



446 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:20:19 ]
テラの次と言えばハカだろjk

447 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:36:24 ]
自分が知ってるとこだけつっこむってのは、それ以外は知らないということでいいのか?

448 名前:デフォルトの名無しさん [2008/02/15(金) 18:41:30 ]
>>441
ありがとー☆
さっそくつくってみる

449 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:28:57 ]
>>448
がんばれ 超頑張れ
DirectXとかゲームPGもいいけどそっちの世界も面白いぞ

450 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:59:45 ]
>>446
テラって葬式だけやってるわけじゃないぞ

451 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:20:21 ]
エキスプレスエディションは、コンソールアポリ作れるようなヘダーやリブラリーしか入って無くて、
ウィンドーズ.hとか、コモンコントール.hとかはウィンドーズSDKに入ってるから、
別途インストロールしないといけないと思ってたが、違ったのか。

つか、ウィンドーズSDKのコンパイラーいれないと、エキスプレスエディションだけじゃ、
RC.Exeがないから、リソースがコンパイールできませ〜ん、ってエキスプレスの妖精さんに言われたんだが。

452 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:22:26 ]
そういや神社って葬式しないのかな?
皇室の葬儀もよく判らんし

453 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:31:01 ]
>>451
VC++ 2008はWindows SDKのサブセットが入っている。

454 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:34:56 ]
神域は穢れを嫌うから神社で葬式はしないだろ
神格化していた頃ならいざ知らず

455 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:06:29 ]
DT_CALCRECTでItaricの立ったフォントを計算して描くと右端が切れます。
仕様ですか?



456 名前:デフォルトの名無しさん [2008/02/15(金) 23:18:08 ]
サクラエディタや寺パッドとかって標準のテキストボックスじゃないよね?
だとしたらDrawTextとかで自力で書いてるの?

457 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:23:20 ]
サクラエディタはソース公開されてるはずだから見てみれば?

458 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:23:53 ]
テキストエディタの実装技術っつたらひとつの研究分野ですがな

459 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:36:36 ]
VC++ 2005、WinXPで開発しています。
unicodeアプリです。

ある文字が全角文字か、半角文字かを判定したいと考えています。
どのようなAPIがあるでしょうか、よろしくお願いします。

460 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:39:14 ]
普通にデータの文字コードを見ろよ

461 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:47:41 ]
U+00C0〜辺りも半角って言うの?

462 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:58:05 ]
ユニコードコンソーシアムがUnicode文字の属性として全角・半角などを決めている。

それとどういう関係かは知らないけど、
Windows APIでは、GetStringTypeExのCtype 3で、全角・半角を取得できる。

463 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:48:44 ]
ttp://wisdom.sakura.ne.jp/system/winapi/win32/index.html
↑のサイト見ながらWinAPI勉強し始めたばかりの者ですが
コマンドライン引数の項に乗っている一番最初のサンプルプログラムをコンパイルしてみたところ
PSTRとLPCWSTRの型に互換性がないと警告され、データファイルを実行ファイルにD&Dすると文字化けしたパスが表示されました

その前のメッセージボックスの項で紹介されていた引数の型と違うからおかしいとは思っていたのですが・・・
一応、型変換なども試してみたのですが表示されるのはいつも文字化けしたファイルのパスです
なんとか文字化けさせずにD&Dしたファイルのパスをメッセージボックスに表示させたいのですがどうしたらいいでしょうか?



464 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:00:52 ]
ユニコードについてと、Windows & VCでのユニコード文字の扱い、
プログラム上での表記について調べるがよい。

とりあえず、PSTR はchar型へのポインタ、LPCWSTR はwchar_t型へのポインタのハズ。
別ものだよ。

ただ、そのページの例にも問題があるなw

465 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:04:48 ]
>>463
環境は?
VisualStudio2005からはUNICODE文字セット使用がデフォルトになってるからな
マルチバイト文字セット使用にするか、ソースをUNICODEにあわせるかどっちかで



466 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:06:28 ]
>>464
ありがとうございます!
早速ユニコード文字について調べてきます

467 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:09:58 ]
>>465
VC++2005EEです
・・・っということはやっぱりユニコードですか

GUI作成に至るまでに覚えることは多そうだ・・・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef