Win32API質問箱 Build42
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/04/14(金) 06:09:09やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-5くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで。
0159デフォルトの名無しさん
2006/04/19(水) 22:36:010160デフォルトの名無しさん
2006/04/19(水) 22:39:35即レスありがとうございます。
無理なんですか。
ちょっと希望を抱いていたのですが。
メモリDCじゃないとSelectObject出来ないんですか。
初めて知りました。
BitBltで頑張ります。
ありがとうございました。
0161デフォルトの名無しさん
2006/04/19(水) 22:42:350162デフォルトの名無しさん
2006/04/19(水) 22:49:49なんとなく非効率的だから改善しようという心がけが非効率的。
非効率で困るのなら、きちんとどこが非効率だか調べて、そこを重点的に効率化しなさい。
0163デフォルトの名無しさん
2006/04/19(水) 23:13:13Windows のサービスで回復タブに指定した内容で
動作させるにはどんなプログラミングを行えばいいの?
回復タブの設定ってどんな仕組みで動作するの?
0164デフォルトの名無しさん
2006/04/20(木) 01:04:18CreateServiceの引数で指定できない?
0165デフォルトの名無しさん
2006/04/20(木) 10:13:530166デフォルトの名無しさん
2006/04/20(木) 10:51:422D描画程度なら変換済み頂点使えばすぐだしスプライトもある
その程度の事にライブラリ求める程度の脳しかないならプログラミングなんか止めちまえ
0167デフォルトの名無しさん
2006/04/20(木) 11:57:000168デフォルトの名無しさん
2006/04/20(木) 13:30:580169きっと166は独りで仕事しているんだろうなぁ
2006/04/20(木) 13:49:142D用に特化されたライブラリがあって使い勝手が悪くないなら使わなくもない。
#つーか、全ての部下が漏れ並みの脳を持っているわけではないしね。
0170デフォルトの名無しさん
2006/04/20(木) 14:06:160172デフォルトの名無しさん
2006/04/20(木) 14:29:100173デフォルトの名無しさん
2006/04/20(木) 15:26:490174デフォルトの名無しさん
2006/04/20(木) 15:49:34そのDOS窓に、文字列を書き出したいので、
AttachConsole()
WriteConsole()
などを使う方法で出力することはできたのですが、
書き終わった後に、DOS窓のコマンドプロンプトが表示されません。
手でENTERキーを押すと、無事にコマンドプロンプトが出るのですが、
WriteConsole()で書き終わった後に、自動的にコマンドプロンプト
を出す方法がありましたら教えて下さい。
0175デフォルトの名無しさん
2006/04/20(木) 15:53:050176デフォルトの名無しさん
2006/04/20(木) 15:54:31アタッチがあるなら、デアタッチがありそうな気がするのはオレだけか?
と言うか、まずはググってみたらどうだ?
0177デフォルトの名無しさん
2006/04/20(木) 16:00:14ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_functions.asp
0178デフォルトの名無しさん
2006/04/20(木) 16:00:57デアタッチ の検索結果 約 17 件中 1 - 8 件目
0179デフォルトの名無しさん
NGNG"dare touch" の検索結果 約 151,000 件中 1 - 10 件目 (0.31 秒)
0180176
2006/04/20(木) 16:11:37# 英語力が無いから困る…orz
0181デフォルトの名無しさん
2006/04/20(木) 16:27:10英語云々以前に、そのままカタカナ語として使われてるだろ
>>176はデバッガ触ったことすら無いのか?
0182デフォルトの名無しさん
2006/04/20(木) 17:09:350183デフォルトの名無しさん
2006/04/20(木) 18:49:16いいじゃんか そうじゃんか
うひょうひょ〜
クライマ〜ックス♪
0184デフォルトの名無しさん
2006/04/20(木) 19:46:060185デフォルトの名無しさん
2006/04/20(木) 20:08:55物理メモリが2G乗っているWindowsXP Proで
タスクマネージャーの利用可能メモリが1.5Gとあるにもかかわらず
HeapAllocやGlobalAllocでは
合計1.2G分のメモリを確保できませんでした
大容量のメモリを使うときの作法がなにかあるんでしたら教えてください。
よろしくお願いします。
0186デフォルトの名無しさん
2006/04/20(木) 20:12:21VirtualAllocEx()
0187デフォルトの名無しさん
2006/04/20(木) 20:38:4232bit Windowsで1.2Gもの連続領域が確保できるだけで十分幸せだと思いねえ
0188デフォルトの名無しさん
2006/04/20(木) 20:39:330189デフォルトの名無しさん
2006/04/20(木) 21:23:55>>185は確保できなかったと言ってるのでは
0190デフォルトの名無しさん
2006/04/20(木) 23:07:220191デフォルトの名無しさん
2006/04/21(金) 00:25:32Win32アプリケーションのメモリ空間は4GB。
デフォルトではその内2GBがシステムで予約されてて、ユーザーアプリが使えるのが2GB。
一度に確保しようとすると、断片化等を考えるとそれくらいが妥当な線ではないかな?
0192デフォルトの名無しさん
2006/04/21(金) 10:54:22600MB のブロックが2個かも試練し、1MB のメモリブロック 1200 コかも試練。
巨大ブロックなら断片化かも試練が、HeapAlloc で数千個のブロックを alloc
してたりするなら、0.3GB分くらい消費してるかも試練。
paging境界のpaddingも気になる。
0193デフォルトの名無しさん
2006/04/21(金) 11:14:420194デフォルトの名無しさん
2006/04/21(金) 11:16:020195デフォルトの名無しさん
2006/04/21(金) 13:53:40通信料も無料でと言ってるんではなかろうか
0196デフォルトの名無しさん
2006/04/21(金) 13:55:33500MB程度のブロックを2つと100MB程度のブロックを2つです。
VirtualAllocも試してみましたがだめでした。
0197デフォルトの名無しさん
2006/04/21(金) 14:17:10利用料も無料にしたいなら
・他人の家でやる
0198デフォルトの名無しさん
2006/04/21(金) 14:45:090199デフォルトの名無しさん
2006/04/21(金) 14:51:350200デフォルトの名無しさん
2006/04/21(金) 15:19:01これで数時間、余裕で潰せる俺に、窓際なんて怖くない。
>>196
そのメモリ確保前に、どれくらい「自アプリで」メモリ使っている?
0201デフォルトの名無しさん
2006/04/21(金) 15:59:19タスクマネージャーのPF使用量は
起動前221MB 起動直後224MB メモリ確保直前225MB
となっていますので
5MB前後だと思われます。
0202デフォルトの名無しさん
2006/04/21(金) 16:01:220204デフォルトの名無しさん
2006/04/21(金) 19:47:230205デフォルトの名無しさん
2006/04/21(金) 23:39:51ウィンドウの左端に「あるもの」にカーソルを合わせたら出てくるメニューってどう作るのですか?
「あるもの」とはVisualstudio.Netとかの「ツールボックス」とかのあれです。
わからなかったらすみません
0206デフォルトの名無しさん
2006/04/21(金) 23:41:290207デフォルトの名無しさん
2006/04/22(土) 00:21:54ttp://www.viksoe.dk/code/xpui.htm
0208デフォルトの名無しさん
2006/04/22(土) 00:51:39さっぱりわかりません。
確かに自分がいったものに間違いなさそうですが・・・
ですので左側に固定のものにしようと思います。
教えてくれてありがとうございます。
0209デフォルトの名無しさん
2006/04/22(土) 07:52:30SetWindowsHookExでWH_KEYBOARDを監視するとして、何かキーが押されたらコールバックが発生しますが
コールバック元を特定するにはどうしたら良いのでしょうか?
フォーカスの当たっているウィンドウ?コントローラ?を探す感じでしょうか?
0210209
2006/04/22(土) 07:59:19↑のはグローバルフックの場合です。
0211デフォルトの名無しさん
2006/04/22(土) 11:25:27変換候補を取得する時、CANDIDATELIST 構造体を使うわけだが
CANDIDATELIST 構造体の定義
----------
typedef struct tagCANDIDATELIST {
DWORD dwSize;
DWORD dwStyle;
DWORD dwCount;
DWORD dwSelection;
DWORD dwPageStart;
DWORD dwPageSize;
DWORD dwOffset[1]; ←配列の要素は一つ
} CANDIDATELIST, *PCANDIDATELIST;
----------
dwOffset[] はこの構造体の先頭からのオフセット値で、
一つ目の文字列を取得するには 先頭アドレス+dwOffset[0] を参照する。
二つ目なら 先頭アドレス+dwOffset[1] を参照してくらしいけど、
dwOffset[]って、構造体の中の宣言ではdwOffset[1]として、要素は一つしか
宣言してないのに、サンプルプログラムとか見ると、普通にdwOffset[2]とかを
使ってる。どうして、配列違反にならないの?
0212デフォルトの名無しさん
2006/04/22(土) 11:28:24newとかで。
0213デフォルトの名無しさん
2006/04/22(土) 11:28:460214デフォルトの名無しさん
2006/04/22(土) 11:42:07ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_282.htm
0215デフォルトの名無しさん
2006/04/22(土) 12:08:07お、すばやい回答サンクス。
ちょっと簡単な実験プログラム書いて実験してみて理解できた。
こんなやり方があるんですね。勉強になったよ。
0216デフォルトの名無しさん
2006/04/22(土) 12:25:53Alt+PrintScreenでクリップボードに取れるような
ウィンドウイメージを取得するのはどうすればいいでしょうか?
0217デフォルトの名無しさん
2006/04/22(土) 12:47:32何故その質問になるのかさっぱり意味が分からない。
0218デフォルトの名無しさん
2006/04/22(土) 12:49:030219デフォルトの名無しさん
2006/04/22(土) 12:49:250220デフォルトの名無しさん
2006/04/22(土) 12:55:01よくわからないので、できればそのことを確認できるキーワードか解説しているURLを教えてください。
0221デフォルトの名無しさん
2006/04/22(土) 13:03:250222デフォルトの名無しさん
2006/04/22(土) 13:29:48GetWindowDCでどうだ?
0223デフォルトの名無しさん
2006/04/22(土) 14:08:09例えば、HeapAlloc() に HEAP_GENERATE_EXCEPTIONS を指定したりします?
確かに便利だとは思うのですが、大きな罠が隠れているような気もします。
0224デフォルトの名無しさん
2006/04/22(土) 14:15:18こういうのってどうやって作るの?
0225デフォルトの名無しさん
2006/04/22(土) 14:16:350226デフォルトの名無しさん
2006/04/22(土) 14:45:14リストではなくその後ろの属性の値を入力できるもの全体です。
写真、ややこしいですねm(._.)m
0227デフォルトの名無しさん
2006/04/22(土) 14:48:25とりあえずalloca使うときはSEH使う。
0228デフォルトの名無しさん
2006/04/22(土) 15:13:20場所に応じて必用なコントロールを貼り付けてりだけ。
見たまんまだから別に悩むところでも疑問に思うところでもない。
0229デフォルトの名無しさん
2006/04/22(土) 15:19:010230デフォルトの名無しさん
2006/04/22(土) 15:31:150231デフォルトの名無しさん
2006/04/22(土) 15:35:19>Win32の先輩方
Win3.1とか?
0232デフォルトの名無しさん
2006/04/22(土) 15:35:220233デフォルトの名無しさん
2006/04/22(土) 15:36:00むしろOS/2
0235デフォルトの名無しさん
2006/04/22(土) 21:42:25GetCaretPos はキャレットを所有しているウィンドウのクライアント座標しか
返してくれません。キャレットを所有しているウィンドウのハンドルが
分かれば、ClientToScreen でスクリーン座標に変換できるのですが、
そのような関数が見当たりません。どなたか助けてください!
0236デフォルトの名無しさん
2006/04/22(土) 22:31:160237デフォルトの名無しさん
2006/04/22(土) 23:28:200238デフォルトの名無しさん
2006/04/23(日) 00:12:55WH_KEYBOARDを監視するとして、何かキーが押されたらコールバックが発生しますが
コールバック元を特定するにはどうしたら良いのでしょうか?
フォーカスの当たっているウィンドウ?コントロール?を探す感じでしょうか?
0239デフォルトの名無しさん
2006/04/23(日) 01:29:210240238
2006/04/23(日) 01:45:48元は、キーが押された時にフォーカスの当たっていたコントロールということです。
0241デフォルトの名無しさん
2006/04/23(日) 01:57:52Windowsプログラミング初心者です。
SetWindowsHookExでWH_KEYBOARDを監視するとして、何かキーが押されたらコールバックが発生しますが
コールバック元を特定するにはどうしたら良いのでしょうか?
フォーカスの当たっているウィンドウ?コントローラ?を探す感じでしょうか?
0242デフォルトの名無しさん
2006/04/23(日) 01:58:56>>236
0244238
2006/04/23(日) 02:27:36↓
GetWindowThreadProcessId
↓
GetGUIThreadInfo
をやって解決しそうです。お騒がせしました。
もしなんかもっとスマートなやり方があったら教えてください。
0245デフォルトの名無しさん
2006/04/23(日) 04:37:19やりとりするには、領域を確保してそのポインタを渡すような実装しかできないんでしょうか?
どっちかのスレッドがこけて解放できなくなるなんてことが普通に起きそうで怖いんですが…
0246245
2006/04/23(日) 05:35:180247デフォルトの名無しさん
2006/04/23(日) 05:38:520248デフォルトの名無しさん
2006/04/23(日) 10:17:12んなコード書くほうが悪いだろう。
0249デフォルトの名無しさん
2006/04/23(日) 10:24:25スレッドの強制終了はNG。
フラグ立ててきっちり終了処理してから死んでくれと頼むのが基本。
その上でそのスレッドが文字列の開放を出来ない理由があるなら
開放の責任をメインスレッドに委ねてしまえばいい。
なんにしても
>領域を確保してそのポインタを渡すような実装しかできないんでしょうか?
これ以外の実装はない。
0250デフォルトの名無しさん
2006/04/23(日) 10:42:360251デフォルトの名無しさん
2006/04/23(日) 10:49:190252デフォルトの名無しさん
2006/04/23(日) 11:33:39スレッド間で悩む必要なんてなかろうに。
0253デフォルトの名無しさん
2006/04/23(日) 19:12:450254デフォルトの名無しさん
2006/04/23(日) 19:16:530255デフォルトの名無しさん
2006/04/23(日) 19:17:310256デフォルトの名無しさん
2006/04/23(日) 19:18:44自分のなかのSDIの知識だけでしたらおかしくなったのでお願いします。
0257デフォルトの名無しさん
2006/04/23(日) 19:42:000258デフォルトの名無しさん
2006/04/23(日) 19:48:36参考になりそうなサイトを教えてください(^人^)
■ このスレッドは過去ログ倉庫に格納されています