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


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

Win32API質問箱 Build74



1 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 16:30:27 ]
スレ立てるまでもない、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質問箱 Build73
pc11.2ch.net/test/read.cgi/tech/1227934931/

610 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:22:15 ]
>>609
いいやお前だろ

611 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:26:53 ]
>>610
お前ってことにしとこうぜ

612 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:38:08 ]
>>611
やっぱりお前の方がおかしいな

613 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 07:46:14 ]
>>608-612
誰だよ?

614 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:28:53 ]
>>607はLoadStringの話をしてるのに、突然ソースの長さの話をした>>608
おかしいのを指摘されたら逆ギレしただけでしょ

615 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:30:40 ]
まあ全部俺の自演なんだけどね

616 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:37:28 ]
>>615=>>608
ん?悔しかったの?w

617 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:45:00 ]
すんげー悔しいw

これでいい?

618 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 08:49:53 ]
だめ。



619 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:04:08 ]
>>607
多分無い
MFC/ATLでもFindResource使って自前でロードしてる

620 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:06:34 ]
多分じゃだめだ

621 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:12:03 ]
リソースの“リ”って文章中に書くと文脈でひらがなの“り”になりやすいなw

622 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:24:26 ]
絶対無いよ
ソースは俺

623 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:00:59 ]
LoadString(hinst,id,NULL,0) でバッファ長を返せばいいのに、失敗するだけなんだよな
GetPrivateProfile〜も同様に失敗するだけ

設計悪いなー

624 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:14:38 ]
このお馬鹿なLoadStringは他言語対応ソフト作ってると困るよな

例えば"設定"なんて日本語だとnull含めてUnicodeで3文字で十分だけど
英語だと"Preferences"だから12文字必要になってくる(4倍)

逆のパターンも結構あって、ANSIだと日本語の方が長くなりやすいから
海外のソフトで日本語が途中で切れてるのもよく見かける

625 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:22:47 ]
俺は面倒くさかったから、切捨てられず読み込めるまでバッファ拡張・LoadStringを繰り返す方法で妥協した記憶がある。

626 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:24:23 ]
LoadStringExを使えば解決。
、、、え?まだ無いの?

627 名前:607 mailto:sage [2009/01/02(金) 12:03:33 ]
回答ありがとうございます
確実に格納しきれる一時的なバッファを使う方向でいってみます

628 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 12:15:59 ]
>>626
自分で作ればいいじゃん
StringTableリソースの構造はこんな感じ

struct StringEntry {
 WORD size;
 WCHAR buffer[size]; // 注: nullターミネートではない
};
struct StringTable {
 StringEntry entry[16];
};

(StringTableのリソースID) = (LoadStringに渡すID) ÷ 16 + 1
で求めたリソースIDをFindResource(RT_STRING)で読めばおk



629 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 12:39:43 ]
int LoadStringEx( UINT nID, LPTSTR& lpsz)
{


630 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 13:25:45 ]
 return ::LoadString(GetModuleHandle(0), nID, lpsz, INT_MAX);
}

631 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 13:33:04 ]
>>629
HINSTANCEがねーよ
C++のくせにLPTSTRとかw

だせぇwww

632 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 14:07:17 ]
>>624
あと、リソースファイルにはUNICODEで入っているのに
LoadStringWを実装していない9xには殺意を覚えた。

633 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 14:09:49 ]
殺っちゃってください

634 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 14:15:09 ]
今思うと95ってよく動いてたなーと

635 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 14:44:33 ]
>>632
それを言うならVFATだってUnicodeだろ

636 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 15:39:49 ]
>>624
日本語コメント全然入力できない de.licio.us 思い出した

637 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 09:56:17 ]
ダイアログの背景の灰色にビットマップを描写したいのですが、
どのメッセージで描写すればいいですか?
(WM_PAINT、WM_DRAWITEM、WM_ERASEBKGNDのどれかと思うんですが・・・)

638 名前:デフォルトの名無しさん [2009/01/03(土) 09:58:24 ]
WM_ERASEBKGNDでBitBltなりなんなり



639 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 10:03:55 ]
>>638
ありがとうございます

640 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 01:28:37 ]
>>593 >>594
ヒントありがとうございました。
少し勉強してみます。

フック監視というのはいろいろ流用できそうですね。

「ファイルだからとフック監視も有り」ということですが、
これは、裏の「ファイルでないならばフック監視できない」が成立するのでしょうか?
あるいは逆の「フック監視できるのはファイルだけ」となりますか?


641 名前:デフォルトの名無しさん [2009/01/04(日) 02:51:28 ]
HTMLテキストデータから数値(浮動小数点)のみを順に抽出して
いきたいのですが、どういう風にすればよろしいでしょうか?
ご教授ください。
Windows APIに依存しない方法でお願いします。



642 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:52:38 ]
>>641
スレ違い

643 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:53:49 ]
>Win32API質問箱 Build74

>Windows APIに依存しない方法でお願いします。

・・・

644 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:12:12 ]
神の姿が見えた

645 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:36:46 ]
きっと書き込むスレを間違えた御茶目さんなのさ

646 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 08:38:09 ]
プリントアウトしてバイト雇ってそいつにやらせろ
Windows APIには依存しないぞ

647 名前:デフォルトの名無しさん [2009/01/04(日) 10:27:04 ]
雇用創出はええこっちゃ

648 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:16:57 ]
バイトが100,000を1,000,000にミスって正月早々大騒ぎ



649 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:18:49 ]
>>641
スレ違いワロタ

Rubyでnokogiriと正規表現でも使えば楽勝


650 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:28:13 ]
>>649
楽勝なら今すぐ書いてくれ

651 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:45:34 ]
俺649じゃないから知らんがjsでtextContentに (0|[1-9][0-9]*)\.([0-9]*[1-9]|0) とか当てれば良いんじゃないかと

これでこの件は終了な
続きは他に行ってくれ

652 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:55:55 ]
>>650
>>641 か?うざいから他でやれ。
第一、元のHTMLも出さない、切り出しの仕様も出さない。
エスパーでもやれるのかw?

653 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 14:22:33 ]
むしろエスパーだからこそ殺っちゃって欲しい

654 名前:641 mailto:sage [2009/01/04(日) 17:59:01 ]
エスパーの方からテレパシーで回答が得られました。ありがとうございます。
650は私ではありません。

655 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 20:11:11 ]
それ、電波

656 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:08:38 ]
いいえ、電磁波です

657 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:29:45 ]
MakeSureDirectoryPathExists() って、なんでANSI 版しか実装されていなんだろ?
おかげでこれを使うときだけ CStringA( CStringW) しなきゃならんのだが・・・。

658 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:45:13 ]
既に別のものに置き換わっている古いAPIについて愚痴られても、
頭が悪いとしか言いようがない。



659 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:47:05 ]
置き換わってるという API を教えてあげればいいだけじゃん。

660 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:48:51 ]
ということで、MakeSureDirectoryPathExists() のリファレンスを見たら、
Unicode 版は SHCreateDirectoryEx() を使え、って書いてあるね。

661 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:54:51 ]
imagehlp系はUNICODE化されていません!

662 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:10:49 ]
ShellAPIはMAX260文字制限がな。
.NETも同じだし32767文字対応させようとするとアホらしくなってくる。

663 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:14:55 ]
今確保してるMAX_PATHのスタックを全部32000にしたらオーバーフローで落っこちるお
どうすればいいんだお

664 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:25:27 ]
リンカのオプションでスタックサイズ設定できるだろ。

665 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 23:19:54 ]
260文字で足りるだろ
どんだけ長いファイル名付けるんだよアホ

666 名前:デフォルトの名無しさん [2009/01/04(日) 23:23:10 ]
意図的な異常に長いファイル名に対応したいんだろ

667 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 23:57:16 ]
OSのファイルシステムと一部のAPIは昔に対応してるのに
OSのシェルが対応してないのてどうよ。
ていうか長いファイルパス使えるファイラ教えて。

668 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:15:33 ]
260文字を超えるファイル名を付けなければいいだろ馬鹿



669 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:30:21 ]
>>668
ファイル名260文字は滅多にないだろうけど、
ファイルパス260文字はそれに比べたら可能性あるんじゃね?


670 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:33:56 ]
>>667
NTFSってまだまだ使っていない機能が出てくる気がする。
シンボリックリンクだってVistaで出てきたし。

671 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:50:56 ]
どうでもいいが、QuickTimeのプレイヤーは長いフルパスのファイルを再生できんよな

672 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:53:13 ]
>>669
ねーよ
お前260文字がどれほど長いか分かって言ってるのか?

673 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:59:57 ]
ttp://support.microsoft.com/kb/938129/ja

674 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:01:41 ]
それよりもCD/DVDが普通だと260文字より短くて苦労した覚えがある。

675 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:03:28 ]
DOSの頃は64バイトだっけ
あれに一度引っかかってから深いフォルダはあまり作らなくなったな

676 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:09:24 ]
ルート512個制限も地味に痛い

677 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:11:04 ]
Documents And Settings以下とかに深い階層掘られてることはたまにある
が、俺のPCには260文字越えはどうやらないらしい
200越えならあった

678 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:12:23 ]
C:\Program Files\Common Files\Microsoft Shared\日本国憲法\日本国民は、正当に
選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、
諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、
政府の行為によつて再び戦争の惨禍が起ることのないやうにすることを決意し、ここに
主権が国民に存することを宣言し、この憲法を確定する。そもそも国政は、国民の厳粛な
信託によるものてあつて、その権威は国民に由来し、その権力は国民の代表者がこれを.txt


これで260文字だ。こんなの普通に使ってて超えねーよ



679 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:15:15 ]
IEで保存するとやたら長いファイル名で作られて、
次にそれを開こうとするとエクスプローラが死んだな

680 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:20:39 ]
マイドキュメントの中に日本語フォルダとか作ってるとながーくなる

681 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:32:47 ]
日本語の方がむしろ短いだろ

682 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:35:10 ]
結構普通にあるのが
年_月_日_時_分_秒_フォルダ・ファイルの多重攻撃
これに長い文章的ファイル名をつけられて500とか結構普通に使ってる環境あった
しかも絶対パスで扱うとフォルダが深い

683 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:41:06 ]
pc11.2ch.net/test/read.cgi/tech/1224536200/237-

こういうのをデスクトップとかに解凍しようとすると失敗するらしい

684 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:47:04 ]
そんなもんデスクトップに解凍するなよ

685 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:49:50 ]
>>681
マルチバイトのアプリだと日本語フォルダがあるとあっという間だぞ
140文字くらいで260バイトだからな
まぁ最近はUNICODEがデフォだからマシになったが

686 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:56:21 ]
日本語で140文字も付けるかっての
ウイルス並みの嫌がらせだろ

687 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:59:25 ]
32000でも65000でも勝手にやっとけ
オレは260以上はlstrcpynで切り捨てるぜ ( ゚д゚)、ペッ

688 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:03:27 ]
StringCch使えよ



689 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:03:58 ]
万単位のクライアントPCを管理していたが
ユーザごとにフォルダをマウントして利用する方式
だったため、MAX_PATHを軽く超えるファイルは
腐るほどあったな。
別権限のプロセスでファイルを処理するのに
絶対パスでやる必要があったんだが、処理できない
ユーザがそれなりにいた。

あとPCに詳しくないオッサンオバサンってのは俺たちが
想像も付かないようなファイル名フォルダ名を付けたり
するんだよ。あれにはほんと驚いた。

ここの人たちは「知るかボケ」で切り捨てるのは趣味なら
いいけど業務ならちゃんと考えて作ってくれよな。

690 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:05:14 ]
あ、ちなみにフォルダをsubstとかでマウントすれば
マウントしたドライブ名からMAX_PATHまでは
エクスプローラでも普通に作れてしまうってのが
原因の一つでもあったよ。

691 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:12:11 ]
アンチウイルスソフトみたいに260超えだろうがADSだろうが残さずスキャンしなきゃいけないアプリだってある。

692 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:15:11 ]
>>689
「知るかボケ」でいいよ

そもそもMAX_PATHを超えるとシェル系APIやPath〜系APIが使えないだろ
それに中途半端に対応してもバグの元になるだけ

693 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:16:56 ]
あなたはそれでいいよw

694 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:19:16 ]
普通はそれでいいだろw

695 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:20:55 ]
>>692の作るアプリは
・仕様です
・できません
・使えません
がたくさんありそうだ

シェルAPIにはできるだけ頼らない作りにするのが普通だと思ってた

696 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:23:07 ]
対応する、しないでしか話ができないアホはプログラマ辞めろよ

697 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:24:09 ]
ほんとだよな
クズしかいねぇ

698 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:24:29 ]
シェル系APIに頼らざるを得ないアプリだってあるんだよ
エクスプローラが最たる例じゃないか



699 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:24:55 ]
もうだめだこのスレ

700 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:26:08 ]
ここの人たちはいつも32000とか65000とかでファイル名扱ってるの?

701 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:27:33 ]
んなわけねぇだろ

702 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:29:54 ]
>>692さんの言うとおり長いのなんて無視だ無視
何が起ころうが知るかボケだ
俺はそんな長いファイルつくんねーもん

703 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:33:01 ]
もう答えるのやめよう
アホらしくなってきた

704 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:33:08 ]
てか長いの扱えるのってCreateFileぐらいしか無くね?

705 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:35:36 ]
MAX_PATH超えは知るかとかゆとり丸出しだろ・・・
ゆとりは.NET使ってろよ

706 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:44:57 ]
バッファサイズで思い出したがこのバグは笑えるな、解決方法がまたw
support.microsoft.com/kb/894941/ja

707 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:25:47 ]
糞長いファイル名を必要としてるのは共有厨だな
あいつらタグ情報を↓こんな感じでファイル名に埋め込んで使うから無駄に長くなる

(ジャンル名)[作家名]タイトル名(出典)

708 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 04:34:21 ]
キンタマ厨だろw
(アニメ) ○○                                .exe



709 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 09:22:45 ]
260文字いくんかw

710 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 09:36:57 ]
MAX_PATH超えたらウイルスとかw
なにこの人たち、本当にWindowsプログラマ?






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

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

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