■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build33
251 名前:デフォルトの名無しさん :2005/07/09(土) 00:40:33
>>249
fgets で十分ではないか?

252 名前:デフォルトの名無しさん :2005/07/09(土) 00:48:37
stdioよりもっと柔軟な(たとえば文字列バッファとの入出力なども可能な)
あるいはマルチスレッド環境で意図的に排他を行わないことにより高速性を
実現した
バッファリングI/Oの層を作りたいのかもしれない

前者はたとえばBSD4.4のfunopen()のようなものがあればFILE*の世界で
実現可能だが、残念ながらMicrosoftのstdioにはそのようなものはない

253 名前:デフォルトの名無しさん :2005/07/09(土) 01:11:16
char *fgets(char *s, int n, FILE *stream);
ReadFileを1バイトずつn-1回読み込んで、sにセットしていけば。
ファイル終端や改行があったら抜ける。

254 名前:デフォルトの名無しさん :2005/07/09(土) 01:15:38
>>247
TOOLKITなので、多分SPYはないのです・・・。

255 名前:デフォルトの名無しさん :2005/07/09(土) 01:20:55
spy++ぐらい、PlatformSDKについてるだろ

256 名前:デフォルトの名無しさん :2005/07/09(土) 01:21:21
>>251
ランタイムライブラリを使いたくネーンダヨ

257 名前:デフォルトの名無しさん :2005/07/09(土) 01:26:41
>>256
だからVC++のソース見れと。
PlatformSDKにも確かlibcのソースが不完全ながらついてるから
タダで見れるはずだぞ。

要するにFILE構造体相当の、バッファを保持する構造と、それを使って
入出力する関数を自前で作るだけだ。

258 名前:デフォルトの名無しさん :2005/07/09(土) 01:29:48
ランタイムをつかいたくねーってのがいかにも厨の考えることだな。

259 名前:デフォルトの名無しさん :2005/07/09(土) 01:30:57
>>258
そーか?
俺はDLL組むんなら、出来るならランタイムへの依存は避けるがな

260 名前:デフォルトの名無しさん :2005/07/09(土) 01:37:24
ますますもって意味不明

261 名前:259 :2005/07/09(土) 01:41:53
>>260
言っておくが俺は>>256ではないぞ。
ま、DLLを作る際にLIBCに依存したくないキモチが分からないおまいは
厨以下だな。

262 名前:デフォルトの名無しさん :2005/07/09(土) 01:59:15
コンパイルの意味を理解してない、としか考えられん

263 名前:デフォルトの名無しさん :2005/07/09(土) 02:00:56
だから、
LIBCに依存しとるDLLを使う場合、ユーザプログラムもLIBCのバージョンや
変種をあわせないといかんだろ?

それがウザいから、LIBC非依存にできるんならそうしたいという
ただそれだけの話だよ

264 名前:デフォルトの名無しさん :2005/07/09(土) 02:45:53
DLL側がCRTをスタティックリンクしてれば何の問題もないだろ

265 名前:デフォルトの名無しさん :2005/07/09(土) 02:51:11
>>264
DLLとユーザプログラムでCRTのオブジェクトを受け渡しする場合、
同じCRTのDLLを使う以外の方法は無いよ。スタティックリンクは論外。

素人は出てこないでね。

266 名前:デフォルトの名無しさん :2005/07/09(土) 04:16:51
CRTオブジェクトとか、そんなプリミティブなオブジェクトをインターフェイスに使うなよ

267 名前:デフォルトの名無しさん :2005/07/09(土) 04:25:10
Platform SDKの最新版(2003/SP1)の英語のマニュアルみてるんですが
Functions by Releaseの項目にXPSP2が載ってないんですが
SP1->SP2 で追加されたAPIってないのでしょうか?

268 名前:デフォルトの名無しさん :2005/07/09(土) 04:47:09
>>266
はあ?
あんた、FILE*をいちいちラップしないと気がすまない人?
そんなら、そもそもCRTなんか、つかわなきゃいいんじゃないの?(w

ま、何にせよUNIX系から出てきたオープンソースのライブラリには、そういうのは
よくあるよ。
FILE*やerrno、ロケールのようなものが絡むようなやつね。

無論、DLLとクライアントプログラムで、片方でmalloc()してもう
片方でfree()、なんてのもダメ。

269 名前:デフォルトの名無しさん :2005/07/09(土) 05:17:00
DOSでのAX=4B01hみたいな、プロセスの形だけ整えて実行はしない関数は、Win32ではどれですか?


270 名前:デフォルトの名無しさん :2005/07/09(土) 07:34:56
>>268
「CRTは極力使わない」という話から「UNIX系から出てきた」とか、まったく逆のことを言っているのに自分で気づかないバカか?

271 名前:デフォルトの名無しさん :2005/07/09(土) 08:42:20
良くいる困ったちゃんだからスルーしたげなさい

272 名前:デフォルトの名無しさん :2005/07/09(土) 09:13:38
質問です。

自作アプリケーションのフォームにフォーカスが当たらないようにする方法はありますか?
感覚的には、見えていても触れないようになればよいのですが。

273 名前:デフォルトの名無しさん :2005/07/09(土) 09:16:57
つ[EnableWindow]

274 名前:272 :2005/07/09(土) 10:21:56
後から気付いたんですが
「操作を透過させる」いう言い方をすれば早かったようです。

>273
すいません。説明不足でした。


275 名前:デフォルトの名無しさん :2005/07/09(土) 10:35:33
操作を透過?


276 名前:50 :2005/07/09(土) 10:45:30
>>57
ありがとうございました。

277 名前:デフォルトの名無しさん :2005/07/09(土) 10:46:20
サウンドカードがあってもビープ音を出すのにはどうすればいいですか?


278 名前:デフォルトの名無しさん :2005/07/09(土) 11:07:40
WM_SETFOCUS が来たら、wParamにフォーカスを戻せば?

279 名前:272 :2005/07/09(土) 11:09:44
>ttp://www.forest.impress.co.jp/lib/sys/hrdbnch/hardinfo/mobilemeter.html
>マウス操作を透過させることも可能。
>これにより常にデスクトップに表示していても、
>本ソフトの下に表示されているほかのソフトを自由に操作することができる。
例えばこういうソフトでやられているようなことをしたいわけです。

「WM_NCHITTESTでHTTRANSPARENTを返す」という方法を見つけたんですが
これでも操作を受け付けなくなるだけでした。

280 名前:デフォルトの名無しさん :2005/07/09(土) 11:22:24
>>279
そのソフトをインストールして、SPYで観察したら?
もしかしたら、ウィンドウじゃないかもしれないし。


281 名前:デフォルトの名無しさん :2005/07/09(土) 11:23:45
初心者です。質問させてください。
猫でもわかるプログラミング、SDK65章についてです。
case WM_NOTIFY:
switch (((LPNMHDR)lp)->code) {
case TTN_NEEDTEXT:
lptip = (LPTOOLTIPTEXT)lp;
lptip->hinst = hInst;
switch (lptip->hdr.idFrom) {
case IDM_PARENT:
lptip->lpszText
= MAKEINTRESOURCE(IDS_TIPS_PARENT);
break;
〜以下省略〜

WM_NOTIFYを受け取っているのでここでlp(LPARAM)の型はLPNMHDRですよね?
LPTOOLTIPTEXTのlptipにlpを入れるときに、
lptip = (LPTOOLTIPTEXT)lp;というように、
TOOLTIPTEXT構造体のポインタにキャストして代入することが可能らしいのですが、
何故、どのように代入されるのかがよくわかりません。

また、switch (lptip->hdr.idFrom)というようになっていますが、
ただ単にコントロールを調べるだけなので、WPARAMで指定した方が楽ではないかと思うのですが、
それでは何か問題が発生するのでしょうか?

よろしくお願いします。

282 名前:デフォルトの名無しさん :2005/07/09(土) 11:53:14
>>281
TOOLTIPTEXTの最初のメンバはNMHDRだからlParamはHMHDR *でも受け取れるようになっている。
けどcodeがTTN_NEEDTEXTのときにはTOOLTIPTEXT *を投げているのでTOOLTIPTEXT *として扱える。
ようするにC++の継承もどきみたいなことをしている。

283 名前:デフォルトの名無しさん :2005/07/09(土) 11:53:58
最初の質問に関しては、C言語の構造体とポインタの関係を勉強しろとしかいいようがない。
http://www.mm2d.net/c/c-14.shtml

http://yokohama.cool.ne.jp/chokuto/urawaza/message/WM_NOTIFY.html
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/common/messages/wm_notify.asp
ここを読めばわかるんだが、wParamはユニークじゃないので、idFormとcodeを使えと書いてある。



284 名前:281 :2005/07/09(土) 12:02:59
>>282-283
なるほど・・・。
理解できました。お二方ともありがとうございます。

C言語はポインタや構造体を含め、ほぼ理解したつまりなんですが、
WinApiに入ってくると、同じことをやってるにしてもなんとなくややこしてくて・・・。
これからも質問する機会があるかもしれませんので、そのときはよろしくお願いいたします。

285 名前:デフォルトの名無しさん :2005/07/09(土) 12:51:54
>>269
CreateProcessでCREATE_SUSPENDEDフラグを指定すればいいんじゃない?

286 名前:デフォルトの名無しさん :2005/07/09(土) 12:53:57
初カキコ&携帯から失礼します
IPv4とIPv6の判定ができるAPIってあるのでしょうか?
Linuxでいうinet_ptonだと思うのですが

287 名前:デフォルトの名無しさん :2005/07/09(土) 12:54:08
>>274
WS_EX_TRANSPARENTってのはどう?

288 名前:226 :2005/07/09(土) 13:09:03
あーあ、一日待ってもマトモな回答はなしか。
本当にスゴイ人はこんな所で初心者の面倒見て優越感に浸ってるヒマないもんな・・・
唯一マトモっぽい回答は240だけ・・・ま、自分でタスクリスト作るかな。マンドクセ


289 名前:デフォルトの名無しさん :2005/07/09(土) 13:21:46
まだいたのかグローバルファックw

290 名前:デフォルトの名無しさん :2005/07/09(土) 13:22:11
>>288
まともな質問をしないで、まともな回答を要求するのは
あまりにも自分勝手だと思うぞ。

291 名前:デフォルトの名無しさん :2005/07/09(土) 13:25:29
まだ一日経ってないしなw

292 名前:デフォルトの名無しさん :2005/07/09(土) 13:41:53
このスレのwikiをたった今作成しました。
ttp://wiki.livedoor.jp/program1/
もし、よろしければご活用ください。


293 名前:デフォルトの名無しさん :2005/07/09(土) 14:38:53
書籍やWeb上のサンプルを見ていつも不思議に思うのですが、
パスの最大長MAX_PATHはNULL分も含んでいるのですか?
サンプルにより
TCHAR szPath[MAX_PATH];
TCHAR szPath[MAX_PATH+1];
というのがあるんですけど。

294 名前:デフォルトの名無しさん :2005/07/09(土) 14:46:19
含んでない

295 名前:デフォルトの名無しさん :2005/07/09(土) 14:48:35
>>293
含んでいる。
当のMSもTCHAR szPath[MAX_PATH];を使っている。

俺自身としてもどこかでパスの最大は259文字と聞いた記憶がある。(MAX_PATHは260)

296 名前:デフォルトの名無しさん :2005/07/09(土) 14:54:21
MSがしてるからなど最も信用できないものだが・・・

297 名前:デフォルトの名無しさん :2005/07/09(土) 15:03:19
MSでもここなんかは
TCHAR szTempName[MAX_PATH + 1];
て書いてあるし・・・・
http://msdn.microsoft.com/library/en-us/http/http/http_server_sample_application.asp?frame=true

298 名前:デフォルトの名無しさん :2005/07/09(土) 15:12:15
>>226
WM_WINDOWPOSCHANGEDをフックするんじゃなくて
WH_CBTを使ってみては?


299 名前:デフォルトの名無しさん :2005/07/09(土) 15:20:59
>>292
乙。ぜひ活用しましょう。

300 名前:デフォルトの名無しさん :2005/07/09(土) 15:45:40
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp

301 名前:デフォルトの名無しさん :2005/07/09(土) 15:54:42
だからそれが信用ならんのだと・・・

302 名前:293 :2005/07/09(土) 16:04:14
>>300
おおっ。含むようですね。
>>301
とりあえずMAX_PATH+1にしておくことにします。

303 名前:デフォルトの名無しさん :2005/07/09(土) 16:05:06
>>302
そもそもMAX_PATHでは足りないという話も。

304 名前:デフォルトの名無しさん :2005/07/09(土) 16:24:02
>>303
それは「階層掘りすぎ」とか「だらだら日本語名付け過ぎ」とかの、また別の話だ

305 名前:デフォルトの名無しさん :2005/07/09(土) 16:26:29
そーいやUNIX系のOSでmsdosfsで深い階層作ってみた。
Win側に持っていったら途中からアクセスできなかったのはちと萎えた。

306 名前:デフォルトの名無しさん :2005/07/09(土) 16:28:42
ローカルエリア接続をオン、オフしたいんだけど、ローカルエリア接続に割り当てられた
アダプタ名を取得するにはどうすればいいんでしょうか?教えてください。

iphlpapi.hには無かったです。。

307 名前:デフォルトの名無しさん :2005/07/09(土) 16:30:36
>>304
> 掘りすぎ

ウホッ?

308 名前:デフォルトの名無しさん :2005/07/09(土) 16:34:04
304って本質的にバカなんだろうな。

309 名前:272 :2005/07/09(土) 17:23:05
>>280
>>287
助言ありがとうございました。
頑張ってみます。

310 名前:デフォルトの名無しさん :2005/07/09(土) 18:50:27
ユーザー補助のスクリーンキーボードのような、
自分のウィンドウをクリックしてもアクティブにしないようにするには、どうすればいいのでしょうか?
ご教授おねがいします。

311 名前:デフォルトの名無しさん :2005/07/09(土) 19:00:51
ツールボックス

312 名前:310 :2005/07/09(土) 19:56:26
Spy++見てたら自己解決しますた
WM_MOUSEACTIVATE で MA_NOACTIVE を返せばいいみたいです
スレ汚しすまそ

313 名前:デフォルトの名無しさん :2005/07/09(土) 20:29:58
>>305
全然違うシステムから直接触るなんざバカのすることじゃん

314 名前:デフォルトの名無しさん :2005/07/09(土) 20:36:16
>>313
理解できなかったのね。ゴメンネw

315 名前:デフォルトの名無しさん :2005/07/09(土) 20:39:13
>>313
FATファイルシステムの出来栄えの話なんだが、頭大丈夫か?

316 名前:デフォルトの名無しさん :2005/07/09(土) 20:44:32
\\?\をつけてたどればいけるだろ

317 名前:デフォルトの名無しさん :2005/07/09(土) 20:48:40
>>316
やってみたの?それとも理屈ちゃん?

318 名前:デフォルトの名無しさん :2005/07/09(土) 20:49:39
つ チラシの裏

319 名前:デフォルトの名無しさん :2005/07/09(土) 21:04:09
>>315
Windowsで使う限り問題無い

320 名前:310 :2005/07/09(土) 22:20:20
やっぱ無理でした orz
WM_MOUSEACTIVATE で MA_NOACTIVE を返すとそのウィンドウがアクティブにならないのはいいんですが、
前アクティブだったウィンドウが非アクティブになってしまいます。
これをアクティブなウィンドウを変えないようにするにはどうすればいいのでしょうか?

321 名前:デフォルトの名無しさん :2005/07/09(土) 22:22:51
>>317
どこまで深い階層を作ったのか知らんが、
50階層までなら辿れたぞ
それ以上は面倒だからやってないがな。

322 名前:デフォルトの名無しさん :2005/07/09(土) 22:30:03
>>320
>>311

323 名前:デフォルトの名無しさん :2005/07/09(土) 22:31:44
>>293 亀レスですよ
+1する必要はない英語版のMSDNがたぶん(w)正確

そもそも TCHAR なのに +1 ってバカすぎる
+sizeof(TCHAR) にしないと意味ない
TCHAR を分かってない奴大杉

324 名前:デフォルトの名無しさん :2005/07/09(土) 22:38:01
>>323
おまいさんが恥ずかしい奴だってことだけは分かった

325 名前:デフォルトの名無しさん :2005/07/09(土) 22:38:56
>>323
最後の3行すげーこっ恥ずかしいな

326 名前:デフォルトの名無しさん :2005/07/09(土) 22:41:56
>>323は釣りですよ

327 名前:デフォルトの名無しさん :2005/07/09(土) 22:49:26
>>323
ワロスwwwww

328 名前:デフォルトの名無しさん :2005/07/09(土) 22:50:49
そんなwww笑ってwwwやるなよwwwwww

329 名前:デフォルトの名無しさん :2005/07/09(土) 22:52:26
やっちまったな>>323

330 名前:デフォルトの名無しさん :2005/07/09(土) 22:58:31
バカがいると聞いて駆けつけて来ました

331 名前:デフォルトの名無しさん :2005/07/09(土) 23:33:11
        j
     /V\
    /◎:::.:..__ヽ
 _ ム::::(   .)::|  ∧∧
ヽツ.( ):::::::::.:::::::...|   (,,゚Д゚) ξ 釣り宣言まで待つとするか
  ヾソ:::::::::::::::::.:ノ   /  ⊃旦.
   ` ー ‐'"‐'   (__)

332 名前:デフォルトの名無しさん :2005/07/09(土) 23:34:15
これ以上はやめてあげてください!

333 名前:デフォルトの名無しさん :2005/07/09(土) 23:38:00
この板、ID付けてほしいよなあ

334 名前:デフォルトの名無しさん :2005/07/09(土) 23:44:57
>>333
そろそろム板もID付けないか?
http://pc8.2ch.net/test/read.cgi/tech/1105878545/l50

335 名前:デフォルトの名無しさん :2005/07/09(土) 23:47:55
IDつけてもなんも変わらん希ガス

336 名前:デフォルトの名無しさん :2005/07/09(土) 23:50:25
http://forums.belution.com/ja/vc/000/038/15s.shtml

337 名前:デフォルトの名無しさん :2005/07/10(日) 03:38:05
>>321
んー、もうちょっと!

338 名前:デフォルトの名無しさん :2005/07/10(日) 04:18:31
C:\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\
a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\
a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\
a\a\a\a\a\a のディレクトリ
2005/07/10  04:04       <DIR>          .
2005/07/10  04:04       <DIR>          ..
2005/07/10  04:10                   21 aaaaaaaa
2005/07/10  04:10                   21 aaaa.txt

FAT32ドライブでは↑まで作れたのでとりあえず報告。

339 名前:デフォルトの名無しさん :2005/07/10(日) 04:49:35
乙。
階層の制限ではなく、MAX_PATHの制限って感じだな。
ファイル名まで入れるとちょうと259文字になる。

340 名前:デフォルトの名無しさん :2005/07/10(日) 06:44:36
IsDBCSLeadByteはマルチバイト文字の1バイト目しかチェックできないのでしょうか?
マルチバイト文字でも2バイト目は普通の1バイト文字が使われている場合がありますから。

341 名前:デフォルトの名無しさん :2005/07/10(日) 08:11:14
>>340
そうです。あくまで渡されたバイトのみで判定します。

342 名前:デフォルトの名無しさん :2005/07/10(日) 15:31:52
>>338
途中のフォルダ名を変えると、260文字を越えられるよ。

343 名前:デフォルトの名無しさん :2005/07/10(日) 16:38:03
CreateProcessで起動したアプリの起動完了を待つにはどうしたら良いですか?

344 名前:デフォルトの名無しさん :2005/07/10(日) 16:38:17
結局何文字までかというのは、誰も知らないのか。

345 名前:デフォルトの名無しさん :2005/07/10(日) 17:00:59
>>343
起動完了の定義にもよるが、WaitForInputIdle

346 名前:343 :2005/07/10(日) 17:06:13
>>345
ありがとう。できました。

347 名前:デフォルトの名無しさん :2005/07/10(日) 17:11:00
>>342
というわけで、c:\a を 出来るだけ長い名前に変えてみたところ 「c:\a^242」
というディレクトリ名に変更できた。その結果

C:\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaa\a\a\a\a\a\a のディレクトリ
2005/07/10  16:41       <DIR>          a

まで辿れるも、それ以上は ディレクトリがあるにも関わらずコマンドが受け付けなかった。
エクスプローラでも「フォルダ名が長すぎます」との事でアクセスできなかった。

なお、ディレクトリの削除も出来ず。(Win2000 / FAT32)

348 名前:デフォルトの名無しさん :2005/07/10(日) 17:15:04
>>344
知るわけ無い。

349 名前:デフォルトの名無しさん :2005/07/10(日) 17:22:09
>>344
NT系では最大約32000文字らしい

350 名前:デフォルトの名無しさん :2005/07/10(日) 17:32:35
他のウインドウの下に隠れてしまっているウインドウを前面に出すメッセージって何?

351 名前:デフォルトの名無しさん :2005/07/10(日) 17:38:54
BringWindowToTop

352 名前:デフォルトの名無しさん :2005/07/10(日) 20:50:10
今更FAT32なぞ使ってる人間居るのか・・・

353 名前:デフォルトの名無しさん :2005/07/10(日) 21:13:01
だめだめな人置いておきますね
http://damedame.monyo.com/ml/archive/200/220.html

354 名前:デフォルトの名無しさん :2005/07/10(日) 21:43:23
FAT32だったおかげで、FDから起動して貴重なデータをサルベージ出来たことがあったな

355 名前:デフォルトの名無しさん :2005/07/10(日) 21:53:49
>>354
いつの時代の人ですか?
NTFSでもHDD外して他のパソコンにつなげば普通に読めますよ

356 名前:デフォルトの名無しさん :2005/07/10(日) 21:55:18
スレ違いかもしれないんだけど
スタートップに登録したアプリケーションはOS終了時にも自動で終了しますか?


357 名前:デフォルトの名無しさん :2005/07/10(日) 21:59:52
>>356
そりゃそうだろ。
一応スタートアップにあるかどうかに関係なく、OS終了時に起動しているアプリケーションへはそれを通知するメッセージが来る。

358 名前:!354 :2005/07/10(日) 22:02:37
>>355
いちいち外すのめんどい。
PC2台も持ってない。
外付けケースも持ってない。

359 名前:デフォルトの名無しさん :2005/07/10(日) 22:12:43
もはやFDDがついてない

360 名前:デフォルトの名無しさん :2005/07/10(日) 22:18:35
FATは必ず壊れて起動しなくなるが、NTFSは絶対壊れない。
だからNTFSでサルベージなんてやる必用ない。

361 名前:デフォルトの名無しさん :2005/07/10(日) 22:41:22
絶対なんてありえない

362 名前:デフォルトの名無しさん :2005/07/10(日) 22:45:03
いんや絶対に壊れない
論理的にはな
物理的な問題はシステムなぞ関係無いから除外

363 名前:デフォルトの名無しさん :2005/07/10(日) 22:59:12
VC++6.0付属の

364 名前:デフォルトの名無しさん :2005/07/10(日) 22:59:48
やっぱいいです

365 名前:デフォルトの名無しさん :2005/07/10(日) 23:01:10
>>363-364
わろす

366 名前:デフォルトの名無しさん :2005/07/10(日) 23:02:39
例えば128GB対策をしないと、いくらでも論理的にファイルが破壊されるが
360様の「絶対」には含まれないんだろうな

367 名前:デフォルトの名無しさん :2005/07/10(日) 23:08:13
FATだって想定外の自体にならない限りは絶対壊れない
想定外の自体になれば何だろうが壊れる

368 名前:デフォルトの名無しさん :2005/07/10(日) 23:11:46
自体→事態

369 名前:デフォルトの名無しさん :2005/07/10(日) 23:23:04
いんや想定外の事態になっても豚利敵には絶対に壊れない

370 名前:デフォルトの名無しさん :2005/07/10(日) 23:23:37
お前らFATvsNTFSスレで氏ぬまでやってろ

371 名前:デフォルトの名無しさん :2005/07/10(日) 23:23:41
( ´_ゝ`)へー

372 名前:デフォルトの名無しさん :2005/07/10(日) 23:25:11
(´・ω・)カワイソス

373 名前:デフォルトの名無しさん :2005/07/10(日) 23:33:11
NTFSでフォーマットすると壊れるんだよな。俺のUSBメモリ・・・
miniSDもNTFSのフォーマットだと壊れるし。

リムーバルメディアにNTFSでフォーマットして正常に使えたのがない。


つーか基地外が出るたびにIDが欲しいと思う。

374 名前:デフォルトの名無しさん :2005/07/10(日) 23:39:11
>>355
メイン: Windows2000
サブ/検証用: Windows98
鯖: FreeBSD

そんなわけで読めません(´ω`)

375 名前:デフォルトの名無しさん :2005/07/11(月) 00:27:44
>>374
ヒント : NTFSforWin98

376 名前:デフォルトの名無しさん :2005/07/11(月) 00:47:31
普通のパソコン(´ω`)

377 名前:デフォルトの名無しさん :2005/07/11(月) 00:54:52
>>375
Win98でNTFS読んでいたら結局ファイル壊しそう

378 名前:デフォルトの名無しさん :2005/07/11(月) 01:59:21
ふっ

379 名前:226 :2005/07/11(月) 10:02:32
>>298
助言ありがとうございます。
WH_CBT使ってみました。
FindWindowではちゃんと補足できるので、#32771で検索したHWNDと
WH_CBTフックで得たHWNDを比較して表示してみました。
が、やっぱりメッセージは来ず・・・謎杉です。
その他にもWH_SHELL、WH_MSGFILTER、WH_SYSMSGFILTERも試してみました。
#32771の正体は一体。

380 名前:デフォルトの名無しさん :2005/07/11(月) 14:06:47
ボスケテください・・。

メインウィンドウ1つとメインウィンドウの子ダイアログ1つという構成で作っているのですが
ダイアログ内のボタンが押された場合にメッセージボックスを表示するという処理をいれたところ
メッセージボックスが数回表示されてしまい困っています。
ちなみにメッセージボックス関数をprintfにしたところ1回のみのコールになっています。

呼び出し履歴を追ったところ
直接的な原因としては
WM_COMMAND内において
MessageBoxコール時に
MessageBoxA内にてさらにメッセージ処理をしているらしく(SendMessage?)
ダイアログのプロシージャが再度呼び出されて同じメッセージをうけとっており
再度MessageBoxがコールされているという状態でした。

これはどうやったら回避できるのでしょうか?






381 名前:デフォルトの名無しさん :2005/07/11(月) 14:25:32
>>380
spy使って、何が起こってるのか調べた方がよさげ

あとは、ソースを貼りつけでもしないと分からない

382 名前:デフォルトの名無しさん :2005/07/11(月) 14:30:31
WM_COMMAND/BN_KILLFOCUSとかでも処理しちゃってるからじゃねーのか?

383 名前:デフォルトの名無しさん :2005/07/11(月) 15:04:09
BN_KILLFOCUSの処理はしてないですね〜
上の説明では便宜上ボタンとかいたのですが、
コンボボックスとかでも同じですねー
CBN_SELCHANGEしたときにメッセージボックス表示ってやっても同様の結果に・・

さっきspyつかったらWindowsが固まった・・・orz

384 名前:デフォルトの名無しさん :2005/07/11(月) 15:16:16
自己解決・・・
あまりにアフォなミスに泣けてくる・・
アドバイスくれた人ありがつ

385 名前:デフォルトの名無しさん :2005/07/11(月) 15:23:22
>>384
WM_COMMANDの上にWM_PAINTとかを書いてて、
breakかreturnしてなかったとかの類かな・・・?

386 名前:デフォルトの名無しさん :2005/07/11(月) 15:26:14
if ( hiword_wParam == CBN_SELCHANGE ) {
}
なつもりが

if ( hiword_wParam = CBN_SELCHANGE ) {
}

こんなミスはじめてだお・・・

387 名前:デフォルトの名無しさん :2005/07/11(月) 15:29:45
よくあるミスだな。

388 名前:デフォルトの名無しさん :2005/07/11(月) 15:30:32
代入だと
if ( (hoge = 1) ) {
}
ってかかないとwarrning出すようにしてたはずなんだけどな・・
何も出てなかったから見事にヌルー


389 名前:デフォルトの名無しさん :2005/07/11(月) 15:36:08
>>388
> warrning

天性のうっかりさん

390 名前:デフォルトの名無しさん :2005/07/11(月) 16:28:32
助けてください
Win2kでadmin以外でSetProcessWorkingSetSizeを実行しようとしています

OpenProcess(PROCESS_SET_QUOTA,FALSE,GetCurrentProcessId());
SetProcessWorkingSetSize(GetCurrentProcess(),0x1000000,0x1000000);

とするとSetProcessWorkingSetSizeでエラーが返ってきてしまいます。
どうすればいいんでしょうか


391 名前:デフォルトの名無しさん :2005/07/11(月) 17:31:23
あれ?OpenProcessで貰ったハンドルは捨ててるの?

392 名前:デフォルトの名無しさん :2005/07/11(月) 18:01:55
始めまして。
特にこれがわからない、ということではないのですが質問をさせてください。

WinApiには数え切れないほどの関数や構造体がありますが、これらはどのぐらい覚えればよいのでしょう?
特に構造体には、1つの中に10以上ものメンバがあったりします。
私はそんな構造体1つを覚えるだけでも精一杯です。
やはり上級者やプロの方はこれらをかなりの数覚えているのでしょうか?

393 名前:デフォルトの名無しさん :2005/07/11(月) 18:04:50
学校の宿題じゃないんだから覚える必要なんてないじゃない
その都度引くようにしていれば、使用頻度の高いものは自然と覚えるだろ。

394 名前:デフォルトの名無しさん :2005/07/11(月) 18:08:26
名前付けの規則を探し出して、類型化しておく。「こんなことしたいな」が
「APIにあったらこういう名前だろうな」と出るようにしておけばいい。

395 名前:デフォルトの名無しさん :2005/07/11(月) 18:13:56
そんなの覚えなくていいよ。
俺はいまだにCreateWindowの引数すら覚えてない。

俺は新しいことをするときは、いつも翔泳社のAPIバイブルを見てる。
各章の最初にあるAPI一覧が便利。

以前やったことがあることならば、自分の過去のソースからコピペ。

396 名前:デフォルトの名無しさん :2005/07/11(月) 18:31:19
APIだののあれこれを覚えてるヤツなんて、
居ないとは言わんがそんなに居ないだろう

397 名前:デフォルトの名無しさん :2005/07/11(月) 18:53:36
>>393-396
貴重な意見、ありがとうございます。
やっぱりあんなの覚え切れませんよね(^^;)
おかげで気が楽になりました。

最近はコントロールのAPIをいじってたんですが、
タブコントロールとかプロパティシートとかステータスバーとかツールバー、
こんなのは構造体ばかりで覚えれないと半分やけになっていました。

となると問題はマイクロソフトのヘルプの解りにくさですかねw
本が欲しいところですが、何故かプログラミング関係の本は値段が・・・。
自分で頑張ってまとめてみようかな。
皆さん、本当にありがとうございました。

398 名前:デフォルトの名無しさん :2005/07/11(月) 19:18:58
SoftEtherの作者はAPIほとんど覚えとるらしいがな

399 名前:デフォルトの名無しさん :2005/07/11(月) 19:19:39
分かりにくいのではなくて、必要最低限の情報しか書いてないだけ。

400 名前:デフォルトの名無しさん :2005/07/11(月) 19:30:50
>>398
誰も居ないとは言ってないじゃろうに

401 名前:デフォルトの名無しさん :2005/07/11(月) 20:33:27
今、簡単なゲーム(シンプルなタイピング)作ってます。
それがだいたいできてきたので、タイトル画面もつけようと思ってます。
そのとき、ちょっと思ったことがあったので質問させてください。

例えばRPGでいえば、タイトル画面・フィールド・戦闘シーン・メニュー画面などでは
プロシージャの動作が全く違いますよね?
この場合、プロシージャ内の動作はどうすればよいでしょう?
私が考えたのは次のものです。
modeというint型の変数があったとして、それを現在の状況ごとに変化させるとします。

(案1)
if(mode==0)のときは1つ目のswitch文でmsgを処理。
if(mode==1)のときは2つ目のswitch文でmsgを処理。
どの場面でも処理が同じメッセージだけは、if文の外に書きます。

(案2)
必要な場合にそれぞれのメッセージごとに、
if(mode==0)、if(mode==1)などを使って分ける。

(案3)
プロシージャを2つ(以上)つくり、modeによってプロシージャを変える。

まだWinApi始めて間もないので、大規模なプログラムを組んだことがありません。
大規模なプログラムを組む場合はどうするべきか、お教えください。
申し訳ありませんが、よろしくお願いいたします。

402 名前:デフォルトの名無しさん :2005/07/11(月) 20:43:03
案1が一般的だと思う。っていうか同じように動くならどれでもいい。

っていうか用語は正しく使え。
ウィンドウプロシージャ。

403 名前:デフォルトの名無しさん :2005/07/11(月) 20:43:46
一つのプロシージャにまとめる必要など米粒ほども無いわけだが

404 名前:デフォルトの名無しさん :2005/07/11(月) 20:44:34
>>402
プロシージャと付くのはウィンドウプロシージャだけではない

405 名前:デフォルトの名無しさん :2005/07/11(月) 20:44:37
画面が変わっても基本的にプロシージャーの動作はあまり変わらないと思うが・・・。
俺だったらフィールドや戦闘シーンはできるだけそれ専用のスレッドに任せてプロシージャーの相違点は2の方法で振り分ける。

406 名前:226 :2005/07/11(月) 20:47:48
APIfuckについては、ここでは聞いたらいけんのかのぅ・・・(´・ω・`)

407 名前:デフォルトの名無しさん :2005/07/11(月) 20:48:51
APIファック?

408 名前:デフォルトの名無しさん :2005/07/11(月) 20:49:30
>>406
あれだけ煽られたのに何故直さない。呆れる。

409 名前:デフォルトの名無しさん :2005/07/11(月) 20:52:13
ネタだからさ。

410 名前:407 :2005/07/11(月) 20:54:21
>>226-で既出かorz

411 名前:デフォルトの名無しさん :2005/07/11(月) 20:57:53
落ち込むな。誰だって突っ込む。

412 名前:デフォルトの名無しさん :2005/07/11(月) 20:59:07
間違いを指摘されても逆に煽って逃げるヤツに誰が答えるのか・・・

413 名前:デフォルトの名無しさん :2005/07/11(月) 21:02:35
案3つーか、オブジェクト指向でMVC or Doc-Viewに分離だろ普通。

414 名前:デフォルトの名無しさん :2005/07/11(月) 21:11:17
>>404
401はウィンドウプロシージャの意味で使っている。

>>405,>>413
初心者に多くを求めすぎ。まずはウィンドウプロシージャベースのゲームでえぇやん。

415 名前:デフォルトの名無しさん :2005/07/11(月) 21:51:12
フックの正しい綴りを書くまでは誰も答えないだろうな。
もっとも、正しく書いたところで誰かが答える保証もないがwww

416 名前:デフォルトの名無しさん :2005/07/11(月) 21:52:00
>>226
わたしも「常に最前面」というのをやりたいんですが、
昔、フックでやろうとして挫折したため、
現状では、タイマーで一定時間ごとに監視するという形を取っています。

とりあえず、>>226 さんは TasklistWindow 以外ではできたんでしょうか?
もしそうだとしたら、やり方を教えていただけると嬉しいです。

417 名前:226 :2005/07/11(月) 22:12:41
>>416
完璧ではないですが、とりあえず、
WM_WINDOWPOSCHANGEDをWH_CALLWNDPROCで引っ掛けて、
そこで
SetWindowPos(hWndTarget,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
すれば、”書き換えの早いアプリであれば”きにならない程度にはなる様です。

POPUPウインドウ(メニュー含む)は、上記をWM_CREATEのタイミングでやるとキレイに消えます。
システムポップアップメニュー(タスクバーで右クリック)、スタートメニュー時のタスクバーのシャシャリ出
に関しては、更なるキレイに消えるタイミングを調査中。。。

SetWindowPosは思ったより軽いので、結構呼び出しても平気かと(ただし自ウインドウへのループに注意!)

416殿、よければ”キレイに消えるタイミング”の調査協力してください(;;)
#32771に関しては、自分でその部分を作った方が早い気がします。

APIフックででもやってみたいんですけどね〜。
なんかややこしそう&時間無いっつー状況です。


418 名前:デフォルトの名無しさん :2005/07/11(月) 22:12:47
できてないから聞きにきてんじゃろ

419 名前:デフォルトの名無しさん :2005/07/11(月) 22:26:15
>>401
おれも同じようなコード書いたことあるけど、そのときはモード4つに対して
ウィンドウプロシージャは5つつくったね。案3?
基本のウィンドウプロシージャーが残りの4つを呼び出すような形で。

LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam){
switch(mode){
 case 1:
  return Proc1(hwnd,iMsg,wParam,lParam);
 case 2:
  return Proc2(hwnd,iMsg,wParam,lParam);
 case 3:
  return Proc3(hwnd,iMsg,wParam,lParam);
 case r:
  return Proc4(hwnd,iMsg,wParam,lParam);
}


420 名前:デフォルトの名無しさん :2005/07/11(月) 22:35:27
modeを保持する変数を関数ポインタにしとけばswitchが省けるわけだ。

421 名前:298 :2005/07/11(月) 22:39:39
>>417
タスク切り替えのウィンドウを出したくないだけなら
キーフックで[ALT]+[TAB]を捕まえてしまうのはどう?

確信のない案ばっかですまんが・・・



422 名前:416 :2005/07/12(火) 00:29:41
>>417
ありがとうございます。
早速取り入れてみましたが、かなりいい感じですね。

とりあえず、SetWindowPos 関数に、SWP_NOSENDCHANGING を加えたり、
WM_WINDOWPOSCHANGED をフックする部分で、
if(((((WINDOWPOS *)pcwp->lParam)->flags & SWP_NOZORDER) != SWP_NOZORDER) && (((WINDOWPOS *)pcwp->lParam)->hwndInsertAfter == HWND_TOP || ((WINDOWPOS *)pcwp->lParam)->hwndInsertAfter == HWND_TOPMOST))
    SetWindowPos(hwndTarget, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSENDCHANGING);
などと書くと良さそうです。

それでは、引き続き検証してみますね。

423 名前:デフォルトの名無しさん :2005/07/12(火) 01:31:24
こんばんわ

オープンダイアログがありますけども、
通常はファイルを選択してダイアログを閉じますけど、
フォルダだけを選ぶということはできるのでしょうか?

424 名前:デフォルトの名無しさん :2005/07/12(火) 01:35:51
つ SHBrowseForFolder

425 名前:401 :2005/07/12(火) 08:03:19
こんなに多くの方に答えていただけるとは思いませんでした。
ありがとうございます。

私はスレッドやオブジェクト指向についての知識はほとんどないので、
419さんのようなやり方を使わせていただきます。

ほんとうにありがとうございました。

426 名前:226 :2005/07/12(火) 09:29:53
>>417
用途を説明してませんでした。Viewが特殊なWindowsにしたいんですよ。
たとえばデスクトップをレンズ状にして表示したりとか。
で、今のところ一番現実的な方法が、TOPMOST+のタイルウインドウにレイヤード+透過
属性つけて、デスクトップからBltかな、と。

>>422
おおお、ありがとうございます。早速やってみます!
ちなみに、昨日書いてた
>POPUPウインドウ(メニュー含む)は、上記をWM_CREATEのタイミングでやるとキレイに消えます。
は勘違いだったようです、スイマセン。VCのメニューはなぜかコレでキレイに消えますね。

・・・それにしてもHookデバッグ歯肉杉 orz


427 名前:デフォルトの名無しさん :2005/07/12(火) 09:43:21
たかが最前面やるのに何故 fuck だの hook だの timer だの持ち出してくるのか。
WM_ACTIVATEAPP の wParam が FALSE の時に

SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);

でいいだろうに


428 名前:デフォルトの名無しさん :2005/07/12(火) 09:46:36
WM_ACTIVATEAPP だけじゃなく、WM_ACTIVATE も処理しないといけないか。

429 名前:226 :2005/07/12(火) 10:13:57
>>427
不思議とその方法ではうまくいかないんですよ。
あと、最前面ウインドウが常に最前面にいるからといってアクティブになってるわけじゃあありません。

430 名前:226 :2005/07/12(火) 10:19:31
(゚ν゚)ニホンゴムズカスィネー

×最前面ウインドウが常に最前面にいるからといってアクティブになってるわけじゃあありません。
○最前面ウインドウは常にアクティブになってるわけでなく、他のウインドウにフォーカスがある時は
 最前面に表示されていても非アクティブ。その状態で他のウインドウがTOPMOSTで表示された時はメッセージの
 通知無しで上書きされます。


431 名前:デフォルトの名無しさん :2005/07/12(火) 10:40:19
みんなヘッダファイルはどのぐらい作ってるの?
俺は昔は1つのソースファイルに1つのヘッダファイル作ってたけど、
最近はめんどくさいからいくつソースファイルがあってもヘッダファイルは1つにしてる。
これってあんまり良くないのかな?

432 名前:デフォルトの名無しさん :2005/07/12(火) 10:46:41
「Win32APIのついての質問」

433 名前:デフォルトの名無しさん :2005/07/12(火) 11:01:28
WMIでProxyの値を取得するにはどのクラスをみたらいいのでしょうか?
ネットワーク関連一通りみたけどわからないっす・・

434 名前:デフォルトの名無しさん :2005/07/12(火) 11:03:26
>>432
あ、ゴメン。よく考えたら微妙にスレ違いか。
このスレの人がやけに親切に質問に答えてるから、
このまま俺の質問にも快く答えてくれそうな気がしたから・・・。
できればこのまま勢いで答えて欲しい。

435 名前:デフォルトの名無しさん :2005/07/12(火) 11:04:39
>>434
無理

436 名前:デフォルトの名無しさん :2005/07/12(火) 11:14:25
こんにちは

ListCtrlにおいて、選択された項目の色を変更するにはどうすればいいのでしょうか?

437 名前:デフォルトの名無しさん :2005/07/12(火) 11:29:10
>>431
ヘッダを使う側が不満を持たないなら良いだろう

438 名前:デフォルトの名無しさん :2005/07/12(火) 12:14:11
CreateWindow関数のウィンドウスタイルの
WM_CHILDとはどのような指定でしょうか?
MSDN等で調べたのですが、初歩的すぎるせいか
スタイル:WM_CHILD=意味:WM_CHILD
と書かれていてさっぱりです><
教えて頂けると助かります 宜しくお願いします

439 名前:192 :2005/07/12(火) 12:20:33
>>438
とりあえずWindows Overviewsとこ熟読しとけ。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/aboutwindows.asp


440 名前:デフォルトの名無しさん :2005/07/12(火) 12:24:50
>>438
CHILD指定

441 名前:デフォルトの名無しさん :2005/07/12(火) 12:30:27
>>436
カスタムドロー

442 名前:192 :2005/07/12(火) 13:39:55
カスタードどろ〜

443 名前:デフォルトの名無しさん :2005/07/12(火) 13:46:07
>>431
俺はヘッダファイルを複数使ってる。
なんか1つだけヘッダファイルを使うと必要のないものまで
読み込まれることがあるからコンパイルや動作の速度に影響あると思ってたけど違うんかな?
俺、独学でやってるから詳しいことわからん。

444 名前:デフォルトの名無しさん :2005/07/12(火) 14:34:04
>>438
質問するときに絵文字いれんな馬鹿

445 名前:デフォルトの名無しさん :2005/07/12(火) 14:38:11
しいましぇーん
ぐすん

446 名前:デフォルトの名無しさん :2005/07/12(火) 14:38:26
きっと比較演算子

447 名前:デフォルトの名無しさん :2005/07/12(火) 15:03:17
テンプレートの出来損ないかも

448 名前:デフォルトの名無しさん :2005/07/12(火) 16:49:10
OSのシリアルナンバーを取得する関数はありますか?

449 名前:デフォルトの名無しさん :2005/07/12(火) 16:54:07
OpenProcessとかReadProcessMemoryを行われた際に
された側のプロセスでそれを検知する事は可能でしょうか?

450 名前:デフォルトの名無しさん :2005/07/12(火) 17:29:23
APIをフックして監視。

451 名前:デフォルトの名無しさん :2005/07/12(火) 17:52:21
APIをフック・・・なんだかとても難しそうですね。
頑張って調べてみます。

ありがとうございました!

452 名前:デフォルトの名無しさん :2005/07/12(火) 18:31:40
>>444
絵文字がどこに有るというのかこのバカは

453 名前:デフォルトの名無しさん :2005/07/12(火) 18:40:27
>>452
顔文字だよゴミ

454 名前:デフォルトの名無しさん :2005/07/12(火) 18:44:15
>>453
>>444には絵文字と書いてあるが?

455 名前:デフォルトの名無しさん :2005/07/12(火) 18:48:41
うまく動きませんorz
どうか教えてください

456 名前:デフォルトの名無しさん :2005/07/12(火) 18:51:03
>>455
回線切って首吊るといいよ。

457 名前:デフォルトの名無しさん :2005/07/12(火) 19:03:45
>>455
質問すんのに orz とかやめろ

458 名前:デフォルトの名無しさん :2005/07/12(火) 20:14:15
>>451
とりあえず定型句置いておきますね

っ[ AdvancedWindows嫁 ]

459 名前:226 :2005/07/12(火) 20:16:00
APIfuckできました!

460 名前:デフォルトの名無しさん :2005/07/12(火) 20:17:03
あっそう、よかったね

461 名前:デフォルトの名無しさん :2005/07/12(火) 21:04:50
>>459
詳細きぼん

462 名前:デフォルトの名無しさん :2005/07/12(火) 21:07:10
InitCommonControlSex?

463 名前:デフォルトの名無しさん :2005/07/12(火) 22:49:29
WindowsのAPIのほとんどが
リターン値BOOL、しかもBOOLなのに「成功時は0以外が返ります」とか
引数が馬鹿みたいに多い、しかも「一つ目の引数がこれこれの場合2番目の引数は無視されます」とか
なのはなぜ?

464 名前:デフォルトの名無しさん :2005/07/12(火) 23:00:41
気に入らんかったらMFCみたいにapiを呼ぶ関数でも作っとけ

465 名前:デフォルトの名無しさん :2005/07/12(火) 23:11:43
一番あれなのはGetMessageの戻り値BOOLで3ステートなとこだけどな。
あと、BOOLは昔から扱いも1ビットの変数じゃなかったから FALSE or !FALSE てのは常識では。


466 名前:デフォルトの名無しさん :2005/07/12(火) 23:13:21
引数の多さには慣れたから、逆にWrite/ReadFileの引数が大して多くないのが気になる。

467 名前:デフォルトの名無しさん :2005/07/12(火) 23:30:47
引数多すぎて覚えられんよ

468 名前:デフォルトの名無しさん :2005/07/12(火) 23:34:02
Win32APIの中でいちばん引数が多いのはCreateFont?

469 名前:デフォルトの名無しさん :2005/07/12(火) 23:47:10
CreateFontは引数多いが大部分は0でいい

470 名前:デフォルトの名無しさん :2005/07/13(水) 01:40:53
>>466
そうじゃなくて直接GetLastErrorのリターン値返してくれたら手間はぶけるのになと。

471 名前:デフォルトの名無しさん :2005/07/13(水) 01:44:46
>>470
詳細なエラー情報を取得できなかったWin16との互換性のために
そうなっちゃったんだろうな。
ネイティブAPIのレベルではNTSTATUSを直接返してくれるし

472 名前:デフォルトの名無しさん :2005/07/13(水) 01:54:14
ReadFile()/WriteFile()は
そもそもWin16では存在しないAPIなんだから互換性なんて要らないのでは?

473 名前:デフォルトの名無しさん :2005/07/13(水) 01:54:16
CRTはCRTでerrnoとか使うし。

474 名前:デフォルトの名無しさん :2005/07/13(水) 02:34:55
JavaはJavaでぬるぽとか使うし。

475 名前:デフォルトの名無しさん :2005/07/13(水) 06:49:05
>>474
ガッ

476 名前:デフォルトの名無しさん :2005/07/13(水) 06:56:35
変に内部で状態を持たれるよりは、引数が多い方がいいな。
でも、最近できたAPIはみんなパラメータを構造体で渡すから
引数少ないね。

477 名前:デフォルトの名無しさん :2005/07/13(水) 07:34:57
>>470
レジストリ関係はそんなんだったな。

478 名前:デフォルトの名無しさん :2005/07/13(水) 08:09:24
>>463
BOOL型はBooleanではない

479 名前:デフォルトの名無しさん :2005/07/13(水) 09:54:21
今、簡単なテキストエディタつくってるんだが、
指定行に移動、ってどうやるんだろう?
ずっと試行錯誤してるがよくわからない。
レベルが低い質問で悪いが、よろしく頼む。

480 名前:デフォルトの名無しさん :2005/07/13(水) 09:56:39
「Win32APIのついての質問」

481 名前:デフォルトの名無しさん :2005/07/13(水) 10:02:53
>>479
GetWindowText して '\n' カウントして EM_SETSEL するしかなかった気がする…

482 名前:デフォルトの名無しさん :2005/07/13(水) 10:04:20
>>480
いや、479はWinApiでテキストエディタ作ってるんじゃないのか?
あんまりそのワード連呼すると人が寄らなくなるんじゃね?
ちなみに俺は分からん。

483 名前:479 :2005/07/13(水) 10:08:14
>>481
ま、まじで?
重くなったりしないかなぁ・・・。
とりあえずやってみるよ。ありがとう。

484 名前:デフォルトの名無しさん :2005/07/13(水) 10:18:03
EM_LINEINDEXとかあるじゃん

485 名前:デフォルトの名無しさん :2005/07/13(水) 10:22:57
EM_LINELENGTH
EM_SETSEL

オマエらもうちょっとメッセージ勉強しる

486 名前:デフォルトの名無しさん :2005/07/13(水) 12:59:54
このスレはエディットコントロールでエディタ作る阿呆の集まりだったのか。

487 名前:デフォルトの名無しさん :2005/07/13(水) 13:12:42
分不相応に背伸びする奴よりはマシ

488 名前:デフォルトの名無しさん :2005/07/13(水) 13:46:01
>>486
つ ノートパッド

489 名前:デフォルトの名無しさん :2005/07/13(水) 14:06:29
EnableWindowで入力を無効にしたウィンドウをユーザーがクリックした場合
そのウィンドウにはWM_LBUTTONDOWNとかは送られてこないんですか?

490 名前:デフォルトの名無しさん :2005/07/13(水) 14:20:03
やってみりゃわかるだろ

491 名前:デフォルトの名無しさん :2005/07/13(水) 14:20:18
送られてこないが、外部アプリからメッセージを送ることもできなくないので、
フラグを立てておいたほうが安全。

492 名前:489 :2005/07/13(水) 14:48:11
ありがとうございました


493 名前:416 :2005/07/13(水) 15:34:23
>>459
詳細きぼん

494 名前:デフォルトの名無しさん :2005/07/13(水) 20:36:09
マウスクリックで線を選択するにはどうしたらよいのでしょうか?
HDCにLineTo()で描画してるだけなんですが、
始点-終点の座標から求められるのか?
もしくはレイヤーみたいな機能があって自動で判別してくれるとうれしいのですが。


495 名前:デフォルトの名無しさん :2005/07/13(水) 20:57:47
>>494
一時方程式

496 名前:デフォルトの名無しさん :2005/07/13(水) 21:16:41
富豪的な方法だと、メタファイルに描画してリージョンに変換してPtInRegionとか。

497 名前:494 :2005/07/13(水) 21:24:04
すみません、自己解決しました。
LineDDA()というAPIがありました。


498 名前:デフォルトの名無しさん :2005/07/13(水) 21:29:43
偉い

499 名前:226 :2005/07/13(水) 21:54:57
>>493
すみませんネタでした。所詮便所の落書きw
やりたいけど時間ないです。

えー、申し訳ないので、APIfuckで参考にする予定のサイトのURLでも。
ttp://www.tokyodownstairs.com/cgi-bin/article.pl?select=tips&toparticle=03102530.nws
日本語且つソースもある様でかなり( ゚Д゚)ウマーです。まだ見てないけど。

500 名前:デフォルトの名無しさん :2005/07/13(水) 22:10:12
>>499
お前もう質問するなよ。
回答する側としてはチラシの裏的な書き方でもいいけどさ
質問するからには最低限のマナーがあるだろ。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.