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


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

Win32API質問箱 Build66



1 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:33:42 ]
スレ立てるまでもない、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

Win32API質問箱 Build65
pc11.2ch.net/test/read.cgi/tech/1208847084/

416 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:24:53 ]
>>415
大抵内部で〜Exを呼んでる (LoadLibraryとか)
むしろマクロで済ませてるCreateWindowが特殊

417 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:50:21 ]
>>395
10mS精度ぐらいならおおむねできるけど、ほかの処理で数百ミリ遅れることは多々ある。だからリアルタイムを現実的に無理。デバイスドライバでも同じ。
でもHALでリアルタイム実行させたり、windowsを仮想化させてリアルタイム実行させるるソフトがあるから、リアルタイムHALやRTXでググってみれれ


418 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:35:17 ]
>>397
ほかのFTPソフトを使うとそのサイトにはうpできるんんか?

419 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:53:00 ]
んんか?

420 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:01:00 ]
できるんんか の検索結果 約 1,850,000 件
w

421 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:02:13 ]
よく見たら一つ上のレスを真似しただけかな

実行させるるソフト
ググってみれれ

今時カナ打ちかよw

422 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:41:50 ]
かな入力の方が日本語のタイピングは速い。

423 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:45:00 ]
というのは間違い。

424 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:47:13 ]
キーをタイプする回数が減るから事実。



425 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:51:25 ]
かな入力じゃ10分間で5000タッチできる気がしない

426 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:56:24 ]
それは慣れていないだけ。

427 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:07:29 ]
まあどうせ俺なんか入力速度に脳が追いつかないからどうでもいいんだけどね

428 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:09:03 ]
しかし日本語は読みから漢字に変換しなければならないので、
いくら読みがなを早く入力できたからといって、それほど早くはならない気がする。
完璧に変換してくれるIMEは存在しないし。

429 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:28:27 ]
そこでT-Code

430 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:54:12 ]
ライターじゃあるまいし日本語のタイピング速度なんてどうでもいいだろ
それともひまわりでプログラミングしてるのか?

431 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:57:08 ]
日本語のレスに対する突っ込みだったから。

432 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:04:24 ]
>>417=>>422=>>431って事でいいの?
とりあえず君がカナ入力マンセーなのは分かったからもういいよ

433 名前:431 = 424 = 422; mailto:sage [2008/05/25(日) 13:07:11 ]
>>432
違う。俺はローマ字入力。事実を伝えただけ。スレ違いなので終わる。

434 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:08:42 ]
なんで怪しい日本語になるダヨ



435 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:14:17 ]

/* ここまで雑談 */


436 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:15:51 ]
>>433
431 = 424 = 422;
          ↑
こうやって反射的にセミコロンを付けてしまう事ってよくあるよねw

437 名前:433 mailto:sage [2008/05/25(日) 13:19:53 ]
>>436
板を考慮して付けた。

438 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:23:08 ]
もういいから

439 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:31:24 ]
こういう空気読めない奴ってホントどこにでもいるな
リアルでも空気読めなくて周囲からウザく思われてるんだろうな

440 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:34:53 ]
>>439
いい加減ウザイよ君

441 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:33:05 ]
質問がないと暇を持て余すんだろう
質問来ても、その調子なら邪魔以外の何者でもないが・・・

442 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:37:35 ]
int 21Hとか割り込み命令って今でも使える?
Win32API使わないとだめ?

443 名前:デフォルトの名無しさん [2008/05/25(日) 17:05:30 ]
試せば分かるだろ

444 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:55:52 ]
>>442
DOSアプリからなら使えるよ。32ビットアプリだとクラッシュ。
9x系だと確か一部のものはクラッシュしなかったような?
動かないだろうけど



445 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:09:09 ]
>>444
後半二行の不確かな情報は要りません

446 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:43:34 ]
>>444
DOSアプリのみということは、
Win32 コンソールアプリではだめなのか
なるほど

447 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:46:32 ]
Invalid icon format ってエラーが出るんですけど、アイコンの絵そのものが
問題あるってことですよね?XPのペイントで書いてみたのが問題ですか?



448 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:48:03 ]
アイコンって、大きさ正方形だったかサイズ固定だったか
決まりがあったような気がする。

449 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:50:56 ]
>>447
icon≠windows bitmap
そもそもフォーマットが違います
アイコンエディタを使いましょう

450 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:57:13 ]
>>448
それはgoogle検索で出てきたので、32×32にしてます。
>>449
そうなんですか、分かりました。

皆さんありがとうございました。

451 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:23:51 ]
そういえばVistaのPNG形式アイコンがあるとRC.EXEがエラー吐いたりしたけど
最近のバージョンのRC.EXEでは直ってるの?

452 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:48:19 ]
>>444
9xで、32ビットアプリケーションからファンクションコールをするとしたら、
DeviceIoControlを呼ぶのが正式な手段。全部使えるわけではないけど、
ディスクを直接読み書きするときとかに使った。

453 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:00:33 ]
9xの話を今頃されてもオッサン乙で終わるのだが

454 名前:デフォルトの名無しさん [2008/05/26(月) 00:19:42 ]
ウィンドウプロシージャを差し替えたいんだけど、
なんかできないんだよね。

SetClassLong(hWnd, GCL_WNDPROC, (LONG)AnotherMyWindowProc);
この関数を用いる上でなんか注意点ある?
マウスやアプリのアイコン変更も反映されないんだけど。



455 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:33:58 ]
注意点 msdnをよく読む事

456 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:43:49 ]
>>453
そのオッサンのやりとりにお前が絡む必要はないのに、何が乙なんだ

457 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:45:43 ]
俺の家の玄関に「硫化水素発生中」って貼った奴、氏ねよ

458 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:04:43 ]
そのネタはもう旬を過ぎてるよ

459 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:06:41 ]
まじでか

460 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:09:56 ]
>>454
わろた

461 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:17:49 ]
わらっつぁらめぇー

462 名前:454 mailto:sage [2008/05/26(月) 01:24:30 ]
homepage1.nifty.com/kazubon/progdoc/tclock/nagare2.html
ここみてる限り間違ってないと思うんだがナー

463 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:33:14 ]
>>462
それは良かったですね

464 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:37:50 ]
とってもよかったでーす^^^;




465 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:53:01 ]
>>462
赤字で書いてるとこと違う事をしてるのは、分かっててやってるの?
変更したクラスから新しくウィンドウを作るってんなら、それでいいんだけど。

466 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 11:46:16 ]
どこをどう見ると間違ってないんだよw

SetWindowLong、SetWindowLongPtr、SetWindowSubclass使えよ

467 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 11:53:56 ]
間違い探しかよw
ぱっと見てスルーしてたけど、SetClassLong使ってたのか

468 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 12:56:47 ]
>>451
VS2005なら、Windows SDK6.0だか6.1入れてCLやRCをそちら付属品を
使うようにすればVista圧縮形式に対応できる。
VS2008はRCでもMSDEVリソースエディタでも標準サポート

469 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 15:43:24 ]
>>452
9xだと本当にDOSが動いてるからね。
NTだと単なるエミュだし

470 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 15:52:02 ]
>>468
さんくす
RC.EXEだけでも入れ替えておけばビルド後のイベントでゴニョゴニョする必要は無さそうだw
IDEのリソースエディタでアイコンなんて作らないからそっちはまぁいいや

471 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 16:26:48 ]
>>470
VS2005だと、圧縮形式アイコンが含まれる.rcファイルがMSDEVで開けないんで注意

472 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 16:35:26 ]
VC2005はmsdevじゃなくてdevenvだったと思うが。
そんな俺はVC6ユーザー

473 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:01:52 ]
imepita.jp/20080526/612210
このような四角いボタンってどうやって作るんですか?

474 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:03:04 ]
言い忘れました。×ボタンです。



475 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:09:14 ]
クローズボタンのことが聞きたいのかオーナードローのボタンのことが聞きたいのか

476 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:25:53 ]
1. Toolbar を作る
2. ImageList を作る
3. [×] のビットマップを作る
4. 3. のビットマップを 2. の ImageList に追加する
5. ImageList を Toolbar にセットする
6. Toolbar に 3. のビットマップを持つボタンを追加する

477 名前:デフォルトの名無しさん [2008/05/26(月) 18:08:23 ]
指定したiniファイルのキーを削除するapiを教えてください

478 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 18:08:57 ]
やだ

479 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 18:55:43 ]
WritePrivateProfileStringで
lpAppNameにセクション名
lpKeyNameにキー名
lpStringにNULL
lpFileNameにiniファイルのパスを指定すると
指定したセクション内のキーが消える

480 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:04:01 ]
>>479
まじっすか^^
WritePrivateProfileStringで値をNULLにすると消えるんですね
これは知らなかった。ありがとうございます!

481 名前:479 mailto:sage [2008/05/26(月) 19:04:52 ]
ってかMSDN読めよ

482 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:05:09 ]
MSDNも読まずにWin32APIを使おうとする奴の気が知れない

483 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:05:36 ]
つーか引数どうやって知ったのかw
そこに説明もあると思うんだがなあ

484 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:33:34 ]
MSDNなんて読まなくていい
ここで質問するだけで丁寧な解説が日本語で得られる
お人好しな人間ほどうまく扱えば便利なものは無い


というのが俺の妄想

一応言っとくが俺はちゃんとMSDNで調べる派だからな



485 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:36:57 ]
俺みたいに嘘を教える奴も居るから気をつけないと

486 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:40:39 ]
俺みたいにかく乱する奴もいるからry

487 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:45:04 ]
お前ら必死でワロタ

488 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:31:16 ]
VC.net2003 + SDKで、ImageList使える?
ビルドは通るが、CreateWindowExでウィンドウ作成した時点で、'hoge, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' から
型 '_IMAGELIST' を読み込めません。って出て落ちるんだけど・・・

489 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:37:28 ]
DiskcopyコマンドってどういうAPI使ってフロッピーに出力してるの?
このコマンドに限らずブート領域を書き込めるのって同じやり方だと思うんだけぢ
少なくともfoutやCopyFileではなさそう。

490 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:39:08 ]
> 思うんだけぢ
どこの方言でぢか?

491 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:43:52 ]
アマゾン地方の方言が出てしまいました

492 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:47:15 ]
DeviceIoControlとかじゃないの
知らんけど

493 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:55:32 ]
>>489
DDKを見ましょうね。

494 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:04:43 ]
やだ



495 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:06:57 ]
>>489
NTならCreateFileで"\\\\.\\A:"のようにすると生のドライブを開ける。SDKにも書いてある。
9xなら>>452。KB125712やKB174569など。

496 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:10:48 ]
あした試してみよう

497 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:27:50 ]
もうすぐ明日だろ

498 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:56:37 ]
関数を動的に作ってウィンドウプロシージャとして渡す事ってできないんですか?

クラスのメンバ関数をウィンドウプロシージャにできないのが、
理屈ではよくわかるんですけど、なんか納得できなくてw
static使って場合分けするのもなんか反則的というか、やりたいことと違う気がして…
クラスのコンストラクタで関数を動的に作ってコントロールのプロシージャとして使い、
デストラクタでコントロールは期すると共に関数も破棄できないかなぁと。


…ゴメンナサイ、なんかもう投げやりです。

499 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:06:12 ]
グローバル関数でのプロシージャで
各クラス内の自作プロシージャにそれぞれ処理を割り振ったりすれば良いんじゃない?

500 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:09:06 ]
つーか自分でラッパー書けばいいだけじゃね

501 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:10:07 ]
僕ハッカー!!!

502 名前:489 mailto:sage [2008/05/27(火) 00:11:11 ]
CreateFile
DeviceIoControl
WriteFile
でなんかフロッピーに出してるのは判った
しかしこの方法でフロッピーの中にファイルを作る方法がわからなう

503 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:13:47 ]
FAT32の仕組みでも覚えろ

504 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:14:44 ]
>>498
web.archive.org/web/20070810174250/http://techtips.belution.com/ja/vc/0009/
ようするに、静的メンバ関数の中から
何らかの方法でウィンドウに対応するオブジェクトを得て、
そのオブジェクトの非静的メンバ関数に処理を渡せばいい。

ウィンドウクラスの場合、次のようなものを使って
オブジェクトへのポインタを保存する例が多い。
Get/SetProp
Get/SetWindowLongPtrとウィンドウクラスごとの追加データ
Get/SetWindowLongPtrとGWLP_USERDATA

ちなみに、ATLは本当に動的に関数を作って対処している。
hp.vector.co.jp/authors/VA022575/c/msgmap.html





505 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:16:02 ]
>>502
逆に、ファイルがある状態のフロッピーディスクを
吸い出して中身を眺める、もちろんFATの構造の解説と一緒に。

506 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:10:13 ]
アプリケーションへのアイコン設定は、
検索で調べると必ず .rc への記述方法が紹介されてますが、
.rc を経由せずに .cpp のプログラムのみで設定って出来るんでしょうか?
よろしくお願い致します。

507 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:17:45 ]
>>502
何がしたいのかよくわからんが
フロッピーの中にファイルを作るのならばCreateFileでいいと思うが。
diskcopyだったらセクタを全部コピーすればいい

508 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 07:09:57 ]
あるウィンドウがHWND_TOPMOSTで最善面になっているかどうかを判断するにはどうすればいいのでしょうか?

509 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 07:58:26 ]
GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST

510 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:25:20 ]
>>504
atlthunk.cppが凄い
てかこんなのMSの中の人でないと書けないだろw

511 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:45:38 ]
書ける奴はいくらでもいるだろうが、実際に、書こう思う奴は、それほどいない。
MFCはHWNDとベースクラスへのポインタを、
いわば、std::map< HWND, Hoge >的なもので管理していて、メッセージが来るたびに検索してると聞いたが。

512 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:33:10 ]
>>511
実際に中身を見てから言って欲しいね

513 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:46:49 ]
コード生成はWindowsより前なら常套手段だから昔の人なら楽勝

514 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:52:23 ]
そんな話はしていない
いいから当該ソースを見ろ



515 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 10:24:54 ]
WinMainからDialogBoxでモーダルダイアログを作成しております。
DialogProc内から例外をthrow(あるいはRaiseException)したところ、
WinMainで正常にcatch出来ました。

ところがDialogProcからさらに孫ダイアログを作成し、
孫ダイアログのDialogProc内から例外をthrowしたところ、
子ダイアログのDialogProcでcatch出来たのですが、
return後にAccess violationで落ちてしまいました。

どうすればreturn後に処理を続行できるのでしょうか?

516 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 10:27:53 ]
長くて恐縮ですがソースを貼らせて頂きます。
INT_PTR CALLBACK proc2(HWND wnd, UINT msg, WPARAM w, LPARAM) {
 switch (msg) {
  case WM_INITDIALOG: return TRUE;
  case WM_COMMAND:
   switch (LOWORD(w)) {
    case IDOK:
     EndDialog(wnd, LOWORD(w));
     throw std::exception("HOGE!"); // 例外をthrow
    case IDCANCEL: EndDialog(wnd, LOWORD(w)); return TRUE;
   } break; } return FALSE;
}
INT_PTR CALLBACK proc1(HWND wnd, UINT msg, WPARAM w, LPARAM) {
 switch (msg) {
  case WM_INITDIALOG: return TRUE;
  case WM_COMMAND:
   switch (LOWORD(w)) {
    case IDOK:
     try {
      DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_2), wnd, proc2);
     } catch (const std::exception&) {}
     return TRUE; // return後にAccess violation
    case IDCANCEL: EndDialog(wnd, LOWORD(w)); return TRUE;
   } break; } return FALSE;
}
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
 try {
  DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_1), 0, proc1);
 } catch (const std::exception&) {
 } catch (...) {} return 0;
}






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

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

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