トップページ⇒tech
1001コメント276KB

Win32API質問箱 Build62

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/02/04(月) 02:40:03
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

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

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

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
0153デフォルトの名無しさん2008/02/08(金) 07:11:29
そういう問題じゃないだろ
いろいろいうことはあるが、、、もう出る時間なので
0154デフォルトの名無しさん2008/02/08(金) 07:34:51
サブクラス化はちゃんと成功したわけ?
iがローカル変数というオチではないの?
0155デフォルトの名無しさん2008/02/08(金) 08:00:22
WM_CHARにVKが来る訳なかろ
0156デフォルトの名無しさん2008/02/08(金) 09:16:30
GlobalAllocのGlobalRelease呼び忘れわ発見できますか?
0157デフォルトの名無しさん2008/02/08(金) 09:45:53
34 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/05(火) 23:57:49
_CrtSetDbgFlagで
LocalAllocの発見は出来ないですか?

52 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/06(水) 16:47:47
_CrtSetDbgFlagで
LocalAllocの発見は出来ないですか?

142 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/07(木) 18:39:31
GlobalAllocのGlobalRelease呼び忘れわ発見できますか?

156 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/08(金) 09:16:30
GlobalAllocのGlobalRelease呼び忘れわ発見できますか?
0158デフォルトの名無しさん2008/02/08(金) 09:54:07
もうスルーで宜しく
メモリ管理もできない奴はGCに頼れ

で、GCを疑うなw
0159デフォルトの名無しさん2008/02/08(金) 10:21:59
明らかな弱点挙げて指摘したら〜もうスルーで宜しくって
分かり安すぎだなお前らw
0160デフォルトの名無しさん2008/02/08(金) 10:33:49
 (_ _ )
  ヽノ) そのネタは飽きましたのでお引取り下さい
   ll
0161デフォルトの名無しさん2008/02/08(金) 10:34:49
    ⊂ ⊂ヽ、  /)/)
          c、   `っ(  ヽ
        (   v)c、  `っ 
          V''V  (   v)  / ̄`⊃
               V''V   |  ⊃     
                   (   v)  ハ,,ハ  
                     V''V  (゚ω゚  )   
                          ⊂⊂ ヽ
                           >   )
                          (/(/
                                 ハ,,ハ
                                ( ゚ω゚ )  おことわりします
                               /    \
                             ((⊂  )   ノ\つ))
                                (_⌒ヽ
                                 ヽ ヘ }
                            ε≡Ξ ノノ `J
0162デフォルトの名無しさん2008/02/08(金) 10:44:24
何の弱点だよw
GlobalReleaseなんて呼んだ事ねーよwww
0163デフォルトの名無しさん2008/02/08(金) 10:54:55
AllocにはFreeだ。GetにはReleaseだ。
0164デフォルトの名無しさん2008/02/08(金) 11:10:04
そもそも、クリップボードにセットした場合なんかはGlobalFreeしてはいけない
つう例外もあるからそう簡単にチェックできる物でもないだろ

ま、どうせドトネト信者が「GCの無い言語なんて糞」とか言いたいだけかも知れんが
0165デフォルトの名無しさん2008/02/08(金) 11:10:21
IMEを作るには何を実装すればいいか、誰か知りませんか。
IMEを制御する方法は山ほど見つかるんだけどな。
0166デフォルトの名無しさん2008/02/08(金) 11:18:29
基本的にはimm.dllと同じエクスポートを持ったDLLを作ればいいんじゃね

ツールバーを出したければ別個にプロセスを起動してimm.dllから通信すればいい
0167デフォルトの名無しさん2008/02/08(金) 11:22:52
>>166
そりゃ確かにOSのIME管理システムそのものを乗っ取れるかもしれませんが、
えらく大雑把だなあ。
01681472008/02/08(金) 11:32:11
>>154
サブクラス化は成功していると思います。
なぜかVK_RETURNは反応しています。
iはグローバル変数にしています。
0169デフォルトの名無しさん2008/02/08(金) 11:41:28
キーコードと仮想キーコードごっちゃになってるね。君
0170デフォルトの名無しさん2008/02/08(金) 12:01:04
GlobalAllocしたメモリのリーク検出なんてフックすれば簡単に出来る
COMインタフェースのリリースし忘れの方が困る
システムDLL内だったりシェル拡張が原因だったり
0171デフォルトの名無しさん2008/02/08(金) 12:14:24
昔のAdobe製品にはCOMの回収し忘れにより
GetOpenFileNameがエラー起こすっていうバグがあってだな

今は知らん
0172デフォルトの名無しさん2008/02/08(金) 12:22:05
>>170
つ IMallocSpy
01731472008/02/08(金) 13:19:53
>>169
どのようにすれば使えるようになりますか?
0174デフォルトの名無しさん2008/02/08(金) 14:29:01
int i
case WM_KEYDOWN:
     if(wp == VK_UP){
i++;;
}
break;

で良いんじゃね
>>152に書いてあるけど
0175デフォルトの名無しさん2008/02/08(金) 15:19:28
MCI_SIGNALというのは、例えば一定の容量の再生毎にsignalが送られてくるように設定するというイメージでいいですか?

MCI_SIGNALがなんのためにあるのかが分からない
0176デフォルトの名無しさん2008/02/08(金) 15:42:55
MCIスレ立てて聞いてくれ。
0177デフォルトの名無しさん2008/02/08(金) 15:48:08
>>165
OSごとにインターフェイスが異なるから、自分で調べられないなら辞めとけ。
0178デフォルトの名無しさん2008/02/08(金) 16:02:47
SDKにIMEのサンプルコードあったべ。最近のは入ってないのかな。
0179デフォルトの名無しさん2008/02/08(金) 16:03:39
それは操作用のだろ。今も入ってる
0180デフォルトの名無しさん2008/02/08(金) 16:10:47
そうだっけ。簡易IMEみたいな、、、もはや今の仕様では使えないか
0181デフォルトの名無しさん2008/02/08(金) 17:06:13
今タスクマネージャの「パフォーマンス」タブみたいなCPU使用率の
画面を作っていて、マルチコアに対応させたいのですが、
プロセス(スレッド)毎にどのコアを使ってるか、という情報は
どこで得られるのでしょうか?(コア毎の使用率は判るのですが)
0182デフォルトの名無しさん2008/02/08(金) 17:10:48
GetProcessAffinityMask?

スレッドは多分無い
0183デフォルトの名無しさん2008/02/08(金) 17:18:36
>>182
ありがとうございます。
GetThreadAffinityMask相当のAPIは何故か無いみたいですね。
0184デフォルトの名無しさん2008/02/08(金) 17:18:45
多分NtQueryInformationProcess/NtQueryInformationThreadでPEB/TEBを見るしかないんじゃないの?

ただ、ネットに出回っているPEB/TEB構造体の情報は9割ぐらいはXPSP1以前の物で
今時のOSのカーネルとはメンバが微妙に違うから、役に立つかどうかは知らない
0185デフォルトの名無しさん2008/02/08(金) 17:30:21
>>165
GPLのSKKIMEのようにソースが公開されているものもあるよ。
0186デフォルトの名無しさん2008/02/08(金) 18:13:07
 『涼宮ハルヒの憂鬱』より、SOS団のマスコット的存在“朝比奈みくる”が“鶴屋さん”と
同じく、焼きそば喫茶のメイド服姿で登場です。
 ふわりと髪とスカートを翻し、振り返る瞬間をとらえたポーズで立体化。柔らかで
張りのある造形が抜群のプロポーションとマッチし綺麗なシルエットを楽しめます。
 白と紺のコントラストが映える衣装と優しい笑顔が、彼女の清楚で穏やかな魅力を
引き立ててくれます。

商品名 涼宮ハルヒの憂鬱
作品名 朝比奈みくる メイドVer.
価格 6,090円(税込)
発売時期 08年06月未定
仕様 1/8スケール PVC製塗装済み完成品 全高約200mm
原型制作 沼倉としあき
発売元 アルター

ソース:あみあみ
http://www.amiami.com/shop/ProductInfo/product_id/91035
画像
ttp://www.amiami.com/images/product/main/HOB-FIG-8213.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_01.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_02.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_03.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_04.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_05.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_06.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_07.jpg

アルターALTER Co.,Ltd
http://www.alter-web.jp/
0187デフォルトの名無しさん2008/02/08(金) 18:17:37
 
  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄
0188デフォルトの名無しさん2008/02/08(金) 18:22:51
やっぱアレか?
スカートの中覗くのはデフォなのか?
0189デフォルトの名無しさん2008/02/08(金) 18:26:19
おれが予約したフィギュアか
0190デフォルトの名無しさん2008/02/08(金) 18:28:45
PGってやっぱアニオタ多いの?
0191デフォルトの名無しさん2008/02/08(金) 18:58:33
俺は2Dしか興味ないわ
もともと平面な物をなんで立体化するのか本気でよくワカンネ

と釣られてみる
0192デフォルトの名無しさん2008/02/08(金) 19:01:02
人形には興味ないけどメカ物には興味ある俺。
0193デフォルトの名無しさん2008/02/08(金) 19:16:32
おれは長門有紀の魔女っ子姿が欲しい
0194デフォルトの名無しさん2008/02/08(金) 19:23:56
ちなみになぜ186は貼られたのだ

弁解を聞こう
0195デフォルトの名無しさん2008/02/08(金) 20:42:29
DrawTextのフラグがreturn DefWindowProc(hWnd, msg, wParam, lParam);の場合
元のRECTがあさってな状況でも描くのに必要な領域が返ってきますか?
0196デフォルトの名無しさん2008/02/08(金) 20:52:34
変わったフラグなだ
0197デフォルトの名無しさん2008/02/08(金) 21:14:01
エディットボックスの背景を灰色にして入力できないようにするにはどうすればできますか?
入力できないようにするのはSetWindowLongでES_READONLYにしてできたんですが
灰色にする方法が分かりません
0198デフォルトの名無しさん2008/02/08(金) 21:32:09
DT_CALCRECTでした。
0199デフォルトの名無しさん2008/02/08(金) 21:39:10
なんでMSDNを読まないんだろう
0200デフォルトの名無しさん2008/02/08(金) 21:52:27
過度の四角くくない四角形はかけますか?
0201デフォルトの名無しさん2008/02/08(金) 21:53:29
それは四角形ですか?
0202デフォルトの名無しさん2008/02/08(金) 22:00:40
RoundRect
0203デフォルトの名無しさん2008/02/08(金) 22:25:14
MSDNの見方がよく分からんのです
ネタじゃなくてマジで
0204デフォルトの名無しさん2008/02/08(金) 22:26:54
最近のやつは Win32API が探しにくくなってる感はある。
0205デフォルトの名無しさん2008/02/08(金) 22:29:06
>>195
あさっての矩形を指定して書いた場合に描画されるであろう領域が帰ってくるよ。
よく使うのは横幅を非常に大きくして、折り返ししない場合の幅を調べたり、
逆に高さだけ大きくして特定の幅で折り返し表示した場合の高さを調べたり、等。
0206デフォルトの名無しさん2008/02/08(金) 22:31:26
>>204
さっさと.NETに移行させたいのだろ

ま、探しにくいのは前からだと思うが
Google検索でsite:microsoft.comした方が探し易いってどうよ?
0207デフォルトの名無しさん2008/02/08(金) 22:43:27
MSDN内で検索するよりgoogleで検索した方が早いのは定説

しかしリンクが死んでる事も多い罠
0208デフォルトの名無しさん2008/02/08(金) 22:44:35
>>206
ありがとう。探し方何となく分かった
0209デフォルトの名無しさん2008/02/08(金) 22:48:30
前はずっとGoogleでsite:microsoft.comを使って検索してたけど、最近は
http://search.msdn.microsoft.com/search/Default.aspx?brand=msdn&lang=en-us&query=検索文字列
という風にしてる。
0210デフォルトの名無しさん2008/02/08(金) 22:53:36
MSDN2にWin32APIリファレンスの日本語バージョンないよね?
0211デフォルトの名無しさん2008/02/08(金) 22:55:30
MSDN無印のほうも日本語訳はWin32apiところどころ欠けてるよ
0212デフォルトの名無しさん2008/02/08(金) 22:58:17
確かJOYSTICK関連は英語だったな
まぁ簡単な英語だからいいけど

DirectXつかえやコラ
って事なんだろうな
0213デフォルトの名無しさん2008/02/08(金) 23:02:08
>>206
Vistaが.netベースになったら喜んで移行してやったんだがな
0214デフォルトの名無しさん2008/02/08(金) 23:23:13
>>165
DDKにFakeIMEというサンプルがある
0215デフォルトの名無しさん2008/02/08(金) 23:44:49
MSDN 内を Google で検索するのが手っ取り早いよな。
0216デフォルトの名無しさん2008/02/08(金) 23:45:30
Win32API を調べるなら
VC6 についてた MSDN が一番 。
0217デフォルトの名無しさん2008/02/09(土) 00:00:40
あれ載ってないAPIあるし、嘘訳書いてあることもあるし、
使い勝手のあるAPIは訳されてないし。なんつーか、PlatformSDKの
英語ドキュメントよんでたほうがマシ。
0218デフォルトの名無しさん2008/02/09(土) 00:00:51
IMEの辞書ってプログラムで使う方法ありますか?

日本語文章を解析して何かしたいので、その辞書として使いたいのですが……
0219デフォルトの名無しさん2008/02/09(土) 00:05:22
>>218
このスレで"IME"でレス抽出すると挙がってくる質問は全て君かね?
そろそろIMEスレでも立ててしてくれ
0220デフォルトの名無しさん2008/02/09(土) 00:08:44
おい、許可がでちまったぞw
立てちまえよマジで
俺も知りたいし
0221デフォルトの名無しさん2008/02/09(土) 00:11:11
>>219
レス検索してみた。

ちょっといくつか気になるワードでググってきます ノシ
0222デフォルトの名無しさん2008/02/09(土) 00:11:43
昔変換候補出すときにフックして常に変換結果を「ちんこ」にした事はある
IMEはバージョンに依存する動作が多くて面倒だった記憶が
0223デフォルトの名無しさん2008/02/09(土) 01:06:45
ちんことか
0224デフォルトの名無しさん2008/02/09(土) 01:42:49
ちんこウイルスか
0225デフォルトの名無しさん2008/02/09(土) 04:33:22
URLDownloadToFileでダウンロードできるサイトと出来ないサイトがあるんだけど
何が原因だと思いますか?
別のPCで実行すると全てダウンロードできるんですがメインのPCで試してみると
出来るサイトと出来ないサイトが出てきてしまいます
色々試してみたけど規則性がまったく分からない
コントロールパネルからインターネットオプションでプロキシを全てはずしても
同じ結果になってしまいます。他にもしかしたらこれが原因かもとかいうのありませんか?
0226デフォルトの名無しさん2008/02/09(土) 04:39:04
hostsファイル?
0227デフォルトの名無しさん2008/02/09(土) 05:36:48
教えてください。
VC2008EEの環境でCreateWindowExが実行されないみたいです。
ビルドのエラーは出ていない、定義へ移動でwinuser.hに飛ぶ、
#pragma comment(lib,"user32.lib")をソースの頭に書いている状態です。
Debugでブレークポイント置いても実行可能コードは無いって言われます。
成功するRegisterClassExの後ろに置いてみても状況は変わりません。
まぬけなミスしてるんだと思うんだけど、どの様に直せば良いですか?
0228デフォルトの名無しさん2008/02/09(土) 06:08:24
ソース晒せ
0229デフォルトの名無しさん2008/02/09(土) 06:22:35
>>227
#pragma comment(lib,"user32.lib")を頭に書いてCreateWindowExで作ってみたけど
普通に動くよ。2008のProだけど
>実行可能コードは無い
プロジェクト作り直してみたら直ることがある
0230デフォルトの名無しさん2008/02/09(土) 08:13:13
横丁はパリのシャンゼリゼ〜
富士の白雪ぁフェニックス〜
だけど僕らのキョーちゃんは〜
豚足大好き、ブヒっ好き〜
キョーモト  キョーモト
きょうふのキョーーーーーーー(長いわ!)ーーーっちゃん
0231デフォルトの名無しさん2008/02/09(土) 08:44:21
おれその頃のダウンタウン嫌いだったわ
意味不明な着ぐるみ系コントばっかりで
0232デフォルトの名無しさん2008/02/09(土) 09:23:26
(もうええわ)

じゃないか
0233デフォルトの名無しさん2008/02/09(土) 10:43:11
*.rcファイルはソースファイルなんでしょうか
それともリソースファイルなんでしょうか
どちらに追加してもうまくいくようで気に入らないんですが
0234デフォルトの名無しさん2008/02/09(土) 11:23:53
VC++の話?
ビルドするときにはファイル毎にどういうことを行うかという設定を見ており、
(その設定はファイルを追加したときに拡張子から標準の設定がなされる)
ソリューションエクスプローラでどこのフォルダに入っているかということはビルドに一切関係ない。
0235デフォルトの名無しさん2008/02/09(土) 12:21:37
POINT pos = { 0, 0 };
draw( "hello world", pos );
と書くところを一旦posを定義しないで直接POINT型変数をdrawに与えるにはどうしたらいいですか
draw( "hello world", { 0, 0 } ); 的な…
0236デフォルトの名無しさん2008/02/09(土) 12:55:57
C++ならコンストラクタに引数付けて渡すとか。
draw( "hello world", myCPOINT(0, 0));

Cならdrawの関数宣言を変えてしまうとか。
typedef void (*tdraw)(const char *, int x, int y);
tdraw pdraw = (tdraw)draw;
pdraw( "hello world", 0, 0);
スタックの積まれ方に注意。(xとy逆だったかも)
0237デフォルトの名無しさん2008/02/09(土) 12:57:33
直接
((tdraw)draw)("hello world", 0, 0);
でもいい。
0238デフォルトの名無しさん2008/02/09(土) 13:00:24
そんな事するくらいなら最初のやり方の方がずっといい
0239デフォルトの名無しさん2008/02/09(土) 13:05:17
うるせーボケ
どうしたらいいですか、ときたから答えたまで
後出しジャンケン野朗が
0240デフォルトの名無しさん2008/02/09(土) 13:21:34
draw( "hello world", (POINT){ 0, 0 } );
0241デフォルトの名無しさん2008/02/09(土) 13:23:51
すまん >>240 はコンパイラ依存だ
0242デフォルトの名無しさん2008/02/09(土) 13:30:28
あきらかにhackぽい方法を教えるなよ
0243デフォルトの名無しさん2008/02/09(土) 13:55:55
POINT f(int x, int y){POINT pt = {x,y}; return pt;}
draw("hello world",f(0,0));

02442272008/02/09(土) 13:59:44
ミスってる場所を外しているかもしれないので思い切って丸ごと上げました。
DLパスは名前の値です。
 ttp://www.dotup.org/uploda/www.dotup.org0300.zip.html

>>229
テストありがとう。基礎が出来てないだろう俺にはもう判りません…orz
0245デフォルトの名無しさん2008/02/09(土) 14:25:53
>>244
CApplicationBase::GlobalWindowProc
が大変なことになってるぞw

CreateWindowExが失敗するのは、常にreturn S_OK;で処理しているため。
S_OK(=0)はCOMの正常終了値で使われる定義だが、
Window Procedureでは、正常終了値は大抵TRUE(=1)。
(※戻り値はメッセージにより異なる)

Window Procedureの仕様は、下記参照。
http://msdn2.microsoft.com/en-us/library/ms633569(VS.85).aspx
0246デフォルトの名無しさん2008/02/09(土) 14:29:21
CWindowBase::LocalWindowProcでCDXWndBase::LocalWindowProcの戻り値をreturnしてない
0247デフォルトの名無しさん2008/02/09(土) 14:38:27
質問です。
現在実行中のプロセスが、管理者権限を持っているかを調べるAPIを教えてください。
UACが有効になっているVistaで、Administratorsに入っているユーザーが、
「管理者として実行」をしているかを調べたい、というのが動機です。
02482272008/02/09(土) 14:49:57
>>245,246
さんきゅう。その辺良く判ってないので、勉強してくる。
0249デフォルトの名無しさん2008/02/09(土) 15:18:44
>>247
IsUserAnAdminはそういう用途には使えないのかなぁ
0250デフォルトの名無しさん2008/02/09(土) 17:09:55
Windowsx.hの便利さは異常
0251デフォルトの名無しさん2008/02/09(土) 17:52:16
SIF_DISABLENOSCROLLの説明の使用不可にするってのはつまみとかを触れなくするだけ?
キースクロールでメッセージ投げる分には普通にスクロールするんだが
0252デフォルトの名無しさん2008/02/09(土) 18:28:56
天才現る
■ このスレッドは過去ログ倉庫に格納されています