Win32API質問箱 Build68

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
スレ立てるまでもない、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

Win32API質問箱 Build67
http://pc11.2ch.net/test/read.cgi/tech/1212931246/
2デフォルトの名無しさん:2008/07/06(日) 21:53:58
3デフォルトの名無しさん:2008/07/06(日) 21:56:46
- Google
http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/

- Advanced Windows (書籍)
http://www.amazon.co.jp/dp/4756138055

-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
4デフォルトの名無しさん:2008/07/06(日) 22:06:50
                          刀、           , ヘ
                  /´ ̄`ヽ /: : : \_____/: : : : ヽ、
              ,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
               /: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
     ,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
    /: :.,.-ァ: : : |: : : : : : : : :    :\: : : : :: : : :ヽ  \   /: : : :/
    ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i  / /: : : : :/
     /: :     ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/  /: : : : :/         、
.    /: : /  . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : |  /: : : : :/            |\
   /: : ィ: : : : :.i: : |   \!___/ ヽ:: : : : : : :\|:.:.:.:/:!  ,': : : : /              |: : \
   / / !: : : : :.ト‐|-    ヽ    \: : : : : l::::__:' :/  i: : : : :{              |: : : :.ヽ
   l/   |: : :!: : .l: :|            \: : : l´r. Y   {: : : : :丶_______.ノ: : : : : :}
      l: : :l: : :ト、|         、___,ィ ヽ: :| ゝ ノ    '.: : : : : : : : : : : : : : : : : : : : : : /
      |: : :ト、: |: :ヽ ___,彡     ´ ̄´   ヽl-‐'     \: : : : : : : : : : : : : : : : : : イ
        !: :从ヽ!ヽ.ハ=≠' , ///// ///u /           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      V  ヽ|    }///  r‐'⌒ヽ  イ〉、
              ヽ、______ー‐‐' ィ´ /:/:7rt‐---、       こ、これは>>1乙じゃなくて
                  ィ幵ノ ./:/:./:.! !: : : : :!`ヽ     ポニーテールなんだから
              r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\   変な勘違いしないでよね!
               /: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\
5デフォルトの名無しさん:2008/07/07(月) 02:00:00
>>1
無駄レスでスレに勢いがありすぎる。
6デフォルトの名無しさん:2008/07/07(月) 04:28:54
7デフォルトの名無しさん:2008/07/07(月) 04:29:45
8デフォルトの名無しさん:2008/07/07(月) 04:30:30
9ハッカーの神様:2008/07/07(月) 21:11:38
また世話になるぜお前ら
10デフォルトの名無しさん:2008/07/07(月) 22:21:36
どこで聞いたらいいのか分からないので、ここで聞いてみます。
.NET Frameworkは、C#などをコンパイルして、
共通中間言語(CIL)になり、JITでネイティブコードにしながら
実行されるということですが、これには Win32APIは全く
使用されていないってことでいいですか?
11デフォルトの名無しさん:2008/07/07(月) 22:34:37
少なくともHeapやFile I/Oは使っていると思うぞ。
12デフォルトの名無しさん:2008/07/07(月) 22:53:33
間違いです
13デフォルトの名無しさん:2008/07/08(火) 10:45:10
間違ってないだろ
14デフォルトの名無しさん:2008/07/08(火) 10:47:12
DragDetectって、右ドラッグ判定には使えないのでしょうか?
WM_RBUTTONDOWNのハンドラの中で

CPoint pt;
GetCursorPos(&pt);
if (::DragDetect(m_hWnd, pt)) {
  AfxMessageBox(_T("★"));
}

という判定を入れても、すぐにFALSEになってしまうのです。

たしかにMSDNのDragDetectの説明には「左ボタン」という表記があるのですが、
同じように右ボタンのドラッグ開始判定をしようと思ったら、
結局は自分でタイマを使ったり距離を調べたりといった判定を
入れなければいけなくなるものなのでしょうか?
15デフォルトの名無しさん:2008/07/08(火) 10:54:31
>>13
>>12>>10宛てかと。
16デフォルトの名無しさん:2008/07/08(火) 10:57:04
右ドラッグなんて迷惑な使い方させsるなら、そのくらいやってくれよ。
17デフォルトの名無しさん:2008/07/08(火) 14:25:37
>>16
日本語でおk
18デフォルトの名無しさん:2008/07/08(火) 19:46:49
MFCwwwwwwwwwwwwwwwwwwwwwwwwwww
19デフォルトの名無しさん:2008/07/08(火) 20:51:22
motherfucker's classか
20デフォルトの名無しさん:2008/07/08(火) 21:37:27
エディットボックスをSetWindowTextで更新すると勝手に一番上にスクロールされちゃうので
元の位置に戻したいと思ってます。
EM_LINESCROLLをSendMessageするときに
GetScrollPosで垂直と水平の位置を取得すると水平の位置だけなんかおかしいのですが
水平位置の取得ってどうやるんでしょうか?
EM_GETTHUMBは垂直位置のようですし・・・
21デフォルトの名無しさん:2008/07/08(火) 21:38:06
WinXPとかの話なのですが、OS付属の「タスク」機能を使うと
スリープモード状態から指定した時刻にスリープを解除することができます。

これと同じことを自作のアプリから行うにはどのようにしたらよいのでしょうか?
APIなどを探したのですが見あたりませんでした。
もしかしたらOS標準の「タスク」にしか実現できない処理なのでしょうか?
22デフォルトの名無しさん:2008/07/08(火) 22:12:51
VC++6.0を使っているものです

ダイアログボックスのエディタボックスにファイルをD&Dしたら
そのファイルを読んでエディタボックス内に表示させてたいのですが
方法がどうもわかりません

MFCなら"DragAcceptFiles"ってのを使えばいいっぽいのですが
MFCを使ってないもので・・・

どなたかご教授いただけないでしょうか。

23デフォルトの名無しさん:2008/07/08(火) 22:28:21
MFCを使って無くても"DragAcceptFiles"だろ
少しはググれカス
24デフォルトの名無しさん:2008/07/08(火) 22:39:50
VC2008EEでプログラミング始めた者です

とかなら分からないでもないが、10年ぐらい前のVC6を今でも使ってる奴が
なぜそんな基本的な事も知らないのかねぇ
前世紀からタイムスリップしてきたのか?
25デフォルトの名無しさん:2008/07/08(火) 22:42:13
IShellTaskScheduler
26デフォルトの名無しさん:2008/07/08(火) 22:49:18
なんでこうもVC6使ってる奴が、後から後から発生してくるのかさっぱり判らん。
STLは腐ってるし、古いリンカのせいでSDKの対応は2003位で頭打ちだし。
27デフォルトの名無しさん:2008/07/08(火) 22:52:07
>>26
新しいものを拒絶して、いつまでも過去にすがりつこうとする人っているじゃん。
そういう人なんだよ。
28デフォルトの名無しさん:2008/07/08(火) 22:52:48
WaitableTimerの解説に、APMから起きてこれるフラグ、みたいなのがあったような
29デフォルトの名無しさん:2008/07/08(火) 23:53:11
俺普通にVC6使ってるが?w
結構使ってる奴いるんじゃね?
30デフォルトの名無しさん:2008/07/09(水) 00:03:11
VB6も使う必要があるとか2002以降.NETで重くなったのにマシン買い換えてないとか、そもそもOSが(ryとか
31デフォルトの名無しさん:2008/07/09(水) 02:46:30
俺もVC6使ってるなぁ
だって2002以降は.NETなんていらねーのに統合されてるのがむかつくし

ってか、VC6使いなんて発売時期考えてもプログラミング暦5年は超えてないとおかしくないか?
なぜDragAcceptFilesすら知らないのか理解できないのだが
32デフォルトの名無しさん:2008/07/09(水) 03:58:09
質問スレにまできてなんで雑談してんだ。
33デフォルトの名無しさん:2008/07/09(水) 07:40:13
客の指定がVC6だったりしてw
というか実際にあったし…(´;ω;`)ウッウッウッ・・・
34デフォルトの名無しさん:2008/07/09(水) 08:56:49
forで宣言した変数がループ外まで有効なのってVC6までだっけ?
35デフォルトの名無しさん:2008/07/09(水) 08:56:56
まあおかしいのは知らない事じゃなくて
調べる手段をまともに持ってない事だな
36デフォルトの名無しさん:2008/07/09(水) 09:00:04
>>34
設定で変えられるけど
2003もデフォルトでそう
2005から変わった
37デフォルトの名無しさん:2008/07/09(水) 11:40:10
テキストエディタを作っているのですが、IMEをONにして何か文字を入力すると、キャレットのあった位置にすでに文字が入力されていた場合、その文字のフォントでIMEに入力されてしまうようなのです。
例えば、キャレットの位置にあった文字が太文字だった場合、IMEへ入力される文字も太文字になってしまいます。
これを、常に一定のフォントでIMEに入力されるようにしたいのですが、どうすればよいでしょうか?
38デフォルトの名無しさん:2008/07/09(水) 12:57:19
>>37
元windowはリッチエディット?

EN_IMECHANGE 捕まえて ImmGetContext() 〜 ImmSetCompositionFont()
でなんとかならんかね?
39デフォルトの名無しさん:2008/07/09(水) 13:00:38
今時richeditでエディタ作る奴なんているのか?
40デフォルトの名無しさん:2008/07/09(水) 13:20:02
部分的に色変えたい場合時にリッチエディット以外に選択肢ってあるんですか?
41デフォルトの名無しさん:2008/07/09(水) 13:20:55
さーせん>>20がVC6の話題に埋もれてしまったので
もしわかる方いたらお願いします・・・
42デフォルトの名無しさん:2008/07/09(水) 13:27:29
>>41
スクロール位置なの?
キャレット位置戻すだけじゃ駄目?
43デフォルトの名無しさん:2008/07/09(水) 13:45:19
>>42
キャレットって言葉知りませんでした。調べてみます。
スクロール位置というか更新後も同じ表示に戻したいということなんです。
キャレット位置戻すというのはそういうことなんですか?
44デフォルトの名無しさん:2008/07/09(水) 13:49:43
キャレット調べてみました。
エディットボックスといってもReadOnlyで入力するわけではないので、
キャレット位置に戻すってのは違うみたいです。
45デフォルトの名無しさん:2008/07/09(水) 14:06:12
まあやってりゃキャレット戻すのも必要になるだろうけど、
EM_LINESCROLLで駄目なのはなんで?
普通にうまくいくけどな。
46デフォルトの名無しさん:2008/07/09(水) 14:13:33
>>40
自分で全部作ればよか
47デフォルトの名無しさん:2008/07/09(水) 14:19:32
int h = GetScrollPos(GetDlgItem(hWnd,IDC_LOG),SB_HORZ);
int v = GetScrollPos(GetDlgItem(hWnd,IDC_LOG),SB_VERT);
SetWindowTextA(GetDlgItem(hWnd,IDC_LOG),buffer.c_str());
SendMessage(GetDlgItem(hWnd,IDC_LOG),EM_LINESCROLL,h,v);
このようにやったのですが、
垂直スクロールは元の位置に戻るんですが、
水平スクロールが左端以外の時だと、一気に右端まで移動しちゃいます。
hの値を見てみると、 更新前49 更新後230になってました。
48デフォルトの名無しさん:2008/07/09(水) 14:28:40
そりゃ取得はピクセル数なのに設定は文字数だからな
49デフォルトの名無しさん:2008/07/09(水) 14:47:13
そこでEM_GETTHUMBで位置を取得するのかな?と思ったんですが
これが垂直スクロールしか取得できないみたいなんですが、
水平の文字数ってどうやって習得するんでしょうか?
あと取得はピクセルとのことですがvの方はうまいこと同じ位置に戻るんですが、
たまたまってことですか?
50デフォルトの名無しさん:2008/07/09(水) 15:12:29
Vはライン数
プロポーショナルフォントというものがあって
51デフォルトの名無しさん:2008/07/09(水) 16:03:47
WS_EX_TRANSPARENT でウィンドウを半透明にしたんですが、動かしたり他のウィンドウが
重なったりすると一部しか描画されなかったり消えます。
case WM_MOUSEMOVE:
  InvalidateRect(hwnd,NULL,TRUE);
を入れてみましたが、うまく描画されません。どうすればいいでしょうか?
52デフォルトの名無しさん:2008/07/09(水) 16:27:12
>>51
多分おまいさんが使いたいのはWS_EX_LAYEREDのほう。
53デフォルトの名無しさん:2008/07/09(水) 16:33:59
>>46
全部自分で(´・ω・`)
頭いい人達一杯いるはずなのにデフォで便利なの用意してくれないんですねMSは・・・
54デフォルトの名無しさん:2008/07/09(水) 16:45:27
WindowsAPIというこのスレ的に一番便利なものを用意してくれているではないか
55デフォルトの名無しさん:2008/07/09(水) 16:51:51
つーかログ表示とか、メインじゃないものに色つけたいときはリtッチは手軽でいいじゃん
56デフォルトの名無しさん:2008/07/09(水) 17:02:16
でもリッチクソ重いよ
57デフォルトの名無しさん:2008/07/09(水) 17:05:32
IEコンポーネントもあるぞ。もっと重いか
58デフォルトの名無しさん:2008/07/09(水) 18:15:58
IE7は史上稀に見るクソブラウザだな
クソ重い上にエラー吐きまくりやがる
59デフォルトの名無しさん:2008/07/09(水) 18:31:53
DFAが分かればエディタの構文ハイライトぐらいすぐに作れるだろ
60デフォルトの名無しさん:2008/07/09(水) 18:40:47
Cの入門本数冊やったんですがWinAPIって簡単に言うと何なんですか?ソフト開発向けの関数の集合?
61デフォルトの名無しさん:2008/07/09(水) 19:04:17
Win Windows用の
A アホ専用
P プログラム
I インターフェイス
62デフォルトの名無しさん:2008/07/09(水) 19:21:21
>>60
OSが提供する機能。unixだとシステムコールという。

近代のOSは、アプリケーションプログラムが直接I/Oポートをいじることを許さないのよ。
複数アプリ間で衝突したりするから。
で、I/Oを直接管理するのはOSで、アプリはOSが提供する機能を呼ぶことでI/Oしろということになった。
63デフォルトの名無しさん:2008/07/09(水) 19:42:07
Windowsの中の人(OSたん)に、「こういう処理をしてね!」と言うと、OSたんが何かやってくれて、
その結果いろんなことが起こる。このように、OSたんにえちーなことをさせるのがAPI。
64デフォルトの名無しさん:2008/07/09(水) 19:45:37
例えば、一つのファイルを監視するにあたって
そのファイルが更新(データ追加)された時点で制御返す
APIとかって知りませんか?

データサイズとタイムスタンプで何かで判断する以外のやり方が
あればそれでいきたいと思っているので。
65デフォルトの名無しさん:2008/07/09(水) 19:48:08
APIフック
6664:2008/07/09(水) 19:52:46
>>65
あー、CreateFileかWriteFileにAPIフックかけるのか。
でもそれは全プロセスに対して干渉する事になるから
微妙だなぁw

ものすごく薄い記憶だけどフォルダ監視に関しては
フォルダ内が更新された時点で制御返してくれるAPIが
あったと記憶してるんだが、ファイル単体に関しては
似た機能のAPIは提供されてないのかなやっぱり。

子スレッド内でSleepでもしながら一定間隔での
監視にするかなぁ。。。
67デフォルトの名無しさん:2008/07/09(水) 19:54:56
デバドラ (例:Filemon)
6864:2008/07/09(水) 19:56:27
こいつだ

FindFirstChangeNotification
6964:2008/07/09(水) 19:59:26
すまん

FindFirstChangeNotification
↑で事足りるかもしれないのでこれでやってみる

>>65
ありがとう
70デフォルトの名無しさん:2008/07/09(水) 20:10:26
>>62
いや、Win32APIはLinuxで言うところのglibcとかだぞ。
システムコールとアプリケーションの間にあるライブラリ群
71デフォルトの名無しさん:2008/07/09(水) 20:24:36
↑話を理解してない馬鹿
72デフォルトの名無しさん:2008/07/09(水) 23:52:08
70は正しい
たとえばCopyMemory
73デフォルトの名無しさん:2008/07/10(木) 03:14:20
CopyMemoryはmemcpyの#defineだが
本当に話を理解してない馬鹿なんだね
74デフォルトの名無しさん:2008/07/10(木) 06:54:55
Win32APIの場合、基本はインポートライブラリでOSのDLLに直結だからな。
libcは、Win32APIとCランタイムの中間辺りに位置している感じか?
75デフォルトの名無しさん:2008/07/10(木) 07:44:57
もう、WindowsXPのXPビジュアルスタイルの
ツールバーのバグって治らんのかな・・
ツールバーのボタンを押しながらマウスの右ボタン押すと、
2回目に、別のウィンドウにフォーカス移すまで、
操作不能になるって奴。

WM_CONTEXTMENUを処理して右クリックメニュー出すと、
フォーカス外れる為か、操作不能にはならないけど、
以降、ボタン押したままカーソルを外すと、押されたまま戻らないようになる。
(IEやエクスプローラーのツールバーでも確認出来る)
こっちは実害は無いけど、プログラミングスキルが低く見えて格好悪いよw

なんでMSはこんなみっともないバグ、治さないんだろな。
76デフォルトの名無しさん:2008/07/10(木) 08:18:45
アイコン潰れてるのも直ってないだろ
77デフォルトの名無しさん:2008/07/10(木) 09:48:52
>>73 はなぜCopyMemoryが存在するのかを理解できてないようだ。
78デフォルトの名無しさん:2008/07/10(木) 09:52:09
↑話を理解してない馬鹿
79デフォルトの名無しさん:2008/07/10(木) 10:13:01
CopyOnWriteなページをしてくれるものと期待していたのに
使い分ける意味がない糞実装にがっかりだ
80デフォルトの名無しさん:2008/07/10(木) 10:13:36
いきなりですみません。ご質問させて下さい。

HTMLでいうMARQUEEのような感じで、
Windowsアプリ上にて、ビットマップや文字列をスクロールさせたいと考えています。


そこで私は、以下の手順で、ビットマップをスクロールさせようと試みました。

@x座標を表す変数に、初期値設定
AメモリDCを作成
BInvalidateRectで、直前のビットマップ表示領域を無効化
C(x座標を表す変数)++
Dx座標を表す変数を使い、メモリDCから画面DCにBitBltでビットマップコピー
EUpdateWindow

以下、@〜Eの繰り返し


しかし、この方法ですと、スクロールが滑らかではなく、
非常にカクカクしてしまいます。

開発環境はVisualStdio2005で、OSはWinXPProです。
マシンスペックは、特に古い機種ではないはずですので問題はないと思います。


WindowsAPIを使って、画像・文字列等を滑らかにスクロールさせる方法をご存知の方、
ぜひともご教授お願い致します。
81デフォルトの名無しさん:2008/07/10(木) 10:31:28
ScrollWindowEx
82デフォルトの名無しさん:2008/07/10(木) 10:45:08
ScrollWindowEx 使うと、無効領域はスクロールして新たに出てきた部分だけになるから
そのままUpdateWindowすれば軽いよ
83デフォルトの名無しさん:2008/07/10(木) 10:45:48
>>51 です。
>>52
ありがとうございました。
84デフォルトの名無しさん:2008/07/10(木) 10:49:21
>>82
>>81で答え出てるのにわざわざ同じ回答を繰り返す理由は?
85デフォルトの名無しさん:2008/07/10(木) 11:04:18
元質問者だと、あの答えじゃそのままInvaridateしそうだからさ。
86デフォルトの名無しさん:2008/07/10(木) 11:18:52
>>84
そういう事ね
てかSW_ERASEやSW_INVALIDATEで良くね?
87デフォルトの名無しさん:2008/07/10(木) 11:19:44
まつがえた
>>86>>85宛てね
88デフォルトの名無しさん:2008/07/10(木) 11:40:02
ちなみに常にウィンドウ全体にBitBltするようなウィンドウではWM_ERASEBKGNDを潰しておくとちらつかなくていい、というのも覚えておこう
89デフォルトの名無しさん:2008/07/10(木) 12:32:34
WM_ERASEBKGNDを潰すのと、WNDCLASS(EX)::hbrBackgroundにNULLするのって同じ?
90デフォルトの名無しさん:2008/07/10(木) 13:14:42
hbrBackgroundがNULLならDefWindowProcが何もしないので結果的にはそうなる
9180:2008/07/10(木) 14:48:01
皆さんありがとうございます!!
非常に為になりました^^;)


いや〜〜、もっと勉強して、
皆さんの様な凄腕プログラマーにならなくてはと
思い知らされましたよ・・・。
92デフォルトの名無しさん:2008/07/10(木) 18:30:22
自作でエディターを作ろうと思っているのですが、
IMEの使い方がよくわからず困っています。
WM_IME系メッセージやImm系関数は調べてみたのですが、
そもそもWM_IME系のメッセージを受け取ることができません。
(EDITコントロールをサブクラス化すれば可能なようですが、あまりそうはしたくないです。)
どうしたらいいでしょうか...ご教授お願いします。
9392:2008/07/10(木) 18:31:30
すみませんsage忘れました...
94デフォルトの名無しさん:2008/07/10(木) 18:32:23
最近、EditやRichEditを貼っただけのエディタ作るのが流行ってるのか?
95デフォルトの名無しさん:2008/07/10(木) 18:46:08
>>92
ソースコード公開してるエディタのソースを読む。
MSDNの関連する項目をちゃんと読む。
作るのをやめる。
96デフォルトの名無しさん:2008/07/10(木) 19:58:58
WinHttp::IWinHttpRequestPtr の Send なんだけどさ。
Send(_variant_t body);
なんだけどさ。
これでバイト列を送りたいんだよね。

BYTE* byte に先頭アドレス、
int length に長さが入ってるとして、
これを_variant_tにする方法を誰か教えてください。
97デフォルトの名無しさん:2008/07/10(木) 20:33:03
ちゅっと聞きたいんだけど、ユニコードとマルティバイトをシィムレスに入れ替えるための
Tってあるじゃん。 _T(”パンツはいてない”) こんな感じのヤツ。
あれって、_T、__T、_TEXT、__TEXT、TEXT、って、一杯種類有るけど、誰の仕業?

単に互換性の問題なので? どれを使うのが正しいの?
98デフォルトの名無しさん:2008/07/10(木) 20:42:40
OpenFileMappingなどで開かれたファイルマッピングオブジェクトのハンドルから、そのオブジェクトのサイズを取得する方法は無いのでしょうか。
99デフォルトの名無しさん:2008/07/10(木) 21:33:27
>>96
VT_UI1型のSAFEARRAYを作ることになるな。
それなら_variant_tよりも、ATLのCComSafeArrayとCComVariantがお勧め。
このスレ的には、SafeArrayCreateVectorから始めるべきかもしれないが。
頑張って作って呼び出した結果がE_INVALIDARG、ってオチになるような気もするが。

>>97
winnt.h : __TEXT -> TEXT
tchar.h : __T -> _TEXT, _T
宣言としてはこういう風になってるな。
他のコンパイラを意識するならTEXT、気にしないなら_Tってところじゃね?
何故色々なパターンがあるのかは知らん。
TEXTも_TもVC4.0の頃から既にあったとは思うのだけど。
100デフォルトの名無しさん:2008/07/10(木) 23:36:19
多分当初はWin32APIのUNICODEとCランタイムの_UNICODEで独立して切り替える事を考えていたと思われる
101デフォルトの名無しさん:2008/07/10(木) 23:56:59
つまり俺は最強だったという事だな?
102デフォルトの名無しさん:2008/07/11(金) 00:13:48
いや最強なのは俺に決まってるだろ?
103デフォルトの名無しさん:2008/07/11(金) 00:35:11
いや俺だ!
104デフォルトの名無しさん:2008/07/11(金) 00:57:05
お前らじゃ無理

最強妄想キャラクター議論スレ18
http://ex24.2ch.net/test/read.cgi/ranking/1208699740/
105デフォルトの名無しさん:2008/07/11(金) 05:35:08
教えてください
アクティブウィンドウの画面をコピー(Alt+Screen)して
Bitmap等にしてファイルにするようなAPI関数みたいなものはありませんでしょうか?
106デフォルトの名無しさん:2008/07/11(金) 05:38:15
はい
107デフォルトの名無しさん:2008/07/11(金) 08:04:55
Alt+Screen???
108デフォルトの名無しさん:2008/07/11(金) 08:37:20
Alt+PrintScreenのことだろ

アクティブなウィンドウのハンドルを取得して
そのDCを取ってきて
メモリDCにコピーして
それを好きな形式でファイルに書けばいい
109デフォルトの名無しさん:2008/07/11(金) 08:41:02
>>108
そんな事は聞いていない
>>105はAPIが「ある」か「ない」かを聞いているだけだろ
日本語読めないのかね?
110デフォルトの名無しさん:2008/07/11(金) 09:17:49
だからあるって言ってるだろ
日本語読めても理解できなきゃ
意味がないんだよキミ
111デフォルトの名無しさん:2008/07/11(金) 09:25:56
アクティブウィンドウの画面を(指定されたファイル名で)Bitmap形式にて保存する
という動作のAPI は無い
112デフォルトの名無しさん:2008/07/11(金) 09:28:32
ないってば
113デフォルトの名無しさん:2008/07/11(金) 09:46:56
GetDCしてBitBltすればいいじゃん
114デフォルトの名無しさん:2008/07/11(金) 09:56:30
>>110
在日の逆ギレは見苦しいよ
115デフォルトの名無しさん:2008/07/11(金) 12:58:11
荒らしてるだけのやつは消えろ
116デフォルトの名無しさん:2008/07/11(金) 15:15:02
質問者が聞いていない事まで答えるから荒れるのだろ
俺ってこんな事まで知ってるぞとか自慢してるみたいでキモイだけだから自重しろ
117デフォルトの名無しさん:2008/07/11(金) 15:30:46
118デフォルトの名無しさん:2008/07/11(金) 15:37:49
>>117
なんで分かったんだよw
119デフォルトの名無しさん:2008/07/11(金) 15:38:54
質問者の揚げ足取ってるだけのやつこそ何の役にも立ってないだろ。
自分のストレス解消のためにこのスレ使うのはやめてくれないか。
120デフォルトの名無しさん:2008/07/11(金) 15:39:54
121デフォルトの名無しさん:2008/07/11(金) 15:42:05
122デフォルトの名無しさん:2008/07/11(金) 15:49:10
>>119
荒らしてストレス解消するのはもちろん迷惑だが、
知識をひけらかしただけの回答で自己陶酔してストレス解消するのは迷惑じゃないのか。
123デフォルトの名無しさん:2008/07/11(金) 15:52:43
両者そこまでにしような。
言いたいことは一通り言ったろう?
124デフォルトの名無しさん:2008/07/11(金) 15:58:46
〜結論〜

アクティブウィンドウの画面をBMP形式で保存するという動作のAPIは無い

が、

複数のAPIを組み合わせば可能。(google: GetDC BitBlt)
BMPを書き出すのが面倒なんだけどね。まあGDI+でも使えば比較的簡単か。
125デフォルトの名無しさん:2008/07/11(金) 19:42:40
質問者の投稿に問題があると思うなら具体的に指摘した方がいい
それが面倒なら単にスルーするべき
単に煽っても何も伝わらなくて同じことを繰り返すだけだから

代替案を提示するのは資料的に価値があるのでありがたい
126デフォルトの名無しさん:2008/07/11(金) 19:44:06
CreateDIBSection
OleCreatePictureIndirect
SHCreateStreamOnFile
IPicture::SaveAsFile
たしかこの組み合わせでやれば、フォーマットを意識せずに保存できたと思う。
素直にBITMAPFILEHEADER書き出し方が早い気もするけど。
127デフォルトの名無しさん:2008/07/11(金) 20:04:45
> CreateDIBSection
こいつの段階でBITMAPINFOを用意するのだから

> 素直にBITMAPFILEHEADER書き出し方が早い気もするけど。
ということになるのでは?

それにOle系はOleInitializeやCoInitializeの初期化がめんどい。
128デフォルトの名無しさん:2008/07/11(金) 20:20:42
>>125
訳:代替案まで提示できる俺って天才
129デフォルトの名無しさん:2008/07/11(金) 20:36:51
技術者は揚げ足取るの大好きだからなw

仕事場での話しなんだけど他人が作ったモジュールの
テストとかでバグみつけたら
「バグだ酷い作りだ。バグだ酷い作りだ」
と喚き散らす奴とかよく見かけるけど、
そういうの見ると「こいつテストの意味わかってんの?」とよく思うw


だから揚げ足なんて気にせず的外れで馬鹿な質問を
どんどんすればいい。謙虚で低姿勢にしてれば小馬鹿に
しながらでも住人が必ず答えてくれる。

揚げ足さえ気にしなければ比較的良スレだよここは
130デフォルトの名無しさん:2008/07/11(金) 21:12:35
あとはシナチョンが全滅すれば、さらに良スレになること請け合い。
131デフォルトの名無しさん:2008/07/11(金) 21:19:36
>技術者は揚げ足取るの大好きだからなw
ほんと全てのジャンルの質問スレで総じて質問に対する揚げ足取る奴おおいよねぇ
性格悪いって思うよ
常にエスパーしろとは言わないけど黙ってればいいといつも思う
132デフォルトの名無しさん:2008/07/12(土) 01:05:46
揚げ足取られてるのは質問者じゃなくて馬鹿な回答者じゃないの?
133デフォルトの名無しさん:2008/07/12(土) 01:40:21
GetPrivateProfileStringって

[HOGE]
PIYO=""""

こういうの読めないのね
134デフォルトの名無しさん:2008/07/12(土) 01:41:20
場合によると思うよ
135デフォルトの名無しさん:2008/07/12(土) 02:02:59
誘導されてこちらまで来ました。
現在テンプレートマッチングのプログラムを作っているのですが、
テンプレートマッチングでマッチングした部分の色を変えられず苦労しています。。
画像のある特定の範囲だけの色を変えるのってどうすればいいのでしょうか?
136デフォルトの名無しさん:2008/07/12(土) 02:17:08
>>135
こっちで聞けば?

画像処理 その10
http://pc11.2ch.net/test/read.cgi/tech/1197759782/
137デフォルトの名無しさん:2008/07/12(土) 02:19:00
画素にアクセスして数値をいじればいいよ
138デフォルトの名無しさん:2008/07/12(土) 16:36:58
背景をうまく透過するにはどうすればいいでしょうか?
バックグラウンドとWM_PAINT処理時にNULL_BURSHを使ってできそうなのですが
ウィンドウを動かすときにクライアント領域の下に隠れてるアプリが再描画してくれません
139デフォルトの名無しさん:2008/07/12(土) 16:48:49
リージョン
レイヤードウィンドウ
140デフォルトの名無しさん:2008/07/12(土) 17:22:44
どうもです
141デフォルトの名無しさん:2008/07/12(土) 20:26:09
inlineinputってどうやるの?
142デフォルトの名無しさん:2008/07/12(土) 20:29:20
ビールスの作り方おしえて
143デフォルトの名無しさん:2008/07/12(土) 20:43:52
てえしお方り作のスルービ
144デフォルトの名無しさん:2008/07/12(土) 20:58:32
waveOutGetPosition以外に再生位置を取得できる関数ってありますか?
145デフォルトの名無しさん:2008/07/12(土) 21:02:59
waveOutGetPositionと同じことをする関数がたくさんあっても単なる無駄じゃないかと思うんだが、なぜそんなものを必要とする?
146デフォルトの名無しさん:2008/07/12(土) 21:03:34
いやちょっと気になっただけです
147デフォルトの名無しさん:2008/07/12(土) 21:19:35
if(!(GetVersion() & 0x80000000)) return;

古いコードの中でGetVersion関数を使った↑のコードがあるのですが
このでGetVersion関数の戻り値をまとめたところが無いため意図がわからず困っています

これは 9x系ではないなら return; という機能になるのでしょうか? 教えていただけると助かります
148デフォルトの名無しさん:2008/07/12(土) 21:19:47
気にならないでください
149デフォルトの名無しさん:2008/07/12(土) 21:21:17
自己解決しました
ありがとうございました
150デフォルトの名無しさん:2008/07/12(土) 21:30:02
>>147
いつの間にかAPIの説明からこれが消えてるなー

Platform            High order bit   Low order byte (major version number)
Windows NT          zero           3 or 4
Windows 95             1              4
Win32s with Windows 3.1   1              3

For Windows NT and Win32s, the remaining bits in the high order word specify the build number.
For Windows 95 the remaining bits of the high order word are reserved.
151デフォルトの名無しさん:2008/07/12(土) 21:37:51
>>150
即レス感謝です 助かります
なんとわかりづらい関数……
152デフォルトの名無しさん:2008/07/12(土) 21:38:42
コモンダイアログから開いたwaveファイルを再生し、
任意のキーが押されたときの,wavの再生時刻をメッセージBOXなどに出すにはどうしたらいいでしょうか?

153デフォルトの名無しさん:2008/07/12(土) 21:39:46
>>150
もはや過去の関数だもん。しかたない
154デフォルトの名無しさん:2008/07/12(土) 21:42:06
バージョン判定なんて不要だろ
最も普及しているバージョンのWindowsだけ対応してりゃいいじゃない
155デフォルトの名無しさん:2008/07/12(土) 23:15:52
環境:Windows XP Home, Visual Studio 2005 Academic Editionで、
WIN32APIとC++を使った、ダイアログをメインウインドウのような用途で動かしているアプリケーションを作成しています。

コンボボックスの選択されている項目が変更された瞬間をつかまえて、
他のコンボボックスの内容を書き換えたいのですが、
どんなメッセージを指定すれば、コンボボックスの項目変更を捕まえることができるでしょうか?

…質問の情報不足があれば、またおっしゃってください。
よろしくお願いいたします
156デフォルトの名無しさん:2008/07/12(土) 23:16:58
しまった、新規の質問ですので、ageさせてください
157デフォルトの名無しさん:2008/07/12(土) 23:45:51
情報不足を心配する前に検索不足を自覚しよう
158デフォルトの名無しさん:2008/07/12(土) 23:53:02
>>157
検索は・・・かれこれ1時間弱ほど
検索したキーワードはグーグルでコンボボックス コントロール メッセージ 変更 イベント win32API ダイアログなど
MSDNでのMessage ComboBoxで検索など

ちょっと、キーワードのネタ切れもしてきて、直接こちらでお聞きするという選択を最終手段としてとってしまいました

何か、ヒントやウェブページのリンクだけでもかまいませんので、お教え願えませんか?
159デフォルトの名無しさん:2008/07/12(土) 23:58:49
俺は3分で見つけたけどなぁ。
CBN_EDITCHANGE, CBN_EDITUPDATE, CBN_SELCHANGEこの辺じゃないか?
160デフォルトの名無しさん:2008/07/13(日) 00:01:45
>>159
まだ未確認ですが、ありがとうございます!
161デフォルトの名無しさん:2008/07/13(日) 00:26:49
普通見つかるもんでは
162デフォルトの名無しさん:2008/07/13(日) 00:45:23
普通見つからないよ
163デフォルトの名無しさん:2008/07/13(日) 00:47:40
なんでWinAPIはC言語なの?
164デフォルトの名無しさん:2008/07/13(日) 01:00:27
早い
165デフォルトの名無しさん:2008/07/13(日) 01:07:56
VS2008です。

プロシージャの中で
case MM_WON_DONE
でwaveファイルの再生が終わったときに処理を書きたいんですが、
コンパイルするとMM_WON_DONEが定義されてないって出るんですが・・・
使い方間違ってます?
166デフォルトの名無しさん:2008/07/13(日) 01:18:46
WOMでしたね・・・すいません
16737:2008/07/13(日) 02:07:12
>>38
ありがとうございます!リッチエディットです。

>> EN_IMECHANGE 捕まえて ImmGetContext() 〜 ImmSetCompositionFont()
これ参考にさせて頂いて以下のようなコードを書いてみたのですが、

--------------------------------------------
LPCWSTR window_class = _T("SampleClass");
LPCWSTR window_title = _T("title");
LWND hWND = FindWindowW(window_class, window_title);
HIMC hIMC = ImmGetContext(hWND);
---------------------------------
みたいなコードを書いてみたのですが、
HIMC hIMC = ImmGetContext(hWND);
のところで

undefined reference to `ImmGetContext@4'
のようなエラーが出ます。

これは該当のウィンドウが見つからなかった、ということなのでしょうか・・
アプリケーションのウィンドウを生成する時に使うクラス名と、生成したウィンドウのタイトルを引数にすればよいのですよね・・?
どなたかアドバイス頂けると幸いです。

168デフォルトの名無しさん:2008/07/13(日) 02:14:05
>>167
1.まずヘルプでImmGetContextの説明を開く
2.必要なライブラリを調べる
3.リンクする
169デフォルトの名無しさん:2008/07/13(日) 02:47:10
LPCWSTR window_class = _T("SampleClass");
LPCWSTR window_title = _T("title");

こんなの書いてる時点でWin32の基礎も分かって無さそうだなあ
てか変数に代入する必要あるか?
17037:2008/07/13(日) 03:09:07
レスありがとうございます。

>> 169
HWND hWND = FindWindowW(_T("SampleClasss"), _T("title"));
これでよかったですね。。
Win32apiもここ2〜3日で触り始めたばっかりですがC++も初心者です(^^);

>> こんなの書いてる時点でWin32の基礎も分かって無さそうだなあ
どこがマズいのでしょうか??


>>168
imm.hだけではだめだったんですね・・
libimm32.aをリンクしたらエラー出ずにビルドできました。(MinGWです。)ありがとうございますm(_ _)m


ただビルドは出来たのですが、ちゃんとIMEとやりとりできていないようです・・
ImmGetOpenStatus() も試してみましたがIMEのON状態が検地できません。
FindWindowW() で正しいウィンドウハンドルを取得できていないってことでしょうか。
171デフォルトの名無しさん:2008/07/13(日) 03:10:46
>>170
>> どこがマズいのでしょうか??
何のために_Tを使ってるのかよく考えろ。

HWND hWND = FindWindowW(_T("SampleClasss"), _T("title"));
これもおかしいだろ。
172デフォルトの名無しさん:2008/07/13(日) 05:08:05
>>170
A版関数とW版関数の違いはWin32apiで必須の知識なんで注意
173デフォルトの名無しさん:2008/07/13(日) 06:49:30
ここであれこれ聞く前に基礎を勉強した方がいいと思うよ
174デフォルトの名無しさん:2008/07/13(日) 10:01:21
C#とか使わずにAPI直叩きするメリットってなに?
175デフォルトの名無しさん:2008/07/13(日) 10:11:26
・速い
・かゆいところに手が届く
・C#の裏で行われていることについて理解が深まる

当てはまらなければC#使ってなさい。
176デフォルトの名無しさん:2008/07/13(日) 12:02:29
・このスレで>>174のような奴を見下せる
177デフォルトの名無しさん:2008/07/13(日) 12:44:51
まぁ結局面倒だからC#に行くんだけどな
178デフォルトの名無しさん:2008/07/13(日) 12:53:25
C#はCERとかすごく面倒だった気が
179デフォルトの名無しさん:2008/07/13(日) 13:17:37
Constrained Execution Region?
C#でなきゃ楽になるって話でもないような……
180デフォルトの名無しさん:2008/07/13(日) 15:02:01
結論:C#は神 Win32はうんこ
181デフォルトの名無しさん:2008/07/13(日) 15:16:52
C#じゃやりたいことがちっともできん
お遊び用の言語だな
182デフォルトの名無しさん:2008/07/13(日) 15:17:32
みんな何かしらの言語を使ってて、必要に応じてAPIを使ってるんで、比べるもんじゃないだろ。
183デフォルトの名無しさん:2008/07/13(日) 15:30:24
>>181
やりたい事ができないのは言語のせいじゃなくてお前の能力のせい
184デフォルトの名無しさん:2008/07/13(日) 15:34:16
はいはい
185デフォルトの名無しさん:2008/07/13(日) 16:23:02
はいはい
186デフォルトの名無しさん:2008/07/13(日) 16:52:09
うんうん
187デフォルトの名無しさん:2008/07/13(日) 19:15:42
わんわん
188デフォルトの名無しさん:2008/07/13(日) 19:19:20
にゃーにゃー
189デフォルトの名無しさん:2008/07/13(日) 19:38:01
特定のエディットボックスで入力された
キャラクターコード(WM_CHARのwParam))を取得したい場合
対象エディットボックスをサブクラス化させないとできないのでしょうか?
190デフォルトの名無しさん:2008/07/13(日) 22:51:27
ボタンって子ウィンドウを使ってそれっぽく見せてるの?
191デフォルトの名無しさん:2008/07/13(日) 23:31:19
うん
192デフォルトの名無しさん:2008/07/13(日) 23:49:14
そうか、おれがんばるよ
193デフォルトの名無しさん:2008/07/14(月) 05:22:25
>>189
EN_UPDATEとかそういうNotificationに乗ってやってくるかどうか。
来るならそれ使えばいいし、来ないならサブクラス化。
194デフォルトの名無しさん:2008/07/14(月) 07:22:41
>>193
調べてないなら回答するなカス
195デフォルトの名無しさん:2008/07/14(月) 07:24:48
>>194
そんくらい自分で調べろカス
196デフォルトの名無しさん:2008/07/14(月) 07:35:30
EN_UPDATEやそれ系の通知でそんな情報は貰えねーよ

つうか、調べもしないで的外れな回答する奴って何考えてるのかね?
余所の掲示板ならポイント稼ぎの為にそういう事してる馬鹿がいるが2ちゃんじゃそんなの無意味だろうに
197デフォルトの名無しさん:2008/07/14(月) 09:14:22
>>196
まったくだ。
回答するなら調べてテストコード書いて確認してからにするよなJK
198デフォルトの名無しさん:2008/07/14(月) 09:47:52
で、テストコード書いて確認したにもかかわらず、
質問者からの返事は一言、「だめでした」
199193:2008/07/14(月) 10:05:31
>>196
的外れじゃないよ?
回答のとおりに調べれば正解にたどり着くもの。
質問者にとって役に立つでしょう。
役に立つのに何で怒ってんの?
200デフォルトの名無しさん:2008/07/14(月) 11:21:24
キチガイの相手するな馬鹿。しかもわざわざageて
201デフォルトの名無しさん:2008/07/14(月) 12:01:16
>>199=基地外
202デフォルトの名無しさん:2008/07/14(月) 12:19:11
適当にいい加減なレスして指摘されたら逆ギレする奴、価格COMとかでよく見かけたなあw
中の人は多分、プライドだけは人一倍高いオッサンだと思うけど
203デフォルトの名無しさん:2008/07/14(月) 12:36:56
唐突に価格COMで見かけたとか、何言っちゃってんの
204デフォルトの名無しさん:2008/07/14(月) 12:51:01
いろいろと暑いよ
205デフォルトの名無しさん:2008/07/14(月) 12:53:36
プライドが高いだけのオッサンは何処にでもいるという事だろう
206デフォルトの名無しさん:2008/07/15(火) 02:30:52
・知識をひけらかして悦に浸る
・人の揚げ足取ったり見下すのが大好き
・基本的に性格が悪い
・プライドが異様に高い
・自分の主張は絶対に譲らない頑固者

1 つでも該当する技術者は周囲から嫌われやすいので注意しましょう。
207デフォルトの名無しさん:2008/07/15(火) 02:49:43
人類の7割が最低でも1つ当てはまる気がする
208デフォルトの名無しさん:2008/07/15(火) 03:42:00
悦に入るもの浸るのは優越感
209デフォルトの名無しさん:2008/07/15(火) 03:59:59
>>208
・人の揚げ足取ったり見下すのが大好き
210デフォルトの名無しさん:2008/07/15(火) 04:03:03
啓蒙主義なんだよ
211デフォルトの名無しさん:2008/07/15(火) 04:08:39
まあこのスレは嫌われ者の巣窟だろ
212デフォルトの名無しさん:2008/07/15(火) 08:45:14
夕べの4チャンネルの「深イイ話」だったか、いじめの話題で、さかなクン
の話の紹介があって、海では争いなく泳ぐのに水槽に入れるといじめが始ま
るといっていた。関心が内向きになるとそういう性向になるんだろう。

だからと言ってはナンだが、よその国では敵を海外に作って、国民の目を
そっちへ向けさせ、国内の矛盾への関心を希薄にする手も取られる。
213デフォルトの名無しさん:2008/07/15(火) 10:11:23
日本も似たような物だろ
毒入り餃子だ何だってマスゴミに洗脳されてる
214デフォルトの名無しさん:2008/07/15(火) 10:30:03
>>209
こういう開き直りは嫌われる条件には入っていないのかな?
215デフォルトの名無しさん:2008/07/15(火) 11:13:12
>>214
こういうしつこい性格は嫌われる条件には入っていないのかな?
216デフォルトの名無しさん:2008/07/15(火) 11:17:27
 
        *'``・* 。
        |     `*。
       ,。∩      *    糞スレストッパ〜
      + (^ω^) *。+゚
      `*。 ヽ、  つ *゚*
       `・+。*・' ゚⊃ +゚
       ☆   ∪~ 。*゚
        `・+。*・ ゚
 
217デフォルトの名無しさん:2008/07/15(火) 11:17:42
いや、つまんないから
218デフォルトの名無しさん:2008/07/15(火) 12:36:18
>>216
ワロタ
219デフォルトの名無しさん:2008/07/15(火) 16:08:24
>>208は揚げ足取りじゃないだろう。
自分だったら間違いを直してくれて感謝するだろうな。
220デフォルトの名無しさん:2008/07/15(火) 16:48:19
またまた〜
221デフォルトの名無しさん:2008/07/15(火) 16:50:40
すっかり雑談スレですね。
222デフォルトの名無しさん:2008/07/15(火) 17:02:23
すっかりってずっと前からじゃん
223デフォルトの名無しさん:2008/07/15(火) 17:42:17
子ウィンドウ(CreateWindowでWS_CHILDしたもの)のウィンドウメッセージを親ウィンドウが拾うにはどうすれば良いですか?
224デフォルトの名無しさん:2008/07/15(火) 17:46:40
サブクラス化するかスーパークラス化するかフックする
225デフォルトの名無しさん:2008/07/15(火) 18:01:39
すみませんが、そのサブクラス化あるいはスーパークラス化というのはどうすれば良いんでしょうか?
226デフォルトの名無しさん:2008/07/15(火) 18:04:14
>>225
どうして調べもしないで質問するのかね?
227デフォルトの名無しさん:2008/07/15(火) 18:10:25
親子関係だと、何がしたいかによっては子への通知が親に行くように用意されてるものもある。
サブクラス化は親子じゃなくても、自前のプロシージャを通過するようにできる。
228デフォルトの名無しさん:2008/07/15(火) 18:26:19
>>227
いや別にそんなこと聞かれてないから。
229デフォルトの名無しさん:2008/07/15(火) 18:29:19
だから、何がしたいのか聞いてるんだよ
230デフォルトの名無しさん:2008/07/15(火) 18:29:40
>>226
調べたら解決しました。不快なおもいをさせてしまいすみません。

>>227
関係ないです。ありがとうございました。
231デフォルトの名無しさん:2008/07/15(火) 18:30:04
>>228
質問者じゃないならすっこんでな
232デフォルトの名無しさん:2008/07/15(火) 18:31:15
>>227
関係ないです。
233デフォルトの名無しさん:2008/07/15(火) 18:31:58
親子関係じゃないということか、spyみたいなのを作りたいのかな。
234デフォルトの名無しさん:2008/07/15(火) 18:34:40
>>233
どうでもいいです。
235デフォルトの名無しさん:2008/07/15(火) 18:42:47
>>211
実は一人なんじゃないか。
236デフォルトの名無しさん:2008/07/15(火) 19:05:44
一人で24時間レスしてるのか。頑張ってるなぁ。


んな訳ねーだろ
237デフォルトの名無しさん:2008/07/15(火) 20:56:27
\_____ ___________________________/
         ∨
           ___                _
       / ____ヽ           /  ̄   ̄ \
       |  | /, −、, -、l           /、          ヽ きみ頭だいじょうぶ?
       | _| -|○ | ○||         |・ |―-、       |
   , ―-、 (6  _ー っ-´、}         q -´ 二 ヽ      |
   | -⊂) \ ヽ_  ̄ ̄ノノ          ノ_ ー  |     |
    | ̄ ̄|/ (_ ∪ ̄ / 、 \        \. ̄`  |      /
    ヽ  ` ,.|     ̄  |  |         O===== |
      `− ´ |       | _|        /          |
238デフォルトの名無しさん:2008/07/15(火) 21:07:24
SHGetFileInfoを使ったら解放しないとメモリリークするって
記述を見つけたんだけど何を解放してあげればいいの?
定義がDWORD_PTR *SHGetFileInfo
ってなってるから
DWORD *pRet = SHGetFileInfo()
delete pRet
とかってやればいいの?

239デフォルトの名無しさん:2008/07/15(火) 21:39:39
ImageList_Destroy((HIMAGELIST)SHGetFileInfo( ... ));
240デフォルトの名無しさん:2008/07/15(火) 22:13:59
>>238
MSDN嫁
アイコンハンドルのことだ。
>If SHGetFileInfo returns an icon handle in the hIcon member of the SHFILEINFO structure pointed to by psfi,
>you are responsible for freeing it with DestroyIcon when you no longer need it.
241デフォルトの名無しさん:2008/07/16(水) 00:09:26
すみません。
サウンド、プログラムの起動で音がなる設定をしている環境で、
CreateProcessを使ってバックグラウンドでexeを動かした時も音が鳴ってしまいますが
これをプログラムのコードで抑止する方法がありますか?

242デフォルトの名無しさん:2008/07/16(水) 00:12:21
またウイルス作成者か
243デフォルトの名無しさん:2008/07/16(水) 00:29:52
一時的にミュートする
244241:2008/07/16(水) 00:47:17
>>243
やっぱそれしかないですかね…
ありがとう御座いました。
245デフォルトの名無しさん:2008/07/16(水) 07:29:47
コンソールプログラムで
コマンドライン引数処理したいのですが
パースしてくれるような関数ってありますかね?
246デフォルトの名無しさん:2008/07/16(水) 07:35:05
>>245
コンソールならエントリポイントを
int main(int argc, char *argv[])
にしてみては?

for(int i=0;i<argc;i++) printf("%s\n", argv[i]);
でどんなものが渡されるか確認できる
247デフォルトの名無しさん:2008/07/16(水) 07:51:49
CommandLineToArgvW
248デフォルトの名無しさん:2008/07/16(水) 08:05:15
>>247
A版とペアになってないしargv[argc]がNULLでなかったりするから却下
249デフォルトの名無しさん:2008/07/16(水) 08:12:48
何でもかんでもNULL終端に頼るな。
250デフォルトの名無しさん:2008/07/16(水) 08:39:36
>>249
ばーか
argv[argc]はNULLでないといけないんだよ
251デフォルトの名無しさん:2008/07/16(水) 08:42:16
気になるなら wrap しろよ
252デフォルトの名無しさん:2008/07/16(水) 08:42:45
>>249
↑話を理解してない馬鹿
253デフォルトの名無しさん:2008/07/16(水) 08:45:02
argv[argc]=NULLも知らないC言語初心者は来なくていいよ
254デフォルトの名無しさん:2008/07/16(水) 08:48:50
教えてよ
255デフォルトの名無しさん:2008/07/16(水) 09:15:17
早く教えてよ
256デフォルトの名無しさん:2008/07/16(水) 09:35:06
何を?
257デフォルトの名無しさん:2008/07/16(水) 10:35:20
知らないならレスしないでください
258デフォルトの名無しさん:2008/07/16(水) 10:43:44
じゃ早く教えてよ
259デフォルトの名無しさん:2008/07/16(水) 11:34:30
早く教えなさい
260デフォルトの名無しさん:2008/07/16(水) 12:25:26
>>245
質問がよく分からないけど、
getoptみたいなのがほしいってこと?
261デフォルトの名無しさん:2008/07/16(水) 12:34:08
8ビットの時代から getarg() ってを使っているが、標準じゃないのか。
262デフォルトの名無しさん:2008/07/16(水) 12:42:32
8ビット……ファミコンですね、分かります
263デフォルトの名無しさん:2008/07/16(水) 12:44:07
CP/Mも8bit
264デフォルトの名無しさん:2008/07/16(水) 14:27:28
教えてよ
265デフォルトの名無しさん:2008/07/16(水) 14:27:55
早 く 教 え れ
266デフォルトの名無しさん:2008/07/16(水) 14:32:51
何を?
267デフォルトの名無しさん:2008/07/16(水) 14:33:22
知らないならレスしないでください
268デフォルトの名無しさん:2008/07/16(水) 14:58:32
じゃ早く教えてよ
269デフォルトの名無しさん:2008/07/16(水) 15:17:54
何を?
270デフォルトの名無しさん:2008/07/16(水) 15:44:28
質問です。
キーコードをVK_0のようなバーチャルキーの文字列に変換したいのですが、256個の配列をもつくらいしか手段はないのでしょうか?
VirtualKeyToString(int vkey);
みたいなものがあればと思うのですが・・・
271デフォルトの名無しさん:2008/07/16(水) 15:55:38
ない
272デフォルトの名無しさん:2008/07/16(水) 15:57:02
256個ぐらい作ればいいだろ
273デフォルトの名無しさん:2008/07/16(水) 16:30:34
256個くらい手動でつくればいいだなんていう、まともなプログラマがいるだろうか?
274デフォルトの名無しさん:2008/07/16(水) 16:37:46
お前の常識で考えている内は答えは出ない
お前が自分で考えてるもの以外答えと認めないだろうから

黙って書け
275デフォルトの名無しさん:2008/07/16(水) 16:42:06
手動で作れば良いんだ、っていうのはまさか
buff_0 = ...
buff_1 = ...
:
:
buff_255 = ...
っていうのを言ってるんじゃなかろうな。
276デフォルトの名無しさん:2008/07/16(水) 17:08:25
久々にまともな質問がきたと思ったら、一瞬にして荒らしに食われたな
そろそろ通報レベルなんだろうか?
277デフォルトの名無しさん:2008/07/16(水) 17:12:59
VK のうち a-z 0-9 はそのままアスキーコードでなかったっけ?
↑は たまたまで、それを期待して実装はマズイん?
278デフォルトの名無しさん:2008/07/16(水) 17:18:28
>>270
VK_0とかって独自の定義じゃなくてどこかで定義されてたっけ?
279デフォルトの名無しさん:2008/07/16(水) 17:20:49
MapVirtualKeyとかGetKeyNameTextとかでテキトーにいじればいいんでない?
280デフォルトの名無しさん:2008/07/16(水) 17:21:28
>>278
マクロ自体は WinUser.h にある
"VK_0" のような文字列化を望んでいるらしいので どうしようね? って話
281デフォルトの名無しさん:2008/07/16(水) 17:30:44
>>280
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinUser.h
を見てみたんだけどVK_0の付近はこんなになってた

#define VK_INSERT 0x2D
#define VK_DELETE 0x2E
#define VK_HELP 0x2F

/*
* VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
* 0x40 : unassigned
* VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
*/

#define VK_LWIN 0x5B
#define VK_RWIN 0x5C
#define VK_APPS 0x5D
282280:2008/07/16(水) 17:34:09
>>281
あ 0-9 A-Z に限り
VK_xx ってマクロ定義そのものは居なくて ASCII で比較せいや ってことか
283デフォルトの名無しさん:2008/07/16(水) 17:34:39
自分なら配列作る。
284デフォルトの名無しさん:2008/07/16(水) 17:37:48
この辺が興味深い

/*
* NEC PC-9800 kbd definitions
*/
#define VK_OEM_NEC_EQUAL 0x92 // '=' key on numpad

/*
* Fujitsu/OASYS kbd definitions
*/
#define VK_OEM_FJ_JISHO 0x92 // 'Dictionary' key
#define VK_OEM_FJ_MASSHOU 0x93 // 'Unregister word' key
#define VK_OEM_FJ_TOUROKU 0x94 // 'Register word' key
#define VK_OEM_FJ_LOYA 0x95 // 'Left OYAYUBI' key
#define VK_OEM_FJ_ROYA 0x96 // 'Right OYAYUBI' key
285デフォルトの名無しさん:2008/07/16(水) 17:40:04
こんなのでいいだろ
VK_0 - VK_9、VK_A - VK_Zは自分で何とか汁

struct keypair { UINT code; LPCSTR name; };
#define def_map(c) { c, #c }
static const struct keypair kmap[] =
{
 def_map(VK_F1),
 def_map(VK_F2),
 // ここに全部定義する
 { 0, 0 },
};
LPCSTR getname(UINT code)
{
 const struct keypair* p = kmap;
 for ( ; p->code && p->code != code ; p++);
 return p->code ? p->name : "ねーよ";
}
int main()
{
 puts(getname(VK_F2));
 return 0;
}
286デフォルトの名無しさん:2008/07/16(水) 18:14:56
BOOST_PP_STRINGIZEを使ってマクロで展開するのも面白そう
287デフォルトの名無しさん:2008/07/16(水) 20:20:15
ttp://www.webcom-corp.co.jp/old/Win32FAQ/faq/q00024.htm

にNT4.0ではCreateProcessでコンソールアプリ起動すると
リークすると書いてありますが、この問題は2000/XPにも
当てはまるのでしょうか?

288デフォルトの名無しさん:2008/07/16(水) 21:02:04
ttp://www.oki.com/jp/FSC/soft/rc_readme.txt
たぶんこれも、それと同じ理由だろうなあ。
NT4.0SP3の修正リストがネット上に見つけられないので何ともいえないが、
NT4.0のSPで修正されて、2000以降は問題ないと考えて良いんじゃないかと。
289デフォルトの名無しさん:2008/07/16(水) 21:02:18
conimeよりimejpmgrのリーク?が気になる
USBメモリなんかの取り外しでエラー出ると大抵こいつが原因だし
290デフォルトの名無しさん:2008/07/16(水) 22:19:19
>>270
みんな意地悪しているのか、本気で知らないのか分からんが
そのままのAPIあるよ。つGetKeyNameText
291デフォルトの名無しさん:2008/07/16(水) 22:23:02
自分が必要なAPIがあるのかどうか探すのってけっこう骨が折れるよね
292デフォルトの名無しさん:2008/07/16(水) 22:31:41
>>291
俺の場合。

○○(ソフト)の××(機能)ってどんなAPIで実現しているのだろう・・・
→即OllyDbg
→こんなAPIあったのか・・・
→Google検索

Windowsの××(機能)ってどんなAPIで実現しているのだろう・・・
→即OllyDbg
→非公開APIかよ・・・
→構わず使っちゃえ!
293デフォルトの名無しさん:2008/07/16(水) 23:11:15
>>260
うんgetopt欲しいの頂戴?
294デフォルトの名無しさん:2008/07/16(水) 23:31:52
>>293
どうぞ

int getopt(int argc, char *const argv[], const char *optstring)
{
295デフォルトの名無しさん:2008/07/17(木) 00:21:28
どっかのサイトにfree getoptってソースが落ちてたよ。
296デフォルトの名無しさん:2008/07/17(木) 00:56:20
}
297デフォルトの名無しさん:2008/07/17(木) 13:26:54
www.hogehoge.comというURLを、
デフォルトのブラウザで開くにはどうしたら良いでしょうか??

ググッても良く分からなかったので、
よろしくお願い致します。
298デフォルトの名無しさん:2008/07/17(木) 13:32:00
ShellExecuteでいいんじゃね?
299デフォルトの名無しさん:2008/07/17(木) 14:11:10
>>297
inline void browseURL(HWND window, const std::wstring& url)
{ ShellExecute(window, 0, L"rundll32.exe", (L"url.dll,FileProtocolHandler " + url).c_str(), 0, SW_SHOWNORMAL); }
300デフォルトの名無しさん:2008/07/17(木) 16:08:48
>>290
本気で知らない奴が、えらそうに講釈たれないでほしいわな
>>271-272とか最悪すぎるわ
301デフォルトの名無しさん:2008/07/17(木) 16:20:37
全くだ
知らんならレスすんなやクズども
302デフォルトの名無しさん:2008/07/17(木) 16:47:14
>>300
GetKeyNameTextで"VK_0"という文字列は得られないだろ

本気で知らない奴が、えらそうに講釈たれないでほしいわな
>>300-301とか最悪すぎるわ
303デフォルトの名無しさん:2008/07/17(木) 17:19:39
全くだ
知らんならレスすんなやクズども
304デフォルトの名無しさん:2008/07/17(木) 17:26:34
>>301-303
ひとりで何やってんの・・・?
305デフォルトの名無しさん:2008/07/17(木) 17:36:21
面白くないよ
306デフォルトの名無しさん:2008/07/17(木) 19:39:22
>>305
どの面が白くないんだ?
307デフォルトの名無しさん:2008/07/17(木) 20:41:16
>>300-301
これはひどい・・・
308デフォルトの名無しさん:2008/07/17(木) 22:08:48
全くだ
知らんならレスすんなやクズども
309デフォルトの名無しさん:2008/07/17(木) 22:24:05
ここの連中は性格が悪すぎる
会社でもこうなのか
2ちゃん弁慶なのか
310ハッカーの神様:2008/07/17(木) 22:32:51
当然2ちゃん弁慶に決まってるだろうがwwwwwwwwwwww
俺もそうだwwwwwwwwwwwww
311デフォルトの名無しさん:2008/07/17(木) 22:36:38
俺はム板弁慶だっつーの
312デフォルトの名無しさん:2008/07/17(木) 23:13:12
他の板に行ったらしおらしくなるのか。
313デフォルトの名無しさん:2008/07/17(木) 23:30:45
もっとひどくなるよ
大丈夫
ム板の評判を貶めるようなことだけはしないと約束する
314デフォルトの名無しさん:2008/07/17(木) 23:32:41
他の板じゃ俺なんかかすんでしまうだけ
315ハッカーの神様:2008/07/18(金) 00:14:31
俺たち臆病だよなwwwwwwwwwwwwwwwwwwwwwwwww
316デフォルトの名無しさん:2008/07/18(金) 03:56:25
>>315
臆 病 な の は お 前 だ け
317デフォルトの名無しさん:2008/07/18(金) 08:02:21
>>316
うそーん(ノд<。)゜。
318デフォルトの名無しさん:2008/07/18(金) 12:12:54
>>317
うそ
319デフォルトの名無しさん:2008/07/18(金) 12:26:36
というのもうそ
320デフォルトの名無しさん:2008/07/18(金) 12:45:42
うそをうそと(略)難しい
321デフォルトの名無しさん:2008/07/18(金) 15:08:02
うそをうそとうそで(略)難しい
322デフォルトの名無しさん:2008/07/18(金) 15:14:05
こんにちは。ご質問させて下さい。

OSが自動でスタンバイ状態に入ったり、電源OFFになる事を、
プログラムから防止する方法ってありますか??

ex)長時間の動画を見ている際の、WindowsMediaPlayer等


ご存知の方は、ご教授の程、よろしくお願い致します。
323デフォルトの名無しさん:2008/07/18(金) 15:29:21
> ご質問させて下さい
自分に対して尊敬語使うなよ。何様のつもりだ
324デフォルトの名無しさん:2008/07/18(金) 15:41:17
>>322
トップレベルウインドウが存在しメッセージキューが動いているという極めて限定的な状況であれば
WM_SYSCOMMANDやWM_POWER〜への応答で可能
325デフォルトの名無しさん:2008/07/18(金) 15:58:33
>>322
SetThreadExecutionState
326デフォルトの名無しさん:2008/07/18(金) 16:42:38
>>324, >>325
早速のレスありがとうございます。
大変助かりました^^;)
327デフォルトの名無しさん:2008/07/18(金) 18:51:53
すみませんコントロール名が分からなくて検索のしようがないので教えて頂けないでしょうか?
下図のように領域をマウスで動かせるパーティションのようなもの名前です。

http://ossan.fam.cx/up/gazo/src/1216374792787.png
328デフォルトの名無しさん:2008/07/18(金) 18:59:50
CSplitterWnd?
329デフォルトの名無しさん:2008/07/18(金) 19:02:03
スプリッタウィンドウ、かな?たぶん。
ちなみにコントロールでも何でもなく、自前で実装するものだ。
MFCのCSplitterWndや、.NETのSystem.Windows.Forms.SplitContainerは
独自にインプリメントしているにすぎない。
330デフォルトの名無しさん:2008/07/18(金) 20:37:31
Vistaで画像にタグとか付ける関数ってなんなんだろう
331デフォルトの名無しさん:2008/07/18(金) 21:02:21
>>327
スクショ見た感じだとブビ厨か?
だったらSystem.Windows.Forms.SplitContainerが使えるだろ
個人的にはSystem.Windows.Forms.Splitter + Dockプロパティで作る方がいいけど
332デフォルトの名無しさん:2008/07/18(金) 21:36:52
ゲームパッドに対応したゲームを作成したいのですが、
入力したキーやボタンを取得して対応した処理に分岐するメッセージディスパッチの基本的コーディング方法を分かり易く解説した
おすすめのホームページを教えてください。SDK,MFCのどちらかでお願いします。
333デフォルトの名無しさん:2008/07/18(金) 21:47:48
334デフォルトの名無しさん:2008/07/18(金) 21:48:54
335デフォルトの名無しさん:2008/07/18(金) 21:53:49
話題に上げてもらえないXInputかわいそす
336デフォルトの名無しさん:2008/07/18(金) 22:07:42
joyGet〜系は?
337332:2008/07/18(金) 22:56:50
>333 >334
ありがとう。勉強してみるよ。
338デフォルトの名無しさん:2008/07/19(土) 00:19:11
Windows Mediaサーバからストリーミング配信されたものを
再生する動画プレイヤーを作成しています。

受信したストリームをStretchDIBits()で表示していますが
拡大表示すると画像に格子上の細かい線が入ってしまいます。
ブロックノイズのように見えているのでなんとか回避したいんですけど
StretchDIBits()以外の表示方法とかあるでしょうか。
339デフォルトの名無しさん:2008/07/19(土) 00:20:25
つ SetStretchBltMode
340デフォルトの名無しさん:2008/07/19(土) 00:50:51
ありがとうございます!
こんなに簡単に解決できるとは思ってなかった(´;ω;`)
341デフォルトの名無しさん:2008/07/19(土) 00:57:21
教えてください。

指定プロセスのウィンドウハンドルを所持していると言う条件で
その指定プロセスが終了した場合、前述のウィンドウハンドルは
無効になると思うのですが、そのウィンドウハンドルを取っ掛かりとして
紐付くプロセスが破棄(終了)されているかどうかを調べるには
IsEnabledWindowを使ったほうがいいのでしょうか?

それとも別APIにウィンドウハンドルを元にプロセスの生き死にを
判定するものが提供されているのでしょうか?

お願いします。
342デフォルトの名無しさん:2008/07/19(土) 01:02:44
ウィンドウが有効なうちにプロセスを特定しておかないといけない。
343デフォルトの名無しさん:2008/07/19(土) 01:06:35
>>341
ウィンドウが存在してるかどうか調べるのは
IsWindowEnabledじゃなくてIsWindow。

ただし、IsWindowでFALSEが帰ってきても、
ウィンドウが破棄されただけなのか、
プロセスも終了してるのか見分けつかない。

結論としては、一般的にウィンドウハンドルからプロセスの生死を
判定することはできない。
344デフォルトの名無しさん:2008/07/19(土) 01:08:59
ウィンドウの領域外をヒットテストするにはどうするのが一番効率がいい?
345341:2008/07/19(土) 01:10:05
>>342,342
ありがとうございます。

プロセスID、プロセスハンドルから
GetExitCodeProcessの終了ステータスで判断する事にします。
346デフォルトの名無しさん:2008/07/19(土) 04:13:29
>>344
ChildWindowFromPointとかWM_NCHITTESTとかGetWindowRectしてPtInRectとか
やり方は色々ありそうだが効率なんて知らん。それぞれ測ってここで報告してくれ
347デフォルトの名無しさん:2008/07/19(土) 09:09:52
レイヤードウィンドウについて質問させて下さい。
開発環境は VC++ 6.0、MFCは使っていません。

800 * 600 ピクセルのメインウィンドウを WS_EX_LAYERED にして、UpdateLayeredWindow() で更新を掛けています。
サーフェスの一部(第5引数に指定する32bitのDIBセクション)の一部だけを転送するような方法が見つからないので、画面を更新する必要がある場合は、800 * 600 ピクセル全体を転送しています。
ウィンドウがドラッグされたり、マウスが押された離された、あるいはマウスが動いた(これは毎回ではないですが)、タイマイベントが来た、という時に再描画が必要です。

会社の Core2 Duo 搭載マシン(3GHzのCPUが2個あるように見える)ではサクサク動くのですが、自宅の CeleronD 2.53GHz のマシンでは、ガクガク・チラチラです。OSは、前者は WndowsXP Pro SP2、後者は WindowsXP Home SP1 です。

具体的にどこが違うか調べてみると、やはり UpdateLayeredWindow() の呼び出しにかかる時間が、前者は 0〜16ms なのに対して、後者は 200〜250ms と大きな開きがありました。(時間計測は timeGetTime() で行いました。)

UpdateLayeredWindow() は比較的高速、と聞いていたのですが、やはりこの位は掛かってしまうものなのでしょうか?
それともこんな大きいウィンドウをレイヤードにする事自体が間違っているのでしょうか?
関数の呼び出し方はこうです。

--------------------------------------------------------------
static POINT ptSrc = {0, 0};
static SIZE sz = {800, 600};
static BLENDFUNCTION bf = {AC_SRC_OVER, 0, 0xff, AC_SRC_ALPHA};

HDC hdc_dst = GetDC(NULL);

HDC hdc_src = CreateCompatibleDC(hdc_dst);
SelectObject(hdc_src, hBitmap); // hBitmap は裏画面のハンドル(32bitDIBセクション)

UpdateLayeredWindow(g_hWnd, hdc_dst, &g_ptWnd, &sz, hdc_src, &ptSrc, 0, &bf, ULW_ALPHA); // g_ptWnd はグローバル

DeleteDC(hdc_src);
ReleaseDC(NULL, hdc_dst);
--------------------------------------------------------------

どなたか、御助言をよろしくお願いします。
348デフォルトの名無しさん:2008/07/19(土) 11:00:33
SetLayeredWindowAttributesの使用も検討してみては?
差分更新範囲が狭いなら、こっちの方が速いかもしれない。
349デフォルトの名無しさん:2008/07/19(土) 12:06:33
IWebBrowser2を使っているんですが
IE内でTABキー押しても他のアイテムにフォーカスが行ってしまい
IE内のリンクの移動がTABで出来ません
解決法お願いします!
350349:2008/07/19(土) 12:09:43
というかエンターキーなどの他のキーも効きませんでした
IE内でキー入力を有効にするにはどうしたら良いですか
351デフォルトの名無しさん:2008/07/19(土) 12:42:15
ダブルバッファリングとやらをやっても少しちらつくお・・・
352デフォルトの名無しさん:2008/07/19(土) 12:59:31
>>350
メッセージループがどうなってるか晒してみ
353デフォルトの名無しさん:2008/07/19(土) 13:17:19
IOleInPlaceActiveObjectでググるとそれに関係しそうな話がいくつか見つかる。
354デフォルトの名無しさん:2008/07/19(土) 13:20:56
>>347
レイヤードウィンドウってハードウェア処理が出来ないと死ぬほど重くなった気がする
具体的には、オンボードVGAとか、VRAMが少ないとか
355デフォルトの名無しさん:2008/07/19(土) 13:39:46
>>354
だな。

レイヤードウィンドウが確実にハードウェア処理されるようになったのはVistaのDWMが最初。
それまではかなり運任せなので無茶しない方がいい。
356デフォルトの名無しさん:2008/07/19(土) 13:52:03
>>352
ソースは本にのってたのほとんどそのままですお
ttp://www2.uploda.org/uporg1552520.c.html
357デフォルトの名無しさん:2008/07/19(土) 13:55:18
俺ってばアンカーを読み間違えたんだ
358349:2008/07/19(土) 14:59:03
>>352
MSG Msg;
while(GetMessageW(&Msg, NULL, 0, 0))
{
if(!IsDialogMessageW(Wnd,&Msg))
{
TranslateMessage(&Msg);
DispatchMessageW(&Msg);
}
}
です。

>>353
探してみます
359デフォルトの名無しさん:2008/07/19(土) 15:56:16
GetMessageの戻り値チェックなくね?
360デフォルトの名無しさん:2008/07/19(土) 18:41:50
IsDialogMessage(コントロールのタブ機能の為)と
TranslateAccelerator(アクセラレータ機能の為)を
どちらも機能させるようにしたいのですが、
うまくいきません。

↓行っている処理
if(IsDialogMessage(hWnd, &msg) == FALSE &&
TranslateAccelerator(hWnd, hAccel, &msg) == FALSE)

TranslateMessage(&msg);
DispatchMessage(&msg);



↑では駄目なのでしょうか?
361デフォルトの名無しさん:2008/07/19(土) 19:57:28
>>360
順序を入れ替える(TranslateAcceleratorを先にする)
362360:2008/07/19(土) 20:09:23
>>361
なんという・・・('A`)
ありがとうございます
363デフォルトの名無しさん:2008/07/19(土) 20:44:35
>>348
ピクセルごとのアルファを指定したいので、
SetLayeredWindowAttributesでは無理なのです。

>>354, >>355
確かに自宅PCのビデオはオンボードです。
会社PCには確かそれなりのカードが載っていたかも知れません。
DirectXの2Dゲームでは大差は無かったのですが…。

後になって気付いたのですが、状況によっては自宅PCでも割と高速に動く
(UpdateLayerdWindowが40msくらい)時があるようです。
もちろん自プロセス以外のCPU使用率はほぼ0%にしてテストしているのですが。
何が違うのか分かったらまた書き込みます。
364デフォルトの名無しさん:2008/07/19(土) 22:37:39
別のWindowsアプリケーションのインプットボックスとチェックボックスの値を
取得したり設定したりしようと思い、色々調べたのですが

GetWindowTextA(whnd) では "" しか取れず、

GetWindowLong(whnd, GWL_USERDATA); では0しか取れませんでした。

インプットボックスやチェックボックスには何か別の方法があるのだと
思うのですが、分からないので教えてください。お願いします。
365デフォルトの名無しさん:2008/07/19(土) 22:44:53
http://msdn.microsoft.com/ja-jp/library/cc364815.aspx
他のプロセス内のコントロールのテキストを取得するには、GetWindowText 関数を
呼び出すのではなく、直接 WM_GETTEXT メッセージを送ります。
366デフォルトの名無しさん:2008/07/19(土) 22:59:49
>>365
そちらに変えてやってみましたが、やっぱり取れません・・・。
数字が入ってるはずなのですが、SPYXX.EXEでも空白にしか見えないです・・・。

ウィンドウのキャプションとして取れない場合、
フォーカス当ててコピーするとかそういう方法しか無いですか?
367デフォルトの名無しさん:2008/07/19(土) 23:05:06
>>366
IEはhtmlによるボタン等でウインドウを個別に作らずに自前で描画しているそうです
対象のアプリケーションが同様の方法をとっている可能性はありませんか?
368デフォルトの名無しさん:2008/07/19(土) 23:06:43
市販ソフトとか、最近は独自コントロールの物が多いしねぇ
369デフォルトの名無しさん:2008/07/19(土) 23:09:29
WPFなんか使い始めると、もはやウィンドウハンドルすらないからなw

従来の方法はどんどん使えなくなる。
370デフォルトの名無しさん:2008/07/19(土) 23:10:05
>>367
ソフトはIEではないですが、もしかすると見た目が似ているだけで
サブクラス化した独自コンポーネントなのかもしれません。
とりあえず取れればなんでもいいので、クリップボード経由で
取れないかを試してみます・・・。
371デフォルトの名無しさん:2008/07/20(日) 00:26:39
まともな作りなら、オートメーションとかActive Accessibility対応とかで
アプリケーションプログラム用のインタフェースを備えているんだが、期待しないほうがいいかも。
372デフォルトの名無しさん:2008/07/20(日) 03:03:20
そこでOCRですよ
373デフォルトの名無しさん:2008/07/20(日) 12:16:14
vc6で、typeidを使った箇所より下のソースでパラメータヒントが出ません。
そこより上では普通に出ます。ncbを削除してもダメです。
出させる方法ありませんか?
374デフォルトの名無しさん:2008/07/20(日) 12:33:03
環境の問題なんだからvc6のスレで聞こうぜ…
375デフォルトの名無しさん:2008/07/20(日) 12:38:12
うるせーぼけ
376デフォルトの名無しさん:2008/07/20(日) 14:22:30
プログラムが間違えてると、それ以降は表示されない場合が多い。
377365:2008/07/20(日) 14:52:00
PostMassage使ったらいけました!
378デフォルトの名無しさん:2008/07/20(日) 14:53:42
そこはPost使うなSendしろ。
379ハッカーの神様:2008/07/20(日) 14:58:36
ねえ
どうして僕はハッカーなの?
380デフォルトの名無しさん:2008/07/20(日) 15:01:24
>>379
馬鹿だから。
381デフォルトの名無しさん:2008/07/20(日) 15:03:19
馬ッ鹿ー
382デフォルトの名無しさん:2008/07/20(日) 15:07:14
>>379
アホだから。
383デフォルトの名無しさん:2008/07/20(日) 16:23:45
馬ッ鹿ー
384デフォルトの名無しさん:2008/07/20(日) 17:28:42
>>381>>383
それは「バッカー」だろ
馬は「ハ」とは読まねえよ
小学生の国語からやり直せ
385デフォルトの名無しさん:2008/07/20(日) 17:31:44
いやつまんないから
386デフォルトの名無しさん:2008/07/20(日) 17:39:41
SendMessageTimeout使おう
387デフォルトの名無しさん:2008/07/20(日) 17:56:34
IsHungup
388デフォルトの名無しさん:2008/07/20(日) 18:12:32
>>376
コンパイルは通ります。
が、VCのエディタがtypeidを識別子として認識してないんでしょう。
389デフォルトの名無しさん:2008/07/20(日) 18:54:15
vc6を諦めるかtypeidを諦めれ
390デフォルトの名無しさん:2008/07/20(日) 21:34:37
ExtractIconExについてですが

ttp://yokohama.cool.ne.jp/chokuto/urawaza/api/ExtractIconEx.html
ここにある
大きなアイコンと小さなアイコンというのは32pxと16pxですよね
それ以上(たとえば48pxとか)を格納するにはどうしたらいいでしょうか
391デフォルトの名無しさん:2008/07/20(日) 21:48:30
>>390
LoadImage
392ハッカーの神様:2008/07/20(日) 22:06:35
皆僕のためにありがとう
393デフォルトの名無しさん:2008/07/20(日) 22:22:43
一時メモリーの取得解放に GlobalAlloc() - GlobarFree() を使っています。
最近 80MB 級の DIB の消去に時間がかかるらしく、次の操作で「応答なし」
になることがあります。VirtualAlloc() - VirturalFree() に替えると、この
現象は出難くなる可能性はありますか。
尚、OS は Vista で 2 GB RAM, AMD Athlon64 X2 デュアルコアで GHz は
定かでありませんが、そんなに遅い CPU ではないだろうと想像します。
394デフォルトの名無しさん:2008/07/20(日) 22:30:30
その可能性はあるかもしれないと俺も思うから、
人の答えを待っている間、それくらい試しにやってみな。
395デフォルトの名無しさん:2008/07/20(日) 23:04:38
そもそもGlobalAllocは後方互換で残ってるような物だからクリップボードとOLEドラッグドロップぐらい以外で使うなよ
396デフォルトの名無しさん:2008/07/20(日) 23:09:09
> ウィンドウズ環境でメモリを動的に確保するには通常GlobalAllocを使います。
こんな出鱈目書いてる糞サイトが原因だろうなあ・・・
397デフォルトの名無しさん:2008/07/20(日) 23:11:34
でたらめはかわいそうだ。Win16の昔なら間違っていなかったのだから。
実際Win16プログラミングなんてやったことない俺には、
それよりもLocalAllocのほうがよく使われそうな気がするんだけどどうなんだろ。
398デフォルトの名無しさん:2008/07/20(日) 23:14:43
> Win16の昔なら間違っていなかったのだから。
間違ってるのだが。
399デフォルトの名無しさん:2008/07/20(日) 23:17:31
なんで?
400デフォルトの名無しさん:2008/07/20(日) 23:22:43
知らないならレスしないでください
401ハッカーの神様:2008/07/20(日) 23:24:00
皆HeapAlloc使おうね!!!

HANDLE hHeap = GetProcessHeap();
LPVOID lpvData = (LPVOID)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, 1);
HeapFree(hHeap, 0, lpvData);
402デフォルトの名無しさん:2008/07/20(日) 23:24:58
ハーイ
403デフォルトの名無しさん:2008/07/20(日) 23:25:49
>>400
こういうの傍から見ててもうざい
404デフォルトの名無しさん:2008/07/20(日) 23:27:15
いやmalloc使えよ
処理系によっては効率のいいメモリ管理してくれたりデバッグビルドでメモリチェックしてくれたりするし
405ハッカーの神様:2008/07/20(日) 23:30:09
>>404
ここここここはWin32APIスレなんだよおおおおおおおおおお

それにその手の話はループするから
mallocとかHeapAllocとかは終わりにしようぜ
406デフォルトの名無しさん:2008/07/20(日) 23:32:43
Win32APIスレだからWin32API以外使うなってか
さすが馬ッ鹿ーだな
407ハッカーの神様:2008/07/20(日) 23:36:02
>>406
ごめんね。ハッカーでごめんね。
408デフォルトの名無しさん:2008/07/20(日) 23:37:00
>>407
漢字が読めないクソガキは黙ってろ
409ハッカーの神様:2008/07/20(日) 23:38:53
>>408
ごめんね。クソハッカーでごめんね。
410ハッカーの神様:2008/07/20(日) 23:39:51
釣られて俺を相手にするのはそろそろやめようぜwwwwwwww
411ハッカーの神様:2008/07/20(日) 23:40:47
偽者うざい。消えろ
412デフォルトの名無しさん:2008/07/20(日) 23:52:23
>>ハッカーの神様
お前ある意味つわもの馬鹿だなw
413デフォルトの名無しさん:2008/07/20(日) 23:53:59
マジレスするとWindowsのmallocは糞実装だから要注意。
まぁWindows自身も糞だけど。
414デフォルトの名無しさん:2008/07/20(日) 23:58:59
Windowsにはmallocはないよ
Delphiにもない
415デフォルトの名無しさん:2008/07/21(月) 00:02:57
「msvcrt.dllはもうWindowsの一部だろ」
って話が一昔前、このスレで話題になってたっけ
416デフォルトの名無しさん:2008/07/21(月) 00:06:57
だがしかし、その中身は周知でも扱いは非公開同然。
417デフォルトの名無しさん:2008/07/21(月) 00:16:54
↑話を理解してない馬鹿
418デフォルトの名無しさん:2008/07/21(月) 00:18:33
訳:かまってほしいな
419デフォルトの名無しさん:2008/07/21(月) 00:21:09
それぐらい察してほしかったってのが本音
420デフォルトの名無しさん:2008/07/21(月) 00:36:07
>>419いつ見ても笑えるwwwww
421デフォルトの名無しさん:2008/07/21(月) 00:41:35
訳:かまってほしいな
422393:2008/07/21(月) 07:57:22
みなさん、どうもありがとう。

>>396 氏の指摘は図星だんだけど、他ではお世話になってますからねえ。
98時代は、relocatable なメモリは効率がいいかなと思ったりして、
ついハマッてしまった。

その後、XP 機、Vista 機も CPU は速いから凌げるかなと思ったけど限界
ですかね。#ifdef - #else - #endif の組を何百と組み入れるハメになる。
423デフォルトの名無しさん:2008/07/21(月) 09:00:15
Windows3.1以前にも対応するなら、頑張れば良いんじゃね?
424デフォルトの名無しさん:2008/07/21(月) 09:50:53
9xのWin32cでもGlobalAllocって再配置やらないと思っていたんだが。

>>423
Win16で80MBのメモリ確保とか無理だろ。
>>422
だから、Win32以上を相手にする限りVirtualAllocに統一すればいいと思う。
425デフォルトの名無しさん:2008/07/21(月) 11:32:36
そもそも9xのGlobalAllocは数MB以上確保するなって書いてあった気がするが。
426デフォルトの名無しさん:2008/07/21(月) 14:32:33
まじかよ。何そのウンコ仕様。ナメてんの?
427デフォルトの名無しさん:2008/07/21(月) 16:03:04
後方互換APIに何言ってんだか
428422-393:2008/07/21(月) 17:11:35
300、400マン画素の写真の時代はよかったけど、600マン画素に
なって、98は GDI リソースがネック。XP になって、1200マン画素
高細の写真でも凌げた。デジカメ板の質問スレに乗っているエロ写真は
2660マンだ。エロもさることながら、自作のアプリがガタつくのは
シャクの種。
429デフォルトの名無しさん:2008/07/21(月) 18:18:07
シャクの種。
430デフォルトの名無しさん:2008/07/21(月) 21:33:23
押せないボタンを押せるようにしたいんですが、コントロールを可能にするAPIってありますか?
431ハッカーの神様:2008/07/21(月) 21:35:43
僕が答えてあげるよ!!!!
対象コントロールをサブクラス化するか

単純にボタンがDisabledならEnableWindowでいいんじゃないかな!!!!
432デフォルトの名無しさん:2008/07/21(月) 21:45:20
>>431
どうもありがとうございます。
EnableWindowってそのまんまなAPIがあったのですね、助かりました。
433ハッカーの神様:2008/07/22(火) 00:06:59
質問があるんだが聞いてくれ

Win32API板のIRCって無いんだっけ?

434デフォルトの名無しさん:2008/07/22(火) 00:26:36
ハッキングして探してください
435ハッカーの神様:2008/07/22(火) 00:30:09
>>434
ちょwwwwwww

いや、まじめな話IRC立てたら面白いかなとか思ったんだけどどうよ
つーかミスったな名無しで発言するつもりだったのに
コテハン記憶してた/(^o^)\
436デフォルトの名無しさん:2008/07/22(火) 00:31:54
>>435
IRCよりは掲示板のほうがいい

同時刻にログインするのは非現実的だし
入りっぱなしにしておくメリットもなさそうだから
437ハッカーの神様:2008/07/22(火) 00:34:37
>>436
なるほど

それに匿名じゃないと中々白熱した議論って
わけにはいかないだろうしね


いや、たまたまこういうのを見ておもしれーなと思っただけなんだ
http://d.hatena.ne.jp/goinger/20070814/1187111616
438デフォルトの名無しさん:2008/07/22(火) 00:47:21
>>437
うにっくす とは言わないが20人程度常駐しているようなチャンネルなら有益かもしれない
他の人の話を聞くだけでも参考になるから

IRCは匿名サーバもあったと思う
そこなら気に入らなかったらハンドル変えればいいだけ
439ハッカーの神様:2008/07/22(火) 02:19:20
irc.scenecritique.com
6667
#Win32API

IRC超初心者だが匿名で作ったつもり
440ハッカーの神様:2008/07/22(火) 02:20:41
ちょっと誰か入ってみてくれないか
441ハッカーの神様:2008/07/22(火) 04:00:31
一人しかこなかったけど中々面白かったよ
後、匿名だと言うことを確認できた
442デフォルトの名無しさん:2008/07/22(火) 04:00:50
寝ろよ!
443デフォルトの名無しさん:2008/07/22(火) 05:44:24
夏だな
444デフォルトの名無しさん:2008/07/22(火) 06:55:40
ここでもこれだけ過疎っているのに
IRCなんか人が集まるわけないだろ・・・
445デフォルトの名無しさん:2008/07/22(火) 06:59:40
お前ら知らないと思うけどIRCの原作者は韓国人なんだぜ
446デフォルトの名無しさん:2008/07/22(火) 07:08:30
フィンランド人だよ
447デフォルトの名無しさん:2008/07/22(火) 07:53:42
それはあってもいるし間違ってもいる。
448デフォルトの名無しさん:2008/07/22(火) 07:56:01
もう俺でいいよ。俺だよ俺
449デフォルトの名無しさん:2008/07/22(火) 07:57:41
作ったのはドイツ人。上手く回るように改良したのはイギリス人で、
大量に使ったのはアメリカ。軽量化したのは日本人で、中国人は鯖とかコピって広めた。
最終的に姦国が起源を主張する。
450デフォルトの名無しさん:2008/07/22(火) 08:00:26
ワラジムシだよ
451ハッカーの神様:2008/07/22(火) 08:30:32
irc.scenecritique.com
6667
#Win32API

誰かこないか
多分俺は夜にならないといないけどな

誰が入ってるとか発言したとかは見えない(anonymousになる)から
存分に馬鹿な質問するといい。
452デフォルトの名無しさん:2008/07/22(火) 09:12:45
ここでいいよ
453デフォルトの名無しさん:2008/07/22(火) 09:33:44
馴れ合いたい奴はむしろそっちへ行ってくれ
そして帰ってくんな
454デフォルトの名無しさん:2008/07/22(火) 09:41:59
ここでいいよ
455デフォルトの名無しさん:2008/07/22(火) 10:22:01
CreateToolBarExで使うツールバーのビットマップは、
透明色を何色にすればいいんでしょうか?
456デフォルトの名無しさん:2008/07/22(火) 10:31:34
GetWindowPlacement()で取得したWINDOWPLACEMENTの情報だけで
「最大化されている」と「最小化されている」の他に
「最大化したまま最小化されている」という状態は取れるのでしょうか?

showCmdメンバがSW_SHOWMAXIMIZEDかどうかを見て状態を保存していたのですが、
上記の3番目の状態だとshowCmdがSW_SHOWMAXIMIZEDにならず、
次回起動時に通常状態で表示されてしまいました。
457デフォルトの名無しさん:2008/07/22(火) 12:18:46
顔うpスレから画像を回収するソフトを作りたいんだが、初心者で初なので何していいかわからん。ネット上にどうプログラムでつないでいくの?わかるサイトあったら教えてください。
458デフォルトの名無しさん:2008/07/22(火) 12:19:29
>>457
右クリックして保存
459デフォルトの名無しさん:2008/07/22(火) 12:26:20
>>457
顔うpスレってVIPのだよな
俺昔そのプログラム作ったぜ
460デフォルトの名無しさん:2008/07/22(火) 12:28:28
>>459
まず何をしたらいいの?まさか自動でwindowsキー押して、何押して、何押してってやってくんじゃないでしょ。どうすりゃいいの?
461デフォルトの名無しさん:2008/07/22(火) 12:31:54
>>460
まずプログラミング言語を勉強しような。
C/C++でもC#でもDelphiでもVBでもいいから。
462デフォルトの名無しさん:2008/07/22(火) 12:34:32
>>461
Cの基礎だけじゃ足りないの?ネットとどうリンクさせるかが知りたいんだけど・。
463デフォルトの名無しさん:2008/07/22(火) 12:44:40
>>462
WinSockを検索して、入門サイトを勉強するよろし
464デフォルトの名無しさん:2008/07/22(火) 12:44:44
>>462
CならWinsockでググれば解説もサンプルもいっぱい見つかるよ。
465デフォルトの名無しさん:2008/07/22(火) 12:55:41
>>463
>>464
ありがとう
466デフォルトの名無しさん:2008/07/22(火) 17:10:18
>>456
flagsのWPF_RESTORETOMAXIMIZEDは駄目?
467デフォルトの名無しさん:2008/07/22(火) 17:28:49
>>466
showCmd == SW_SHOWMINIMIZED かつ flags & WPF_RESTORETOMAXIMIZED のときは、
showCmd == SW_SHOWMAXIMIZED のときと同様に次回起動時は最大化
とやってしまえばよさそうです。
ありがとうございます。
468デフォルトの名無しさん:2008/07/22(火) 19:23:11
GetDlgItemってWM_CREATEで使用すると
NULLしか返って来なかったりしますか?
469デフォルトの名無しさん:2008/07/22(火) 19:40:43
>>468
試してから聞けカス
470デフォルトの名無しさん:2008/07/22(火) 19:44:19
>>469
もちろん試して出来なかったから聞いてるってw

検索の綴り間違えて引っかからなかっただけでした
すみません、どうやら出来ないみたいなので呼び出し元で初期化する事にします。
471デフォルトの名無しさん:2008/07/22(火) 19:46:46
WM_INITDIALOGが駄目な深い理由があるんだろうなあ。
472470:2008/07/22(火) 19:50:13
winmainからDLGWINDOWEXTRA指定してCreateDialogすると
WM_INITDIALOGは呼ばれないみたいです?たぶん・・・

WM_CREATEは呼ばれるんですが
473デフォルトの名無しさん:2008/07/22(火) 19:52:45
>>472
どうやら根本から分かっていないようだ
474デフォルトの名無しさん:2008/07/22(火) 20:12:42
DLGWINDOWEXTRAを使ってもやっぱりWM_INITDIALOGは来るようだが。
このサンプルではWM_INITDIALOGを受け取っているぞ。
http://blogs.msdn.com/oldnewthing/archive/2003/11/13/55662.aspx
475ハッカーの神様:2008/07/22(火) 21:51:41
ぼぼぼぼくは無事帰還しました!!!!!!!!
476ハッカーの神様:2008/07/22(火) 23:02:11
>>475
偽者は氏ね
477ハッカーの神様:2008/07/22(火) 23:22:59
>>476
ごめんね。ハッカーでごめんね。
478ハッカーの神様:2008/07/22(火) 23:30:36
そういえば「馴れ合いは嫌だ」とかいうレスがあったけど

俺はただ何の前触れも無く誰かが
「○○ってどうやるの?」
という屑な質問を発言し
「○○使えよチンカスが!」
と誰かが受け応えする殺伐とした状況を想像して
IRCを立てたから馴れ合うつもりは到底ない


それにあやしい系のIRCもそうだけど
匿名IRCは到底馴れ合うような場所・状況じゃないと言っておこう
479デフォルトの名無しさん:2008/07/22(火) 23:44:16
いちいちマジレスしなくても誰も馴れ合う事になるだろうとは思ってないよ
馬鹿を除いて
480ハッカーの神様:2008/07/22(火) 23:51:03
>>479
ごめんね。ハッカーでごめんね。
481デフォルトの名無しさん:2008/07/22(火) 23:57:55
いやつまんないから
482ハッカーの神様:2008/07/23(水) 00:27:11
訳:かまってほしいな
483デフォルトの名無しさん:2008/07/23(水) 15:32:23
質問です。
2chブラウザやIEのフレームなど、マウスで移動できるウィンドウ
(境界に来るとマウスの形が「←||→」みたいになる奴)
はどのように作ればいいのですか?
検索キーワードだけでもいいから教えてください
484デフォルトの名無しさん:2008/07/23(水) 15:39:47
スプリッタウィンドウのことか?
1からAPIで書きたいのか、どっかのライブラリ利用したいのかで変わってくるが。
485デフォルトの名無しさん:2008/07/23(水) 15:56:07
486デフォルトの名無しさん:2008/07/23(水) 16:18:41
bccでウィンドウを表示するだけのプログラムを作ったのですが、
タスクマネージャーで見るとメモリ使用量が4MB、
仮想メモリサイズが1.7MBになっていました。
ソフトを作る場合、大体これが最小のメモリ消費量でしょうか?
487デフォルトの名無しさん:2008/07/23(水) 17:02:40
いいえ
488デフォルトの名無しさん:2008/07/23(水) 17:05:35
マジレスすると最小のメモリ消費量 = 0KB
489デフォルトの名無しさん:2008/07/23(水) 17:33:04
レスさんくす
メッセージウィンドウやコンソールウィンドウではなく
CreateWindowとWS_OVERLAPPEDWINDOW | WS_VISIBLEで
ウィンドウを表示するタイプの場合のメモリ使用量でも最小ではないでしょうか
もしならないならもう少し詳しくご教授ください
490デフォルトの名無しさん:2008/07/23(水) 17:40:30
自作PC作る予定なんだけど、winXPって何GBのメモリ認識できる?
3GBと言う人がいれば、4Gと言う人もいる。どっち?
491デフォルトの名無しさん:2008/07/23(水) 17:42:38
>>490
悩むくらいなら4G積めばいい
3G だとデュアルチャネル使うために 512Mx2 とか妙なものを手に入れないといけない
492デフォルトの名無しさん:2008/07/23(水) 17:43:11
32bitの場合メモリ空間そのものは4GB
いくつまで認識できるかはチップセットやマザーボード、拡張ボード次第。
4GBと言ってるのは、最近のサービスパックで積んだだけ表示するようになったからじゃないかな。

ってスレ違いじゃ
493デフォルトの名無しさん:2008/07/23(水) 17:44:54
>>489
ProcessWalkerかなんか使って、実際何にどれだけメモリ使われてるか調べてみれば
494デフォルトの名無しさん:2008/07/23(水) 17:50:26
bcc のスタートアップコードでなんかしてるんじゃない?
標準ランタイムの初期化とかでさ
crt0.c とかそういうのがソースについてれば追えるかもね
495デフォルトの名無しさん:2008/07/23(水) 18:07:01
>>493
ググってみます。ありがとう

>>494
どうもです。ということはやはり使用量が多いのでしょうか。調べてみます
496デフォルトの名無しさん:2008/07/23(水) 18:22:07
>>495
プロセスヒープ or デフォルトヒープで調べると幸せになれるかも知れない
497デフォルトの名無しさん:2008/07/23(水) 18:54:12
>>496
ありがとん。ちょっと難解ですが、がんばってみます。どうもでした
498ハッカーの神様:2008/07/23(水) 22:43:20
やあ!!奇跡でIRCに3人も人がいるんだ!!

irc.scenecritique.com
6667
#Win32API


以下は別件。



教えてください。

FindFirstChangeNotification使って特定のフォルダ内の
テキストデータなどを監視する処理を実装していたのですが、
監視対象が更新され監視ハンドルがシグナル状態になった後
FindNextChangeNotificationを呼び出しても非シグナル状態になりません。

逆にFindNextChangeNotificationを呼び出した後
パラメータに使用した監視ハンドルでWaitForSingleObjectを
2度呼び出すと非シグナル状態になってくれるんですが
これはFindNextChangeNotificationの仕様なのでしょうか?
499ハッカーの神様:2008/07/23(水) 22:46:11
因みにフラグはFILE_NOTIFY_CHANGE_LAST_WRITEです。
500デフォルトの名無しさん:2008/07/23(水) 22:53:40
おいらはReadDirectoryChangesWしか使ったこと無いからわからない
501デフォルトの名無しさん:2008/07/23(水) 22:55:42
>>500
知らないならレスするなボケ
502ハッカーの神様:2008/07/23(水) 23:00:53
fopen "w" で一回と fclose で一回の計二回更新が来るって事を
IRCの誰かが教えてくれた

実験というかテストはエディタでしかやってないから多分
エディタのその辺じゃないかと思われ。
因みにエディタは秀丸


>>500
その関数は知らなかった
ファイル監視に関しては地味に高機能だなw
そういう意味で俺も別のAPI探すべきだったか
503デフォルトの名無しさん:2008/07/24(木) 01:03:28
NG推奨:ハッカーの神様
504デフォルトの名無しさん:2008/07/24(木) 11:30:30
指定フォルダにサブフォルダがあるかどうかを調べるAPIを教えてくださいよ
505デフォルトの名無しさん:2008/07/24(木) 11:56:17
HasFolderW()
506デフォルトの名無しさん:2008/07/24(木) 11:59:38
いやそんなのないからwwwwwwwwwwwwwwwwwwwwww
507デフォルトの名無しさん:2008/07/24(木) 12:00:55
BOOL FolderHaArimasukaW()
508デフォルトの名無しさん:2008/07/24(木) 12:01:58
>>505
できました!
ありがとうございます!
509デフォルトの名無しさん:2008/07/24(木) 12:02:45
FindFirstで引っ掛けてGetAttributeなのか、やっぱり。
510デフォルトの名無しさん:2008/07/24(木) 12:05:15
お前ら俺の昼飯前の集中を返せwww
511デフォルトの名無しさん:2008/07/24(木) 12:08:55
>>509
FindFirstFileしてるのにわざわざGetAttributesしなおすのか?
512デフォルトの名無しさん:2008/07/24(木) 12:10:24
>>511
属性みないとフォルダかどうかわからんってことだろ馬鹿
513デフォルトの名無しさん:2008/07/24(木) 12:11:05
もちろんFindFirstFileで属性もゲットしてるからGetAttributeは必要ないけどな
514デフォルトの名無しさん:2008/07/24(木) 12:16:24
GetAttributeって何だよ
GetFileAttributesだろバカ共
515デフォルトの名無しさん:2008/07/24(木) 12:19:29
それくらい脳内変換してやるくらいの柔軟な脳を持てってことだクズ
516デフォルトの名無しさん:2008/07/24(木) 12:21:05
この時間に質問しても無駄だぜ?
今は夏休み。これ以上いわなくてもわかるよな?
517デフォルトの名無しさん:2008/07/24(木) 12:21:07
脳内変換しないと読めない文章書くなってことだクズ
518デフォルトの名無しさん:2008/07/24(木) 12:22:06
自己解決しました!
519デフォルトの名無しさん:2008/07/24(木) 12:23:29
事故解決するくらいなら最初から質問するなってことだクズ
520デフォルトの名無しさん:2008/07/24(木) 12:26:39
sage厨はクズだな
521デフォルトの名無しさん:2008/07/24(木) 12:27:34
やっぱりわかりません!
522デフォルトの名無しさん:2008/07/24(木) 12:28:40
やっぱり自己解決しました!
523デフォルトの名無しさん:2008/07/24(木) 12:30:05
>>516
夏休みとか関係ねーよ
お前ら年中休みだろうが
524デフォルトの名無しさん:2008/07/24(木) 12:35:42
質問者になりかわって自己解決した旨と感謝の言葉の書き込みをする
誰にでも出来る簡単なボランティアです
525デフォルトの名無しさん:2008/07/24(木) 13:38:05
夏だねぇ
526デフォルトの名無しさん:2008/07/24(木) 13:41:54
夏だな厨  【なつだなちゅう】

夏に暴れる人を放置ができず、とにかく「夏だな」と言い出し、
それによってなぜか相手より優位に立ってると思い、
荒れの元となりスレ住民全体に迷惑をかける存在。

【特徴】
・とにかく文中に「夏だな」を入れないと気がすまない
・スレの流れや空気を読めず、反応してしまう
・普通のスレ住人は夏厨を放置しているのに自分だけが過剰に反応してしまう
・夏厨に反応している時点で夏厨と同類であることに気づいていない
527デフォルトの名無しさん:2008/07/24(木) 13:45:41
ありがとうございました!
528デフォルトの名無しさん:2008/07/24(木) 14:01:47
夏だな
529デフォルトの名無しさん:2008/07/24(木) 14:02:57
あぁ、夏だ
530デフォルトの名無しさん:2008/07/24(木) 14:15:37
夏だしな
531デフォルトの名無しさん:2008/07/24(木) 14:17:34
>>526=夏だな
532デフォルトの名無しさん:2008/07/24(木) 14:27:51
夏ですね!
ありがとうございました!
533デフォルトの名無しさん:2008/07/24(木) 14:32:38
今から夏を試してみます!
534デフォルトの名無しさん:2008/07/24(木) 14:37:00
夏己解決しました!
535デフォルトの名無しさん:2008/07/24(木) 14:48:32
夏だな厨厨
536デフォルトの名無しさん:2008/07/24(木) 15:32:03
夏だな厨厨トレイン
537533:2008/07/24(木) 16:26:53
夏を試してみましたが、できませんでした!
ひきつづきアドバイスお願いします!
538デフォルトの名無しさん:2008/07/24(木) 16:35:57
あきらめろ。

 波 音 が響けば 雨雲ぉが近ぁづくぅ
539デフォルトの名無しさん:2008/07/24(木) 16:41:14
いじわるしないで教えてください!
540デフォルトの名無しさん:2008/07/24(木) 16:45:19
それくらい察して欲しかったって言うのが本音
541デフォルトの名無しさん:2008/07/24(木) 16:45:53
それぐらい察することが出来ない人はレスしないでください
542デフォルトの名無しさん:2008/07/24(木) 16:51:44
知らないならレスするなクズ
543デフォルトの名無しさん:2008/07/24(木) 17:44:23 BE:15528342-2BP(222)
それなら知らない人には見えないところに書いてくださいね。
544デフォルトの名無しさん:2008/07/24(木) 18:45:55
IWebBrowser2::get_LocationName(BSTR);
で、何故かHPのタイトルじゃなくてHPのURLが取れてしまうんだけど、、、
本当はHPのタイトルを取得したいのに、、、解決法
教えてください
545デフォルトの名無しさん:2008/07/24(木) 18:54:29
IHTMLDocument2::get_title(BSTR *p);
546デフォルトの名無しさん:2008/07/24(木) 19:22:57
IHTMLDocument2::get_title(BSTR *p);
547デフォルトの名無しさん:2008/07/24(木) 19:23:47
IHTMLDocument2::get_title(BSTR *p);
548デフォルトの名無しさん:2008/07/24(木) 19:27:19
あれ?俺が居ないのに荒れてたのか。
549デフォルトの名無しさん:2008/07/24(木) 19:34:32
プログラマ=馬鹿ばっか
550544:2008/07/24(木) 19:35:05
みんな、ありがと〜
できたよ!!
551デフォルトの名無しさん:2008/07/24(木) 19:36:25
どういたしまして^^
552デフォルトの名無しさん:2008/07/24(木) 19:42:45
ご丁寧にどうも^^
553デフォルトの名無しさん:2008/07/24(木) 19:46:17
これからもがんばってね^^
554デフォルトの名無しさん:2008/07/24(木) 21:36:03
質問があるのですが、googleの検索とかである絞込検索?みたいなやつのことなのですが、
たとえば、(hoge プログラム)でhogeとプログラムでマッチするサイトが検索できたりするのを
Cとwin32apiで実現させたいと思ってます。アルゴリズムまたは作成方法を提示できる方いますか?
ネットで使うわけではありません。検索アルゴリズムが知りたいです。
555デフォルトの名無しさん:2008/07/24(木) 21:59:44
>>554
検索アルゴリズムを知る前にGoogle検索して調べる事を学びましょう
556デフォルトの名無しさん:2008/07/24(木) 22:01:02
自己解決しました
ありがとうございました
557デフォルトの名無しさん:2008/07/24(木) 22:01:31
どういたしまして^^
558デフォルトの名無しさん:2008/07/24(木) 22:16:20
IDでないから言いたい砲台
559デフォルトの名無しさん:2008/07/24(木) 22:22:34
IDでても言いたい砲台
560554:2008/07/24(木) 23:03:59
分かる人はいないってことでしょうか?
561デフォルトの名無しさん:2008/07/24(木) 23:06:41
クローラーでググれ
562デフォルトの名無しさん:2008/07/24(木) 23:07:20
>>554
1:クロールする。
検索対象ドキュメントを集めてくる。

2:インデックスを作る
ドキュメントを単語に分割して、ドキュメントに対応する単語群を特定し、結果を貯めておく。

3:倒置インデックスを作る
インデックスを元に、単語に対応するドキュメント群を特定し、結果を貯めておく。

4:検索する
倒置インデックスから、単語をキーに対応するドキュメント群を特定し、要求元に結果を返す。
563デフォルトの名無しさん:2008/07/25(金) 00:30:38
LPWIN32_GGL_DATA HTTPGetClawledDocument(LPTSTR lpszCondition)
でOK
564デフォルトの名無しさん:2008/07/25(金) 00:36:56
windowsのイベントログを取るAPIってありますか?
565デフォルトの名無しさん:2008/07/25(金) 00:45:05
ありますよ
566デフォルトの名無しさん:2008/07/25(金) 00:52:15
>>563
ポインタを返すAPIなんてほとんどねーよバーカ
567デフォルトの名無しさん:2008/07/25(金) 00:58:23
けっこうあるよ。
568デフォルトの名無しさん:2008/07/25(金) 01:07:11
ポインタよりハンドルがいいって言いたいんじゃない?
569デフォルトの名無しさん:2008/07/25(金) 01:13:34
>>565
6006と6009を取れるやつ教えてくれー
570デフォルトの名無しさん:2008/07/25(金) 01:18:45
HANDLE HttpFindFirstClawledDocument(LPTSTR lpszCondition, LPWIN32_GGL_DATA lpGglData)
BOOL HttpFindNextClawledDocument(HANDLE hFind, LPWIN32_GGL_DATA lpGglData)

実在するとしたらせいぜいこんな感じだろ
嘘臭い釣りは面白くないよ
571デフォルトの名無しさん:2008/07/25(金) 01:36:56
6006と6009ってロガーの開始と終了だったような
.NETでなら最近見た
572デフォルトの名無しさん:2008/07/25(金) 02:07:27
ファイル名(○○.cpp)から拡張子(cpp)だけを得るAPIありますか?
573デフォルトの名無しさん:2008/07/25(金) 02:10:32
ある
574デフォルトの名無しさん:2008/07/25(金) 02:11:00
ググレカス
575デフォルトの名無しさん:2008/07/25(金) 02:13:27
お前がググレカス
576デフォルトの名無しさん:2008/07/25(金) 02:13:28
ヤフーでググれ
577デフォルトの名無しさん:2008/07/25(金) 02:33:40
自プロセスに読み込んだDLLを実行しつつ監視して、
セキュリティー保護のためにネットワーク/ファイルアクセスをチャックして
接続先アドレスがホワイトリストにない場合など
DLLの実行を停止させたり、ユーザーに「○○へ接続してよいですか?」などの
ダイアログを表示させるには、どういったAPIを使えばよいでしょうか?
578デフォルトの名無しさん:2008/07/25(金) 02:43:24
チャックして
チャックして
チャックして
579デフォルトの名無しさん:2008/07/25(金) 03:29:32
相変わらずこのスレ病んでるなww

ストレスが溜まる原因は
自分自身にあると考えて改善してみよう。
もしくは、体壊すか事件起こす前に仕事やめなさい。
580デフォルトの名無しさん:2008/07/25(金) 07:55:51
働いてませんが何か?
581デフォルトの名無しさん:2008/07/25(金) 09:53:58
ヒント:夏休み
582デフォルトの名無しさん:2008/07/25(金) 09:58:10
ヒント:海水浴
583デフォルトの名無しさん:2008/07/25(金) 10:01:34
ヒント:バーベキュー
584デフォルトの名無しさん:2008/07/25(金) 10:08:41
>>577
あるDLLが存在し、仮に名前をXとする

Xの機能を利用したいが、Xは(2chやアングラサイトで拾ったものなので)信頼できない
Xにアクセス制限を課して悪さができないようにしたい
どのような方法がありますか?

ってことか
585デフォルトの名無しさん:2008/07/25(金) 10:26:44
ネットワークの接続やファイル操作に使うAPIを全部フックする、とかかなぁ
586デフォルトの名無しさん:2008/07/25(金) 11:09:32
.NETのコードアクセスセキュリティ的な
587デフォルトの名無しさん:2008/07/25(金) 11:47:14
昔はまんまPacket Filtering APIってあったんだけど
Windows Filtering Platformに統合されちゃったんだよね
588デフォルトの名無しさん:2008/07/25(金) 12:18:51
>>577
セキュリティソフト使えばいいだろうが
589デフォルトの名無しさん:2008/07/25(金) 12:30:38
それはつまりWindows Filtering Platformを使えばいいってことじゃないの
590デフォルトの名無しさん:2008/07/25(金) 12:39:42
VMで動かせば
591デフォルトの名無しさん:2008/07/25(金) 12:40:42
普通はセキュリティソフトぐらい入れてるからその程度のセキュリティならソフトに任せばいい
何も入れずにネット繋いでる馬鹿は今すぐ回線切っとけ
592デフォルトの名無しさん:2008/07/25(金) 13:16:23
TBBUTTONINFO info;
SendMessage(TB_GETBUTTONINFO, 3, (LPARAM)&info);
これでツールバーの3番目のボタン情報がとれないんですが助けてお願いします
593デフォルトの名無しさん:2008/07/25(金) 13:18:34
まちがえた。hwndはツールバーのハンドルです。

TBBUTTONINFO info;
SendMessage(hwnd, TB_GETBUTTONINFO, 3, (LPARAM)&info);
これでツールバーの3番目のボタン情報がとれないんですが助けてお願いします
594デフォルトの名無しさん:2008/07/25(金) 13:42:53
同じプロセス?
SendMessageの前に
ZeroMemory(&info , sizeof(TBBUTTONINFO));
info.cbSize = sizeof(info);
info.dwMask = TBIF_XXXX;
595デフォルトの名無しさん:2008/07/25(金) 15:15:18
> ZeroMemory(&info , sizeof(TBBUTTONINFO));
> info.cbSize = sizeof(info);
今時こんな書き方する人いるんだ・・・

TBBUTTONINFO info = { sizeof(TBBUTTONINFO) };
でいいのに
596デフォルトの名無しさん:2008/07/25(金) 15:21:14
>>595
それがカッコいいと思ってる馬鹿を晒し上げwwwwwwwwwwwwwwww
597デフォルトの名無しさん:2008/07/25(金) 15:25:06
外が暑いな
598デフォルトの名無しさん:2008/07/25(金) 15:28:12
あぁ、ぬるいな
599デフォルトの名無しさん:2008/07/25(金) 15:39:30
600デフォルトの名無しさん:2008/07/25(金) 15:42:14
>>596
カッコいいとかじゃなくて常識だよ
C言語の初歩から勉強しなおそうね。
601デフォルトの名無しさん:2008/07/25(金) 15:43:33
言語なんて道具なんだからそんな初期化方法はどうでもいい。
602デフォルトの名無しさん:2008/07/25(金) 15:44:42
>>601
初歩的な事も分かってない奴に何が出来るんだよ
603デフォルトの名無しさん:2008/07/25(金) 15:45:34
604デフォルトの名無しさん:2008/07/25(金) 15:47:34
夏休みになって基本的な事すら知らないド素人が大量発生中w

>>594>>596>>599>>601>>603
605デフォルトの名無しさん:2008/07/25(金) 15:47:51
>>600
>今時こんな書き方する人いるんだ・・・
 ^^^^^^
>C言語の初歩から勉強しなおそうね
       ^^^^^
だれかこの馬鹿の矛盾を教えてあげてよw
606デフォルトの名無しさん:2008/07/25(金) 15:48:32
>>595
#include <stdio.h>
main()
{
  static int a;
  a = 1;

  static int b;
  *(char*)&b = 1;

  printf("a=%d, b=%d\n", a, b);
}

結果的には同じ答えが出るが、
お作法としては最悪。子供の教育には良くない。
607デフォルトの名無しさん:2008/07/25(金) 15:49:52
↑話を理解してない馬鹿
608デフォルトの名無しさん:2008/07/25(金) 15:51:14

反論できなくなると人格攻撃をするしかなくなるヤツ
609デフォルトの名無しさん:2008/07/25(金) 15:52:04
>>604
お前恥かしいよ
610デフォルトの名無しさん:2008/07/25(金) 15:52:30
>>605
ANSI Cに準拠していない古いコンパイラなら>>594の書き方をする必要があるが
今時のコンパイラなら>>595で問題無いのでわざわざ手間のかかる書き方するのは馬鹿
611デフォルトの名無しさん:2008/07/25(金) 15:54:04
給食費は払わなくても、ちゃんと給食が出るから問題ないよ、か?
612デフォルトの名無しさん:2008/07/25(金) 15:56:08
手間のかかる書き方をするとバグの元になりかねないので
出来る限り完結に書く方が良いのはコーディングの基本
613デフォルトの名無しさん:2008/07/25(金) 15:56:08
少なくとも、構造体の先頭にcbSizeがあるという仮定のコードは書きたくないわな。
614デフォルトの名無しさん:2008/07/25(金) 15:59:34
>>610
その前にお前は国語の勉強をしたほうがいいよ?w
615デフォルトの名無しさん:2008/07/25(金) 16:01:18
>>613
その場合でも = {};か = {0};で初期化することはできるな。わざわざZeroMemoryなんぞ使わんでも。
616デフォルトの名無しさん:2008/07/25(金) 16:01:40
>>613
サイズを格納するメンバのある構造体は Win32 で定義されている物なら必ず先頭にある
むしろ cbSize とは限らない (MEMORYSTATUS や WINDOWPLACEMENT など) ので

Win32 プログラマなら >>595 の書き方をする癖をつけておいた方が無難だし
実際 WTL などはこの書き方で統一されている
617デフォルトの名無しさん:2008/07/25(金) 16:01:59
>>615
元の質問者のコードに手をつけない形で答えたんだがな。
618デフォルトの名無しさん:2008/07/25(金) 16:03:06
>>613
ここ何スレだと思ってるんだ
619デフォルトの名無しさん:2008/07/25(金) 16:04:33
大体、質問の答えとして何が足りないかをわかりやすく答えてるのに、
余計なあやつけるヒマなやろうは出てくるとは思ったけどな。
620デフォルトの名無しさん:2008/07/25(金) 16:05:37
>>595はゆとりなんだろうねぇ
621デフォルトの名無しさん:2008/07/25(金) 16:06:00
>>596>>599>>601>>603>>605>>606>>609>>611>>614
夏休みだからこういう連中が沸くのは仕方ないのかねぇ
622デフォルトの名無しさん:2008/07/25(金) 16:06:29
>>620
最近覚えた知識を披露したくてうずうずしてたんだろうな。
623デフォルトの名無しさん:2008/07/25(金) 16:07:59
そもそも、

>>593の1行目を
TBBUTTONINFO info = { sizeof(TBBUTTONINFO), TBIF_XXXX };
にすればいい

とレスしておけば荒れずに済んだ訳だが。
624デフォルトの名無しさん:2008/07/25(金) 16:09:55
なんで毎日毎日こんな阿呆な流れになるの?
暑さで脳溶けてるの?
625デフォルトの名無しさん:2008/07/25(金) 16:11:40
夏休みだからに決まってるじゃん?
どうせ宿題なんてしないから暇だし
626デフォルトの名無しさん:2008/07/25(金) 16:11:51
給食費くらい払えよ
627デフォルトの名無しさん:2008/07/25(金) 16:12:17
暑いですね^^
ありがとうございます^^
628デフォルトの名無しさん:2008/07/25(金) 16:12:41
質問です!
IDocHostUIHandlerを使ってIWebBrowser2の右クリックメニューを独自の物にしたいんですが
IDocHostUIHandlerの実装の方法がわかりません!
だれか教えてくださいm(_ _)m
調べてみたけど具体的な実装方法が見つからなかった・・・
629デフォルトの名無しさん:2008/07/25(金) 16:13:04
夏休みだから>>621みたいな奴が沸くんですね。わかります。
630デフォルトの名無しさん:2008/07/25(金) 16:13:50
丸投げすんなよ。ほんとに調べたのか?
631デフォルトの名無しさん:2008/07/25(金) 16:14:37
いつもの荒れとちょっと違う感じ。c関連スレおなじみのキチガイっぽい感じ。
632デフォルトの名無しさん:2008/07/25(金) 16:15:59
>>631
本人乙
633デフォルトの名無しさん:2008/07/25(金) 16:17:01
荒れた原因は知ったかぶりして余計なレスをした>>595だな。
とりあえずこいつは質問に答えてないから消えてよし。
634デフォルトの名無しさん:2008/07/25(金) 16:19:13
ウザいコテが消えたと思ったら今度はキチガイか
どうしてこうも連日変な奴が来るのかね・・・
.NET信者がスレを潰そうとでもしているのか?
635デフォルトの名無しさん:2008/07/25(金) 16:20:22
>>634
お前のそのレスが基地外を呼び込んでるのがわからんのか?
つーか、荒らしてるのお前じゃねえの?
636634:2008/07/25(金) 16:21:27
ごめんなさい
637577:2008/07/25(金) 16:27:29
レスありがとうございます。

>ネットワークの接続やファイル操作に使うAPIを全部フックする、とかかなぁ

ネットワーク/ファイルアクセスに関するAPIフックは考えたのですが、その場合、
IEに「http://www.hoge.com/get?uname=xxxx&pass=zzzz」みたいなURLを渡すケースは
チェックをすり抜けてしまいます。
個別に自分で対応していくしかなさそうですね。。
638628:2008/07/25(金) 16:31:24
調べたけど英語のサイトしかなかったからわからないです
639デフォルトの名無しさん:2008/07/25(金) 16:31:51
>>637
そういうのって最近のファイアウォールのアウトバウンド防御でちゃんとチェックしてくれると思うが。
他のプロセスにDLLインジェクションしてネットワークアクセスするようなのもチェック入るし。

てか、そういうセキュリティ対策ソフトを作りたいのか?
640デフォルトの名無しさん:2008/07/25(金) 16:35:18
夏だな
641デフォルトの名無しさん:2008/07/25(金) 16:36:08
642デフォルトの名無しさん:2008/07/25(金) 16:47:00
643デフォルトの名無しさん:2008/07/25(金) 16:52:17
644577:2008/07/25(金) 16:56:44
>>639
セキュリティソフトのレベルまで作ろうとは思ってないですが、
お勉強の意味も兼ねて、自分でも実装したいと思っています。
645デフォルトの名無しさん:2008/07/25(金) 17:22:05
>>644
その手のソフトは大抵ドライバ組み込んでカーネルモードでゴニョゴニョしてるだろうから
Win32の範囲外だと思う・・・
646デフォルトの名無しさん:2008/07/25(金) 18:56:40
今後は末尾を伸ばすらしいよ
http://www.itmedia.co.jp/news/articles/0807/25/news090.html

ドライバはドライバーと書かないと
647デフォルトの名無しさん:2008/07/25(金) 19:02:09
今後?
どう読んでも次のWindowsからだろ。
648デフォルトの名無しさん:2008/07/25(金) 19:03:14
マインスイーパー に和んだ
649デフォルトの名無しさん:2008/07/25(金) 19:04:13
些細なことだけど、慣れ親しんだものを変えられるとやっぱり気持ち悪いな。
650デフォルトの名無しさん:2008/07/25(金) 19:08:14
そういえば、これまでも「サウンド レコーダー」だったよね。
なんでだろう。
651デフォルトの名無しさん:2008/07/25(金) 19:08:28
JIS涙目wwwwwwwwwwwww
652デフォルトの名無しさん:2008/07/25(金) 19:09:41
またしても日本勢は敗北するのか
653デフォルトの名無しさん:2008/07/25(金) 19:14:01
俺伸ばすほうが好きだった
もちろんJISは知ってた
654デフォルトの名無しさん:2008/07/25(金) 19:15:15
アセンブラー
コンパイラー
デザイナー
デバッガー
エディター

並べて書くと間が抜けてて嫌だ。
断固拒否するぞ
655デフォルトの名無しさん:2008/07/25(金) 19:18:53
そこがいい
656デフォルトの名無しさん:2008/07/25(金) 19:27:13
>>652
MSは日本なんてもうほとんど眼中に無いだろ
MSKBは機械翻訳だらけだしIMEは中国製だしDreamSparkとか日本は後回しにされてたし
657デフォルトの名無しさん:2008/07/25(金) 19:31:25
マネージャーのコンストラクターでフォルダー名を指すポインターを受け取ってメンバー変数に保存します
こんな感じですか
658デフォルトの名無しさん:2008/07/25(金) 19:32:04
これは無駄にウザい文章が書けそうだ
659628:2008/07/25(金) 19:46:37
628ですが結局ここhttp://dn.codegear.com/jp/article/28797
のコピペで動いたんですけど
IEのイベントが全部MyDocHandlerの関数になってしまって困ってます
ShowContextMenuだけ有効にするのはどうしたらいいですか?
660デフォルトの名無しさん:2008/07/25(金) 20:11:18
>>657
メェニヂャーのケンストラクターでフォウルダー名を指すポインターを受け取ってメンバー変数に保存します

実際の発音に表記を合わせるならこうしろよなー
661デフォルトの名無しさん:2008/07/25(金) 20:13:09
>>660
>メェニヂャー
異議あり!
662デフォルトの名無しさん:2008/07/25(金) 20:16:16
>>661
ǽだからマェニヂャーの方が近いのかな?
maryがメリーかメアリーかマリーか、みたいな話だな
663デフォルトの名無しさん:2008/07/25(金) 20:42:51
×コピペ
○コピーペー

ってことですね
664デフォルトの名無しさん:2008/07/25(金) 20:53:25
コピーアンドペーストだろ馬鹿
665デフォルトの名無しさん:2008/07/25(金) 21:28:34
フルスペルにしただけだろ馬鹿
666デフォルトの名無しさん:2008/07/25(金) 21:47:41
だから何だよ馬鹿
667デフォルトの名無しさん:2008/07/25(金) 21:54:25
アセンブラァ
レコォダァ
マインスイィパァ
プリンタァ
バッファァ
インストォラァッー
スクリィンセィヴァァ
668デフォルトの名無しさん:2008/07/25(金) 21:59:13
> レコォダァ
英語出来ないのがバレバレだな
669デフォルトの名無しさん:2008/07/25(金) 22:17:46
サウンドゥ リコォダァ
670デフォルトの名無しさん:2008/07/25(金) 22:19:07
取説に書いてあったら嫌だな
671デフォルトの名無しさん:2008/07/25(金) 22:29:37
レコォダァ(笑)
バッファァ(笑)

こんな英語力じゃこの国の将来は暗いな
672デフォルトの名無しさん:2008/07/25(金) 22:31:14
えっと…
673デフォルトの名無しさん:2008/07/25(金) 22:34:23
バイオリンがヴァイオリンになったのはつい最近
674デフォルトの名無しさん:2008/07/25(金) 22:35:57
僕、アルバイトォォ
675デフォルトの名無しさん:2008/07/25(金) 22:36:24
もうさー、カタカナ語なんて廃止して中国みたいに自国語に置き換えちゃえばいいんじゃねーの?

"工具棒"とか噴いた事あるけどw
676デフォルトの名無しさん:2008/07/25(金) 22:39:00
原表記そのままでいいよ。
computer, printer, etc...
677デフォルトの名無しさん:2008/07/25(金) 22:53:00
>>676
禿同

「ようこそ」とかナメてんのかって思うよ、ほんと
678デフォルトの名無しさん:2008/07/25(金) 22:54:32
表記が変わるのはあくまで一般向けだろ
エンジニアが>>657こんなうざい文章を受け入れるとは思えん
679デフォルトの名無しさん:2008/07/25(金) 23:02:19
そんな適応能力の低いエンジニアは不要です
680デフォルトの名無しさん:2008/07/25(金) 23:15:59
>>678
どうせVisual Studioの表記も変わるだろ。
681デフォルトの名無しさん:2008/07/25(金) 23:17:40
.NETじゃないVC++なんてどこがVisualなんだろうね
682デフォルトの名無しさん:2008/07/25(金) 23:18:23
不自然な分かち書きを何とかしてほしい
683デフォルトの名無しさん:2008/07/25(金) 23:20:54
そうそう、あの不自然なスペースの挿入こそ先に直してほしいもんだ。
684デフォルトの名無しさん:2008/07/25(金) 23:28:11
685デフォルトの名無しさん:2008/07/26(土) 00:19:20
だからそのルールが変だって話。俺様ルールの妙な日本語表記やめれ。
686デフォルトの名無しさん:2008/07/26(土) 00:30:27
>>685
変かどうかなんてお前の主観だろ
何らかのルールを設けて統一性を図る方が大事だと思うよ

そのルールを今になって変えようとしているのが理解できんが
687デフォルトの名無しさん:2008/07/26(土) 00:38:01
今までので慣れちゃったから別に変えなくても
688デフォルトの名無しさん:2008/07/26(土) 04:13:30
デスクトップアイコンより後ろにウィンドウを表示させる方法ってありますか?
WINDOWSの仕様上、やっぱ無理?
689デフォルトの名無しさん:2008/07/26(土) 07:31:59
「Program Manager」というウィンドウが最背面の表示を担当していて、
背景&壁紙-デスクトップアイコンと、親子ウィンドウで構成されている。
少なくとも、オーバーラップウィンドウとかは無理なんじゃないかな。
690デフォルトの名無しさん:2008/07/26(土) 08:58:18
2つウィンドウを作って片方にデスクトップアイコンを描画する
691デフォルトの名無しさん:2008/07/26(土) 11:41:21
そこでActiveDesktopですよ
692デフォルトの名無しさん:2008/07/26(土) 12:15:44
普通のボタンとかエディットとか配置したウィンドウで、
その親ウィンドウをDestoryWindowしたら子ウィンドウのボタンとかは
DestroyWindowしなくても問題なし?

こんなの↓
DestoryWindow(hButton);
DestoryWindow(hEdit);
・・・
最後に
DestoryWindow(hDialog);
693デフォルトの名無しさん:2008/07/26(土) 12:25:15
>>692
ttp://msdn.microsoft.com/en-us/library/ms632682.aspx
> If the specified window is a parent or owner window, DestroyWindow automatically destroys the associated child or owned windows
> when it destroys the parent or owner window.
694デフォルトの名無しさん:2008/07/26(土) 12:27:32
>>693
日本語で書け馬鹿
695デフォルトの名無しさん:2008/07/26(土) 12:28:00
XPのタスクバーをホバー表示にしたいんだけどどうすればいい?
696デフォルトの名無しさん:2008/07/26(土) 12:45:56
解脱すればおk
697デフォルトの名無しさん:2008/07/26(土) 13:00:08
>>694
ティティピィ://エムエスディエヌ.マイクロソフト.コム/エン―ユーエス/ライブラリ/エムエスロクサンニロクハチニ.エーエスピーエックス
>イフザスペシファイドウィンドウイズアペアレントオアオーナーウィンドウ,デストロイウィンドウオートマティカリーデストロイズジアソシエイテッドチャイルドオアオウンドウィンドウズ
>ホェンイットデストロイズザペアレントオアオーナーウィンドウ.
698デフォルトの名無しさん:2008/07/26(土) 13:31:05
>>697
なんというエネルギーの無駄遣い
699デフォルトの名無しさん:2008/07/26(土) 13:33:25
その愚直さには価値がある。
力の使いどころを間違えなければきっと成長できるはず。
700デフォルトの名無しさん:2008/07/26(土) 14:02:09
ありがとうございます^^
701692:2008/07/26(土) 14:35:57
DestroyWindow機能は指定された窓を破壊します。
>機能は、それからそれを非活性化して、キーボード焦点を取り除くために
>WM_DESTROYとWM_NCDESTROYに窓へのメッセージを送ります。 機能は、
>また、窓のメニューを無効にして、糸のメッセージキューを洗い流して、タイマを破壊して、
>クリップボード所有権を取り除いて、クリップボードビューアーチェーンを壊します
>(窓がビューアーチェーンの先端にあるなら)。

>親か所有者の窓を滅ぼすとき、指定された窓が親か所有者の窓であるなら、
>DestroyWindowは自動的に関連子供か所有されている窓を滅ぼします。
>機能は最初に子供か所有されている窓を滅ぼします、そして、次に、
>それは親か所有者の窓を滅ぼします。

>また、DestroyWindowはCreateDialog機能によって作成された
>modelessダイアログボックスを破壊します。

つまり、親ウィンドウを一発DestoryWindowしておけば大丈夫ってこと?

702デフォルトの名無しさん:2008/07/26(土) 14:38:11
マウスカーソルがクライアントウィンドウから出た時にでるウィンドウメッセージ
ってありますか?
703デフォルトの名無しさん:2008/07/26(土) 14:54:06
TrackMouseEvent

WM_MOUSELEAVE
704デフォルトの名無しさん:2008/07/26(土) 16:21:06
>>703
ありがとうございました。
705デフォルトの名無しさん:2008/07/26(土) 18:37:20
VC2005〜2008によるWindowsプログラミング入門でお勧めの書籍ってどんなのがありますか?

『WinAPIリファレンス』(最新版じゃなきゃ駄目?)
『猫でも分かるWindows〜』
を購入しようと思っているのですが。
706デフォルトの名無しさん:2008/07/26(土) 19:04:09
ぺぞるどぼんだけかっとけ
707デフォルトの名無しさん:2008/07/26(土) 20:45:05
猫でもかっときゃ間違いは無い

Windowsとゲームぷpr はかぶってる内容が多かった
あとは赤坂れおん著くらいのしか知らないなぁ
一冊読んでだいたい理解したらあとは、ぐぐってぐぐってぐぐるんだ
708デフォルトの名無しさん:2008/07/26(土) 21:04:12
>>707
「赤坂れおん」‥‥‥避けたほうが。
709デフォルトの名無しさん:2008/07/26(土) 21:12:02
高いけどpetzold本(プログラミングWindows)
710デフォルトの名無しさん:2008/07/26(土) 22:20:32
意外にも、Windowsプログラミング全般のスレって無いんですね。
711デフォルトの名無しさん:2008/07/26(土) 23:55:48
Officeとかの単独のアプリケーションのものでない限り、
MS製で32/64ビットWindowsで使えるAPIなら
なんでも広義のWin32 APIだと思っている俺。
712デフォルトの名無しさん:2008/07/26(土) 23:59:23
何故か急に自己紹介が
713デフォルトの名無しさん:2008/07/27(日) 01:24:59
InternetSetOption で認証をクリアした後、XML系のAPIで認証が必要なURLにアクセス出来るけど
あれってどうやって認証を引き継いでるの?socketで同じように認証を引き継ぎたいんだけど

そもそも、HTTPで認証を複数回に渡って引き継げるの?
毎回認証情報をサーバーに渡さないとダメなんじゃないの?
714デフォルトの名無しさん:2008/07/27(日) 01:50:19
おそらく、これが浸透してしまうとJIS規格も変えざる終えないだろう。
アメリカの一民間企業が、日本の工業規格を変えようとしてんだぞ。
アメリカの一民間企業が、日本人の生活習慣を変えようとしてんだぞ。
いいのか?これで!
715デフォルトの名無しさん:2008/07/27(日) 01:59:14
いいよ
つーか終わった話題持ち出すなよ
716デフォルトの名無しさん:2008/07/27(日) 08:58:15
>>713
Wininetの認証情報をsocketが知ってるわけないだろ。
何もせずに認証引き継ぎたいならWininet使え。
socket使うんだったら当然httpヘッダも全部自前で書くだろ。
認証情報はhttpヘッダに乗って渡される。
717デフォルトの名無しさん:2008/07/27(日) 12:20:47
CS_OWNDCを追加するとウィンドウ毎にメモリをいつもより多く消費するらしいんですが
どれくらい消費するのですか?
718デフォルトの名無しさん:2008/07/27(日) 13:01:14
自分で計測しろよ

つかvistaから無意味になっている気がせんでもない
719デフォルトの名無しさん:2008/07/27(日) 13:07:22
>>718
タスクマネージャで見たところ変化なかったつまり気にすんなということですね、
わかりました。
720デフォルトの名無しさん:2008/07/27(日) 13:30:20
>>719
計測しても意味ないような気がする。
721デフォルトの名無しさん:2008/07/27(日) 13:33:34
>>720
何もしてない癖に「気がする」とか言ってんじゃねーよ
722デフォルトの名無しさん:2008/07/27(日) 14:32:41
知らないならレスしないでください
723デフォルトの名無しさん:2008/07/27(日) 14:49:26
otitsuke
724デフォルトの名無しさん:2008/07/27(日) 14:55:01
pettan
725デフォルトの名無しさん:2008/07/27(日) 18:49:44
DLL Injectionしてボタンの位置を変えたり、WindowProcを横取りしたりしたいんですけど参考になるページなど教えていただければ幸いです。
726デフォルトの名無しさん:2008/07/27(日) 18:52:51
wizard bibleでも読めばたぶん書いてあるだろ
727デフォルトの名無しさん:2008/07/27(日) 18:53:00
またフック厨か。夏だなぁ。
728デフォルトの名無しさん:2008/07/27(日) 18:59:07
>>727
来なくていいよ^^
729デフォルトの名無しさん:2008/07/27(日) 19:00:03
来ちゃった・・・///
730デフォルトの名無しさん:2008/07/27(日) 19:02:32
>>729
はやく帰ってね^^
731デフォルトの名無しさん:2008/07/27(日) 19:59:41
どこに?
732デフォルトの名無しさん:2008/07/27(日) 19:59:42
フックならジェイソン尾妻に聞くといいよ
733デフォルトの名無しさん:2008/07/27(日) 20:46:40
なにこの糞スレ
734デフォルトの名無しさん:2008/07/27(日) 21:39:30
Win32APIが糞なのだからWin32APIスレが糞なのも当然じゃないか。
735デフォルトの名無しさん:2008/07/28(月) 00:57:32
なにこの天才
736デフォルトの名無しさん:2008/07/28(月) 02:00:27
なにこの鬼才
737デフォルトの名無しさん:2008/07/28(月) 02:33:19
誘導されてきました。

メッセージプロシジャでWM_CHARが送られてきた時、
OnKeyDownという関数にwpとlpをそのまま渡しています。
そして、押されたキーが"v"だった時だけ処理をしたいのでstrcmpを使ってみたのですが
そこで強制終了してしまいます。正しくはどう書いたらよいのでしょうか?
教えてください。お願いします。

OnKeyDown(WPARAM wp, LPARAM lp)
{
switch(wp)
{
case VK_RETURN:
break;



default:
if(strcmp((char*)wp,"v") == 0)
{
//キーがvだった時の処理
}
}

strcmpの前にメッセージボックスでwpの中身を確認しようとしたのですが、
同じように落ちました。どうもwpをchar*にキャストしようとすると落ちるみたいなのですが・・・
738デフォルトの名無しさん:2008/07/28(月) 02:37:10
これはひどい
739デフォルトの名無しさん:2008/07/28(月) 02:37:33
740デフォルトの名無しさん:2008/07/28(月) 02:47:38
そりゃwpに入っているのは文字列へのポインタじゃないからな。
741デフォルトの名無しさん:2008/07/28(月) 02:57:05
要するにどう書いたらよいのでしょうかw
742デフォルトの名無しさん:2008/07/28(月) 02:57:33
なんで笑ってんの?
743デフォルトの名無しさん:2008/07/28(月) 02:59:39
だってもうおかしくてw
ヒィーヒッヒッヒ
744デフォルトの名無しさん:2008/07/28(月) 03:00:03
wp == 'v'でいいんじゃね
しらねーけど
745デフォルトの名無しさん:2008/07/28(月) 03:01:26
うーん、APIとかのプログラムはまったくやったことないが

>>740のヒントで>>739をみるとこれが参考になるんじゃないかと・・・

> if(msg->message==WM_CHAR && msg->wParam=='\t') return 0;
746デフォルトの名無しさん:2008/07/28(月) 03:18:36
>>745
知らないならレスしないでね
747737:2008/07/28(月) 03:41:47
レスありがとうございます。

vキーの検出は>>744の書き方でうまく取れました。

取れたのですが、、すいません。
実際やりたいのはCtrl+vの検出でした・・・

WM_KEYDOWNでVK_CONTROLを拾ってm_bCtrlとかいうメンバ変数にフラグを立てつつ、
WM_CHARで"v"を拾えればCtrl+vを調べられる、
と思い、"v"の拾い方を質問したわけなのです。

結果としてv単独ではうまく拾えたのですが
本来の目的であるCtrlとの同時押しだと引っかかりませんでした。
(WM_CHARにはv単独押しのときとは違うコードが送られてくるらしく。)

なのですいませんが質問を変更させてください。

Ctrl+vの検出はどうしたらいいんでしょうか?
748デフォルトの名無しさん:2008/07/28(月) 03:46:31
あ、GetKeyState()と同時に使えばいいんですね。
解決しました。

お騒がせしました。ありがとうございました。
749デフォルトの名無しさん:2008/07/28(月) 03:48:34
750725:2008/07/28(月) 05:49:43
すいません、何故誰も教えてくださらないのでしょうか?
751デフォルトの名無しさん:2008/07/28(月) 07:03:32
>>1の日本語を読めない人はお帰りください
752デフォルトの名無しさん:2008/07/28(月) 07:34:05
以前、80MB級の画像のためのメモリ確保で質問したものですが、

HeapCreate(), HeapAlloc() 系がいいかなと既存の GlobalAlloc()
から変更を進めていますが、GetProcessHeap 以外に Heap を確保
する、特に複数確保すると HeapAlloc() - HeapFree() の度にどの
HANDLE のものか憶えて置かないといけない。
とすると、メモリ表を持って、確保ー解放の度にそれを見に行くこと
になる。そんなことを皆さんしているのですか。それとも Heap は
1つで済ませているのですか。

複数の Heap は面倒だから、VirtualAlloc() かとも思うと、これは
小さいメモリには不向きという。ウーン悩ましい。アドバイスを。
(2GB RAM があって、一時メモリはたかだか 100MB しか使わないの
 に、なんでこんなに悩まないといけないか、不思議。)
753デフォルトの名無しさん:2008/07/28(月) 08:39:57
64KB以上確保するなら全部VirtualAllocで良いです

それ以下でも別に良いけどね
今の時代メモリなんて腐るほど積んであるから
754デフォルトの名無しさん:2008/07/28(月) 11:25:40
教えてください。
今Imeの登録および消去できるプログラムをCで作成中です。
やりたいことは現在ユーザー登録している単語を全て消去です。
ImmEnumRegisterWordで登録してある単語を全て列挙して、
そのコールバック関数の先で、
見つかった登録情報をImmUnregisterWordに渡してそのまま消そうとしてます。
現状このロジックだとImmUnregisterWordの関数自体は成功しているのに、
消し漏れがあります。量的には約300語消すと5個ぐらい消し漏れが常にあります。
何か原因とかありますか?
もし今消してもOKとか、今消したらダメとか、ステータスが拾える関数とかあれば、いいのですが・・・
755デフォルトの名無しさん:2008/07/28(月) 11:43:50
他アプリのコントロールのハンドルから
そのコントロールの種類(エディットボックス、コンボボックスとか)
がわかるAPIかあれば教えていただけないでしょうか?
文字を入力できるコントロールかだけでもわかるとよいのですが
756デフォルトの名無しさん:2008/07/28(月) 11:47:22
列挙の最中に要素を削除しちゃって大丈夫なんか?
俺ならリストに記録しておいて、列挙が終わってから削除するけど。
757デフォルトの名無しさん:2008/07/28(月) 11:47:47
GetClassNameでクラス名で判別するとか
758デフォルトの名無しさん:2008/07/28(月) 12:23:33
>>757
開発言語によってはTEditとかThunderRT6TextBoxみたいな名前だからそれでは無理だろう
759755:2008/07/28(月) 12:24:35
>>757
レスありがとうございます
なるほど、作られた言語によっていろんなクラス名がありそうですが
いろんなソフトのコントロールのクラス名を今からちょっと調べてみます
760752:2008/07/28(月) 12:32:00
>>753
ありがとうございます。
761デフォルトの名無しさん:2008/07/28(月) 12:37:00
>>759
つーかクラス名なんて開発者が好きな名前で付けれるし

テキストエディタでよくある自作Editコントロールだとどんな名前付いてるか分からんし
Afx:xxxx〜とかATL:xxxx〜みたいなライブラリが勝手につけた汎用的な名前だと
クラス名だけで判別するなんて無理
762766:2008/07/28(月) 12:57:33
>>761
ですね
数点調べてみたんですが無理そうです
IEのアドレスボックス=Edit
メモ帳=Edit
EmEditorエディター部=EmEditorView
ワードパッド=RichEdit20W
Outlookメール本文入力欄、google検索ボックス=Internet Explorer_Server
Beckyメール本文入力欄=DanaEditWindowClass
Jane Doeレス入力欄=TTntMemo.UnicodeClass
Delphi製
デフォでTEdit,TComboBox,TMemoとか
763755:2008/07/28(月) 12:59:04
↑すいません755です
764デフォルトの名無しさん:2008/07/28(月) 13:09:31
ウィンドウの挙動なんて好きに実装できるんだから、
それをハンドルから判別できる方法なんてあるわけない
765755:2008/07/28(月) 13:32:16
ソフトを作る人のさじ加減一つで入力できるコントロールも
できないようにできますもんね…
できないとわかるだけでも助かりました。ありがとうございます!
766デフォルトの名無しさん:2008/07/28(月) 14:29:42
>>765
入力を受け付けるか調べるだけならWM_GETDLGCODEで何とかならんか?
もちろんコントロールがこのメッセージを正しく処理していればの話だが。
767デフォルトの名無しさん:2008/07/28(月) 15:02:03
質問です。
システムフックで任意のウィンドウを操作するプログラムを作成しているのですが、
奇妙な問題に直面しています。プログラムのリストビューにフォーカスした瞬間
プログラムが応答しなくなり、システムダウンしてしまいます。WM_COPYDATAメッセージの
送信がこの現象のトリガーになっているようですが、原因が分からず対応に苦慮しています。
WM_COPYDATAメッセージの情報は正しく受け渡され、フックの処理には成功しています。
開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
768デフォルトの名無しさん:2008/07/28(月) 15:12:44
チート対策だろ
769デフォルトの名無しさん:2008/07/28(月) 16:53:00
WS_POPUPで作ったウィンドウでWM_MOUSELEAVE相当の処理をしたいんですけど、
何か良い方法はありませんか?
WM_SETCURSORやTrackMouseEventを使ってみたのですが、クライアント領域から
抜けた事を正しく検知できませんでした。
770デフォルトの名無しさん:2008/07/28(月) 16:57:07
WM_TIMER + GetCursorPosだろjk
771デフォルトの名無しさん:2008/07/28(月) 16:59:29
SetCaptureとWindowFromPointとScreenToClient
772754:2008/07/28(月) 17:06:29
>>756
レスありがとうございます。
確かに列挙中に消すのは不安だったので、
早速「列挙→メモリ内に展開→展開したものを元に削除」
に作り変えてみました。


・・・結果同じでしたorz。
773769:2008/07/28(月) 17:07:04
すんません。
自己解決しました。
結果的にTrackMouseEventで処理できました。
774デフォルトの名無しさん:2008/07/28(月) 17:15:04
>>772
外したか。失礼。これこそ「知らないならレスするな」だったな。
775デフォルトの名無しさん:2008/07/28(月) 17:23:18
>>772
列挙に漏れはなく、削除に失敗するということですね
776デフォルトの名無しさん:2008/07/28(月) 17:39:26
>>772
どうせ「メモリ内に展開」の部分でバグってるだけだろ
777デフォルトの名無しさん:2008/07/28(月) 17:42:22
同じものが毎回失敗するのか、とか条件洗い出してみては。
失敗しない気がするのは止めながらやってるからかなー
778デフォルトの名無しさん:2008/07/28(月) 17:54:05
知らないならレスしないで下さい
779デフォルトの名無しさん:2008/07/28(月) 17:57:03
実際にコード書いて試してるのに、知らないならレスするなとは
オマエ何者だ?
780デフォルトの名無しさん:2008/07/28(月) 17:57:42
人読んで名無しと申す!
781デフォルトの名無しさん:2008/07/28(月) 18:41:14
>>779
知らないならレスしないでください
782デフォルトの名無しさん:2008/07/28(月) 20:10:58
訳:かまってほしいな
783デフォルトの名無しさん:2008/07/28(月) 20:34:31
>>782
はずれ
784デフォルトの名無しさん:2008/07/28(月) 20:35:25
訳:かまってほしいな
785デフォルトの名無しさん:2008/07/28(月) 20:42:55
>>752
HeapCreateで複数のハンドルを使うときは、
HeapDestroyでまとめて解放したり、
スレッドや処理・用途ごとにヒープを使い分けたりとか、
どのハンドルで解放すべきかがコードを見れば自ずと分かる使い方をすることが多いと思う。
そういうメモリ表は聞いたことがないな。
786デフォルトの名無しさん:2008/07/28(月) 21:00:45
>>752
こういう理屈ばかりこねてる頭の固い人ってプログラマに向いてないと思うよ
ていうかその程度のメモリ管理で悩むぐらいならJavaや.NETで作れば?
787デフォルトの名無しさん:2008/07/28(月) 21:20:26
というかmallocはその辺を意識しないですむ様につくられてんじゃん
788デフォルトの名無しさん:2008/07/28(月) 21:40:44
あ〜あ言っちゃった
789デフォルトの名無しさん:2008/07/28(月) 21:50:44
何か?
790デフォルトの名無しさん:2008/07/28(月) 23:41:09
VB6.0で、CreateDCを使おうとしているんだけど、

CreateDC("winspool",PRINTER_NAME,0,0)

とやるとVBが落ちるんだけど、どうすればいいの?
環境はWINXP SP3です。
791デフォルトの名無しさん:2008/07/29(火) 00:04:50
APIの宣言が間違ってるとかだろ

.netじゃないVBって落ちすぎなんだよなー
サブクラス中にブレークポイントで止まると開発環境が固まるとかマジ有り得ん
792デフォルトの名無しさん:2008/07/29(火) 01:22:53

 リストビューコントロールで,リストアイテムの行をドラッグしてアイテム位置を入れ替えたいと思っています.

LVN_BEGINDRAG でドラッグの開始を検知して,ドラッグ終了時の行位置に挿入しようと考えていたんですが,
ドラッグの終了はどうやって検知すればいいんでしょうか?
 LVN_ENDDRAG は windows mobile/CE だけにしか無いようですし,マウスのボタンが離されたメッセージが
送られてくる様子もないです.

 Timer をつかってマウスボタンを常時監視する方法も考えたんですが,どうもスマートじゃないですよね.
何か定法があるんでしょうか?
793デフォルトの名無しさん:2008/07/29(火) 01:43:28
 OLE ドラッグドロップを実装すれば,出来ますよ.
794デフォルトの名無しさん:2008/07/29(火) 06:07:22
スレッド関数を関数ポインタに入れることってできないんですか?
こんな感じで入れたいのですが、_stdcallのせいかエラーになってしまいます。

DWORD WINAPI (*p)(LPVOID) = ThreadFunc;
795デフォルトの名無しさん:2008/07/29(火) 06:27:35
DWORD (WINAPI *p)(LPVOID) = ThreadFunc;
或いは
DWORD (WINAPI *p)(LPVOID);
*((void**)&p) = (void*)ThreadFunc;
796デフォルトの名無しさん:2008/07/29(火) 07:16:51
>>795
なるほど、ありがとうございます。
797754:2008/07/29(火) 09:13:16
遅レスですいません。
>>774
いえいえ。マジレスをいただけただけでありがたいです。
助かりました。

>>775
そうです。一応展開部と削除部でログ出力して同じものが
出力されているのは確認しています。
そして実行後にIMEに残っている登録もそのログに出力されていました。

>>776
同上。

>>777
毎回違うものが残ります。残る数は同じ。
なんとなくですが残る法則として読みの順番を並べて同じ塊が連続で残り、
実行するたびそれが徐々にずれる感じです。
798デフォルトの名無しさん:2008/07/29(火) 12:14:11
>>795
LPTHREAD_START_ROUTINE p = ThreadFunc;
でいいじゃん

馬鹿?
799デフォルトの名無しさん:2008/07/29(火) 12:19:15
>>794に合わせて回答したからだろ
厳密には関数ポインタはvoid*に入れちゃいけないんだけどな
互換性ないから
800デフォルトの名無しさん:2008/07/29(火) 12:21:49
↑話を理解してない馬鹿
801799:2008/07/29(火) 12:27:21
あぁ一行目と二行目以降内容は別の話しなので
802デフォルトの名無しさん:2008/07/29(火) 12:35:42
LPTHREAD_START_ROUTINE は関数ポインタ型の typedef にすぎないのだから
そもそも >>794 の書き方が間違ってるのにわざわざ変なキャストしてまでそれに合わせる必要なんて無いし
変な書き方を教えると碌な事にならないだろう
803デフォルトの名無しさん:2008/07/29(火) 12:39:49
質問者にどこがおかしいのかを指摘するほうが親切だと思うがな。
そのものずばり答えるよりは。
804デフォルトの名無しさん:2008/07/29(火) 12:51:39
Advanced Windows買おうと思うんだけど
5版はもうすぐでそう?
805デフォルトの名無しさん:2008/07/29(火) 12:53:02
これ以上改定を続けて意味があるのか微妙な気がする
806デフォルトの名無しさん:2008/07/29(火) 13:10:30
807デフォルトの名無しさん:2008/07/29(火) 13:39:24
>>806
値段がいきなり変わったなー
できれば日本語版がほしいから、翻訳されるの待つか
808デフォルトの名無しさん:2008/07/29(火) 13:43:36
何時になったら出るんだよっていらいらがつのり、我慢が出来ずに買ってしまった頃に邦訳発刊の報せ
809760-752:2008/07/29(火) 14:19:10
>>785-787
普通はお説の通り。
こちらの事情を晒しても意味はないけど、このソフト LSI86-C 以来のもので
18年。ソース追加追加で15万行。FM がルーツ。

画像をウインドウに表示するのに、MDI で新規に開いて window long にその
ポインタなどを渡している。ウインドウを閉じるときそのデータは捨てるのだが
あれこれで Alloc しているとどれで取ったものか分からない。1つに絞ると
HeapReAlloc() が捨てがたい。しかし画像はデカイのがある。てな訳。

メモリ表って言ったのは、jpeg ソースが似たことをやっていた。そのパクリ。
810デフォルトの名無しさん:2008/07/29(火) 14:25:58
1x1の画像からVirtulAlloc使えばいいじゃない。
811デフォルトの名無しさん:2008/07/29(火) 14:42:24
そんな馬鹿な
812デフォルトの名無しさん:2008/07/29(火) 14:53:02
C++ ならサイズによって取得方法を内部的に変更して
外からはそれを意識せず使えるようにするって感じにするね。
C でも似たようにはできるはず。
813デフォルトの名無しさん:2008/07/29(火) 14:55:57
五月蝿いから全部mallocにしとけよ
814デフォルトの名無しさん:2008/07/29(火) 15:02:50
ご・・・五月蝿い!
815デフォルトの名無しさん:2008/07/29(火) 15:05:45
callocにします
816デフォルトの名無しさん:2008/07/29(火) 15:06:12
>>809
根本的に手を入れないなら触らずにそっとしとけよ・・・
817デフォルトの名無しさん:2008/07/29(火) 15:09:08
お前らクズの意見は絶対に参考にはならないとおもってたけでやっぱりならなかった。
まあ、夏休みだしな。
818デフォルトの名無しさん:2008/07/29(火) 15:10:47
結局のところ自分の考えに同調が欲しいだけだろクズ
同意が欲しけりゃ質問するな
819デフォルトの名無しさん:2008/07/29(火) 15:12:25
自己解決しましたぁん^^
820デフォルトの名無しさん:2008/07/29(火) 15:12:33
>>818
知らないならレスしないで下さい。ウザイです。
821デフォルトの名無しさん:2008/07/29(火) 15:17:40
訳:かまってほしいな
822デフォルトの名無しさん:2008/07/29(火) 15:38:09
>>806
第6部が丸々無くなってしまったのね。
新しくできたError Reporting and Application Recoveryは読みたいけど、
Advanced〜を持っていたらわざわざ買うほどでもないかな。
823デフォルトの名無しさん:2008/07/29(火) 16:32:47
質問してもいい空気ですか?
824デフォルトの名無しさん:2008/07/29(火) 16:33:46
別にいつでもいいよ。
たまに埋もれて忘れられるけどなw
825デフォルトの名無しさん:2008/07/29(火) 16:43:23
お前には無理そうだからやめておきます。
826デフォルトの名無しさん:2008/07/29(火) 16:51:40
あんた最低だな
827デフォルトの名無しさん:2008/07/29(火) 16:53:27
ご、ごめん・・・
828デフォルトの名無しさん:2008/07/29(火) 16:56:26
ごめんじゃすまされないぞ!
829デフォルトの名無しさん:2008/07/29(火) 16:59:03
すいません
830デフォルトの名無しさん:2008/07/29(火) 17:01:46
吸いませんじゃなくてすみませんだろ?
831デフォルトの名無しさん:2008/07/29(火) 17:02:26
ボクのでよかったら吸ってください
832デフォルトの名無しさん:2008/07/29(火) 17:04:16
吸うよりしゃぶるほうがすきです
833デフォルトの名無しさん:2008/07/29(火) 17:18:18
しゃぶみませんでした
834デフォルトの名無しさん:2008/07/29(火) 17:36:19
あわせるなwwwwwwwwwwww
835デフォルトの名無しさん:2008/07/29(火) 18:09:15
また荒れてるのか

責任取れ馬鹿>>809
836デフォルトの名無しさん:2008/07/29(火) 19:04:23
VirtualAllocの最小単位は普通4KBなんだから、十分ありだと思うけどなあ。
837デフォルトの名無しさん:2008/07/29(火) 19:17:56
頭の固いオッサンプログラマに何を言っても無駄
838デフォルトの名無しさん:2008/07/29(火) 19:23:43
>>830->>833
マジできもい
絶望的にもてないだろお前らww
839809-752:2008/07/29(火) 19:25:57
>>835
そうも思うよ。けど適当にからかい材料で楽しまれている見たいだし・・・。
>>818
同意というより、相場の感触だな。大体分かってきた。今、HGLOBAL という
用語をいくつかの用途に分けて、いくつかの別の名前に置換している。
今のところ、全部 #define chomechome HGLOBAL だけどね。そのうち #ifdef
で一斉に切り替える。
>>812
その準備はマある。GlobalAlloc() を直接使っているのは数箇所のみ。
以前のコードを生かすため myMalloc(), myNewHandle(), myNewPtr() など
の中から呼んでいるから。しかしここ10年つい HGLOBAL の型名を直接
移動可能変数に使ったのが最大の敗因ね。

他のレスをくれた方、いろいろ有難う。
840デフォルトの名無しさん:2008/07/29(火) 19:34:57
NewHandleやNewPtrとか書くところを見るに、もしやマカーか?
841デフォルトの名無しさん:2008/07/29(火) 20:06:52
ウィンドウプロシージャで,
自分で処理したメッセージも DefWindowProc() に回すのは
何か意図があるのでしょうか?
通常は自分で処理したメッセージは0を返すと思うのですが,
何か意図があるかもしれないので修正するべきか迷っています.

LONG __stdcall WndProc(UINT uMsg, UINT wp, LONG lp)
{
switch (uMsg) {
case WM_PAINT:
OnPaint(wp, lp);
break;
// return 0L;
}
return (DefWindowProc(hWnd, uMsg, wp, lp));
}
842デフォルトの名無しさん:2008/07/29(火) 20:11:27
意図があることもあるし、ないこともある
WM_PAINTはBeginPaint/EndPaintをちゃんと呼んでるなら回さないでいい
843デフォルトの名無しさん:2008/07/29(火) 20:29:31
なるほど,後処理をDefWindowProcに回すということですね.
以前,サブクラス化したプロシージャで全てのメッセージを
CallWindowProc(DefWndProc, hWnd, uMsg, wp, lp);
に回しているためにフォーカスが返ってこないというバグを修正した
事があったので気になりました.
メインのウィンドウプロシージャだと動き自体はおかしくならないようですが,
気になるのでOnPaintの中を見直して修正します.
ありがとうございました.
844デフォルトの名無しさん:2008/07/29(火) 23:42:25
#define chomechome HGLOBAL

こういうの、普通typedefで書くだろ・・・

なんだか
> こちらの事情を晒しても意味はないけど、このソフト LSI86-C 以来のもので
> 18年。ソース追加追加で15万行。FM がルーツ。
がネタに思えてきた
845デフォルトの名無しさん:2008/07/30(水) 00:10:54
typedefでなく#defineなのは、昔風といえなくもないな。
ただ、今頃になってGlobalAllocがどうとか言い出すのは妙な気がする。
10年くらいほったらかしだったんじゃね?
846デフォルトの名無しさん:2008/07/30(水) 01:06:26
10年くらい冬眠していた人なんでしょうね、分かります
847デフォルトの名無しさん:2008/07/30(水) 03:38:45
ツリービューを使ったプログラムで
ノード数が200ほどあるツリービューのアイテムを再構築する際に
TreeView_DeleteAllItems
で一度全削除してから、再度ツリービューを再構築しています
ツリービューのアイテム構築はサクサク動くのですが
意外に全削除の動作が遅いです(1秒ぐらいかかる)
ツリービューのリフレッシュ目的で TreeView_DeleteAllItems を読んだのですが
もっと高速なツリービュー初期化ってあるのでしょうか?
よろしくお願いします
848デフォルトの名無しさん:2008/07/30(水) 03:45:21
TreeViewの削除が糞重いのは割と有名
CodeProjectかどこかに強引に改善するソースが落ちてた気がする
849デフォルトの名無しさん:2008/07/30(水) 04:00:30
>>848
有名な話だったんですかー、今回で初めて知りました
色々と検索してみましたが
仮想リストビュー辺りが参考になりそうな予感がします
ありがとうございました
850839-752:2008/07/30(水) 07:48:51
>>845
>>393 に最初に書き込んだように、これまで気にもしなかった。

「応答なし」頻発で腰を上げたところ。「応答なし」でぐぐると Vista では
他のアプリでも出るらしい。Xp でも出てたらしいけど。探っていたら
GlobalFree() が時間がかかるらしいって分かったから、なんとかしようと
思い始めた。この暑い中、後ろ向きの作業だ。
851デフォルトの名無しさん:2008/07/30(水) 10:24:40
>>850
しつこいんだよ
自分で効率のいいメモリ管理が出来ない奴は.netに移植してろ
852デフォルトの名無しさん:2008/07/30(水) 10:29:01
.netってどうなのよ?
853デフォルトの名無しさん:2008/07/30(水) 10:29:46
.netよ
854デフォルトの名無しさん:2008/07/30(水) 10:29:51
初回起動おせー
855デフォルトの名無しさん:2008/07/30(水) 10:43:10
初回起動ぐらい我慢しとけ
856デフォルトの名無しさん:2008/07/30(水) 10:45:02
流石に最近は気にならない程度にCPUが早くなってきたよw
857デフォルトの名無しさん:2008/07/30(水) 10:48:59
#define chomechome HGLOBAL
↑こんな書き方してる時代遅れプログラマ(実は初心者か?)なら
今からC#でも勉強して.netに移植した方が幸せになると思うがね
どうせGlobalAlloc以外にも問題山積だろ
858デフォルトの名無しさん:2008/07/30(水) 11:08:55
>>422によると猫プログラミング見てるみたいだから初心者だな
中級者以上になるとあんな糞コード見てられない

玄人ぶろうと必死でググって書いた文章がこれか
> こちらの事情を晒しても意味はないけど、このソフト LSI86-C 以来のもので
> 18年。ソース追加追加で15万行。FM がルーツ。

大体LSI86-Cって何だよ。お前が作ったコンパイラか?w
> LSI86-C に一致する日本語のページ 1 件中 1 - 1 件目 (0.02 秒)
859デフォルトの名無しさん:2008/07/30(水) 11:12:41
もういいから
860デフォルトの名無しさん:2008/07/30(水) 11:31:57
夏休みになると変な奴が湧いてくるな・・・

>>850
もう来ないでね
861デフォルトの名無しさん:2008/07/30(水) 11:38:30
すいません、誰か教えてください。

ウィンドウメッセージの送信元のウインドウハンドルを取得したいんですが、
どうすれば良いんでしょうか?
送信元のアプリは自分で作る訳ではないので、ウインドウメッセージ内にハンドルを格納する、というのは無理です。
自アプリに対して、誰がどのようなメッセージを送信してきているのかを把握したいんです。
Spy++等で受信しているメッセージは見れるんですが、送信元が分からないもんで・・・。
よろしくお願いいたします。
862デフォルトの名無しさん:2008/07/30(水) 11:55:08
>>861
ムリ
863デフォルトの名無しさん:2008/07/30(水) 12:00:50
そもそもウィンドウメッセージの送信元はウィンドウとは限らないし
864デフォルトの名無しさん:2008/07/30(水) 12:09:53
知らないならレスしないで下さいよ。
865デフォルトの名無しさん:2008/07/30(水) 12:18:03
知らないならレスしないでください
866デフォルトの名無しさん:2008/07/30(水) 12:22:34
>>858
LSI C-86だって察してあげようよ、初心者なんだから。
867デフォルトの名無しさん:2008/07/30(水) 12:24:04
それぐらい察してほしかったってのが本音
868デフォルトの名無しさん:2008/07/30(水) 12:25:49
ようするに知らないならレスするなくずってことですよね
869デフォルトの名無しさん:2008/07/30(水) 12:28:50
>>868
訳:かまってほしいな

ってことですよ
870デフォルトの名無しさん:2008/07/30(水) 12:37:21
最近のHeapAllocはあまりにでかい容量を指定されると
VirtualAlloc丸投げ(それでも解放はHeapFreeで)って話なかったっけ?
それだったら、全部HeapAllocでいいじゃない。

そもそもmallocとかvectorとか言語固有の方法使えばいいって前にも言っている奴いたよな。
871デフォルトの名無しさん:2008/07/30(水) 12:48:57
仮にそういう話があったとしても、仕様書に明記されてないんじゃマトモに使えないだろう
だいたい最近ってどういう定義だ
872デフォルトの名無しさん:2008/07/30(水) 12:51:14
>>870
もういいって
人の話を聞かない馬鹿はほっとけよ
873デフォルトの名無しさん:2008/07/30(水) 12:52:46
>>872
お前はレスするな荒れる
874デフォルトの名無しさん:2008/07/30(水) 13:04:06
LSI86-C すら知らない糞餓鬼はレスしなくていい
正直ウザイだけ
875デフォルトの名無しさん:2008/07/30(水) 13:10:28
訳:かまってほしいな
876デフォルトの名無しさん:2008/07/30(水) 13:12:28
それぐらいかまってほしかったってのが本音
877デフォルトの名無しさん:2008/07/30(水) 13:13:25
かまってください^^
878デフォルトの名無しさん:2008/07/30(水) 13:36:34
>>875
間違っています。
以上。
はい次の方。
879デフォルトの名無しさん:2008/07/30(水) 13:50:18
夏だな

























夏だな厨って言う馬鹿
880デフォルトの名無しさん:2008/07/30(水) 13:54:51
馬鹿でーす
881デフォルトの名無しさん:2008/07/30(水) 13:57:37

ただの馬鹿
882デフォルトの名無しさん:2008/07/30(水) 14:24:04
だからLSI86-Cを知らないゆとり世代は黙ってろよ
883デフォルトの名無しさん:2008/07/30(水) 14:27:01
訳:かまってほしいな
884デフォルトの名無しさん:2008/07/30(水) 14:30:07
それぐらいかまってほしかったってのが本音
885デフォルトの名無しさん:2008/07/30(水) 14:39:21
かまってほしくない人はレスしないでください
886デフォルトの名無しさん:2008/07/30(水) 14:56:37
うんこしてくる
887デフォルトの名無しさん:2008/07/30(水) 15:07:39
うんこおわりました
888デフォルトの名無しさん:2008/07/30(水) 15:09:29
まだ残ってるぞ
889デフォルトの名無しさん:2008/07/30(水) 15:10:39
残りもだしてきました
890デフォルトの名無しさん:2008/07/30(水) 15:17:21
拭き忘れてるぞ
891デフォルトの名無しさん:2008/07/30(水) 15:19:05
あっ><
892デフォルトの名無しさん:2008/07/30(水) 15:28:05
へーきだよ、どうせまたうんこするんだし
893デフォルトの名無しさん:2008/07/30(水) 15:32:47
ちょっとお聞きしたいのですが
EN_IMECHANGE マスクは、IMEの変換待ち文字列が、キータイプなどで変更した時(例えば、「あいう」が「あいうえ」になった時)に勝手に送出されるメッセージ、という理解で大丈夫でしょうか??

また、EN_IMECHANGEが「通知される」とは、どこに向かって通知されるのでしょうか?メッセージの向かい先がよく分かっていません。どなたかご教示頂けると幸いです。
894デフォルトの名無しさん:2008/07/30(水) 15:32:50
舐めました
895デフォルトの名無しさん:2008/07/30(水) 16:37:53
質問です。
SendInputを使うために、
#include <windows.h>
をする前に
#define _WIN32_WINNT 0x0500
としているのですが、
エラー 16 error C3861: 'SendInput': 識別子が見つかりませんでした
となってしまい、ビルドできません。
OSはWindows XP SP3です。
どうしたらいいかお分かりになる方、よろしくお願いします。
896デフォルトの名無しさん:2008/07/30(水) 16:59:27
リビルドしてもだめ?
include文からSendInputの記述までたどれる?
897デフォルトの名無しさん:2008/07/30(水) 17:04:58
僕はリビングデッドです。
898895:2008/07/30(水) 17:12:53
>>896
リビルドしてもだめでした

>include文からSendInputの記述までたどれる?
これはwinuser.hの5106行にある
#if (_WIN32_WINNT > 0x0400)から#endif
までのことでいいのでしょうか?

899デフォルトの名無しさん:2008/07/30(水) 17:17:21
他の場所で既に#include <windows.h>してるとかだったらシバく
900デフォルトの名無しさん:2008/07/30(水) 17:20:04
3日前にしてました><
901デフォルトの名無しさん:2008/07/30(水) 17:22:33
まあ#include "stdafx.h" だろうなw
902895:2008/07/30(水) 17:24:48
>>899
#define _WIN32_WINNT 0x0500
#include <windows.h>

以下他に必要なものをインクルードして、WinMain関数になってます。
WinMain関数があるファイルが一番最初にコンパイルされると思ってたんですが、もしかして違うんでしょうか。

あと、#define _WIN32_WINNT 0x0500をしていると、SendInputを使おうとしなくても
atlcom.h(147) : error C2065: 'COINIT_MULTITHREADED' : 定義されていない識別子です。
が出てしまいます。
903デフォルトの名無しさん:2008/07/30(水) 18:14:14
情報小出しするなよ
そもそもATL使ってるなら#include <windows.h>なんて必要ない (ATLが内部でincludeする)
904デフォルトの名無しさん:2008/07/30(水) 19:30:20
void MyWindow::setTransparent(int rate,int key){
  LONG pre = ::GetWindowLong( hWnd, GWL_EXSTYLE );
  if(rate == 255){
    pre &= ~WS_EX_LAYERED;
  }else
  if(rate>=0 && rate<255){
    pre |= WS_EX_LAYERED;
  }
  ::SetWindowLong( hWnd, GWL_EXSTYLE, pre );
  ::SetLayeredWindowAttributes(hWnd,
    ((key&255)<<16)|(key&0xff00)|((key>>16)&255) ,
    static_cast<BYTE>(rate) , key != -1 );
}
現在こんな感じで半透明ウィンドウを実現しようとしているのですが、うまくいきません。
具体的にはウィンドウが画面の外にはみ出している時でないと後ろの画面に描画内容が
焼きついてしまったり、半透明になる値を設定しても透明にしかならなかったりするのです。

OSはXPでコンパイラはBCCです。よろしくお願いします
905デフォルトの名無しさん:2008/07/30(水) 19:58:10
MSDNでSetLayeredWindowAttributes引いてから自分が何をしたいのかちゃんと説明しろ。
むちゃくちゃすぎる
906デフォルトの名無しさん:2008/07/30(水) 21:27:32
知らないならレスしないでください
907デフォルトの名無しさん:2008/07/30(水) 21:35:19
最小化ボタンを押したのを知るにはどうしたらいいですか?
908デフォルトの名無しさん:2008/07/30(水) 21:51:44
>>907
すみません、WM_SIZEから出来ました、
909デフォルトの名無しさん:2008/07/30(水) 21:55:10
>>905
どこがむちゃくちゃすぎるんだよ ソースが読みにくいだけだろ
適当な事言うなクズ
910904:2008/07/30(水) 22:35:06
>>905
変なとこ直したんですが、やはりクライアント領域が一部でも画面外に出てないと
裏の画面に写ってしまいます。何か足りないんでしょうか?
void GameWindow::setTransparent(int key,unsigned char rate,int flag){
  if((flag | LWA_ALPHA | LWA_COLORKEY)==0)return;
  LONG pre = ::GetWindowLong( hWnd, GWL_EXSTYLE ),tmp=pre;
  if(flag | LWA_ALPHA){
    if(rate == 255)pre &= ~WS_EX_LAYERED;
    else pre |= WS_EX_LAYERED;
  }
  if(tmp != pre)::SetWindowLong( hWnd, GWL_EXSTYLE, pre );
  ::SetLayeredWindowAttributes(hWnd , RGB(key>>16,key>>8,key) , static_cast<BYTE>(rate) , flag );
}
描画はDirectXを使ってます。
911デフォルトの名無しさん:2008/07/30(水) 22:58:48
DirectXとレイヤードウィンドウの相性は悪い
912デフォルトの名無しさん:2008/07/30(水) 23:04:33
肝心なことは最初に言えよ。
913デフォルトの名無しさん:2008/07/30(水) 23:13:53
>>910
その問題とは関係ないけど、if文の中身が常に偽だったり、常に真だったりしてるから、見直したほうがいい。
914デフォルトの名無しさん:2008/07/30(水) 23:20:31
>>913
そんなのコンパイラの最適化で消えるから気にしなくていいだろ
915デフォルトの名無しさん:2008/07/30(水) 23:25:31
そこまで賢いコンパイラは少ない
916デフォルトの名無しさん:2008/07/30(水) 23:26:41
>>905
pgr
917デフォルトの名無しさん:2008/07/30(水) 23:33:54
>>915
if((flag | LWA_ALPHA | LWA_COLORKEY)==0)return;
if(flag | LWA_ALPHA){

この程度なら最適化されるだろ
918デフォルトの名無しさん:2008/07/30(水) 23:35:15
意図した動作をしないのに、最適化で消えるからいいとか、何を言っとるのかね
919デフォルトの名無しさん:2008/07/30(水) 23:49:58
DialogBox()で入力したデータをダイアログのプロシージャでnewした構造体に入れて、
EndDialog()の際にその構造体のポインタ値を返し、
ダイアログ呼び出し側で使って開放、
なんて事やってるんですが、なんか他にいい方法ってないもんですかね
920デフォルトの名無しさん:2008/07/30(水) 23:57:14
> EndDialog()の際にその構造体のポインタ値を返し
これっていいのか?と思ってヘッダ見たら
EndDialogの第2引数ってintじゃなくてINT_PTRなのかw
921デフォルトの名無しさん:2008/07/31(木) 00:12:17
>>919
MFCのCDialogクラスみたいな奴を作ればいいんじゃねーの
922デフォルトの名無しさん:2008/07/31(木) 00:59:38
>>893
どなたかよろしくお願いしますーm(_ _)m
923デフォルトの名無しさん:2008/07/31(木) 01:11:13
924850-752:2008/07/31(木) 08:51:44
昨日は一日出かけてここを見てなかったけど、いろいろレスを有難う。
925デフォルトの名無しさん:2008/07/31(木) 12:17:17
>>924
訳:かまってほしいな
926デフォルトの名無しさん:2008/07/31(木) 12:19:10
>>925
当たっています。
以上。
はい次の方。
927デフォルトの名無しさん:2008/07/31(木) 12:54:18
>>926
はずれ
928デフォルトの名無しさん:2008/07/31(木) 13:36:24
ほんとは当り
929デフォルトの名無しさん:2008/07/31(木) 13:50:00
と思ったらやっぱりはずれ
930デフォルトの名無しさん:2008/07/31(木) 13:53:28
↑つまんないから
931デフォルトの名無しさん:2008/07/31(木) 14:16:45
↓おもろいのを期待
932デフォルトの名無しさん:2008/07/31(木) 14:20:55
ふとんが
933デフォルトの名無しさん:2008/07/31(木) 14:25:24
面白いことマダー?
934デフォルトの名無しさん:2008/07/31(木) 14:44:00
多分この先ずっとないと思う。
935デフォルトの名無しさん:2008/07/31(木) 14:53:45
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
936デフォルトの名無しさん:2008/07/31(木) 14:57:51
僕はうんこを漏らしました
937デフォルトの名無しさん:2008/07/31(木) 14:59:05
面白いことマダー?
938デフォルトの名無しさん:2008/07/31(木) 18:58:30
CreateWindowで作ったボタンの、
表示文字のサイズを変更する方法、
知ってる人いたら、教えてください。

ボタンのウィンドウプロシージャを、
SetWindowLongPtr使って自前の物にして、
WM_PAINTメッセージを処理したら、
背景色が表示されなくなりました・・・。
939デフォルトの名無しさん:2008/07/31(木) 19:00:39
WM_GETFONT
GetObject
CreateFontIndirect
WM_SETFONT
940デフォルトの名無しさん:2008/07/31(木) 19:44:47
テキストエディタ作ってるんだけど、テキストをプリンタ出力する時ってTextOut系の関数で直に描画するのと一旦ビットマップに描画→BitBltでは
何か違いあります?プリンタドライバによってはTextOutはまずいとか
941デフォルトの名無しさん:2008/07/31(木) 19:46:43
ビットマップはかじつがわるくなる
942938:2008/07/31(木) 20:00:07
>>939

おぉ、ありがとうございますっ!!
943デフォルトの名無しさん:2008/07/31(木) 20:11:40
>>941
フォントを使った出力の方がいいという事か( ´ω`) サンクス
944デフォルトの名無しさん:2008/07/31(木) 23:43:25
CreateProcessを使ってIEを起動して、
そのIEの状態をWaitForSingleObjectで監視するPGMを作ってみたのですが、
XPではちゃんと動くもののVistaだとまだシグナル状態になっていないのに
制御が戻ってきてしまいます。
どうもUACの所為っぽいのですが、UACを無効にする以外で期待する動作を
させる方法ってありますでしょうか??
945デフォルトの名無しさん:2008/08/01(金) 00:21:38
すみません読み方なんですが
ヴィン32アピーで合ってますかね?
後輩からも質問がされました
946デフォルトの名無しさん:2008/08/01(金) 00:23:33
俺はAPIをエーピーアイと読む派だな。
Windowsをヴィンドウズと呼んでいるなら後は何も言うまい。
947デフォルトの名無しさん:2008/08/01(金) 00:27:36
不倫32歳って読むんだよ
948デフォルトの名無しさん:2008/08/01(金) 00:45:15
#include <windows.h>

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
return 0;
}

CとC++の基本を勉強し終えたので今日からin32APIを勉強しようと思い、Windowsゲームプログラミングという本を買いました。

次のコードをビルドしようとしたら終わるまで1.2分かかりました。
#include <windows.h>

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
return 0;
}

普通このくらいかかるもんなんですか? 使用ソフトVS2008 OS:WINXP32bit メモリ4G CPU:IntelCore2DUo E8500 3GHz
949デフォルトの名無しさん:2008/08/01(金) 00:46:52
掛かりませんよ
950デフォルトの名無しさん:2008/08/01(金) 00:47:00
すいません同じコード2個も書き込んじゃいました;
951デフォルトの名無しさん:2008/08/01(金) 00:47:40
普通は数秒以内
952デフォルトの名無しさん:2008/08/01(金) 00:51:32
Win32APIは初めてなので最初の設定が違うのでしょうか?
新規作成→プロジェクト→Win32プロジェクト(空のプロジェクト)→ソースファイルを.cppで作成してビルドしています。
解決策がわかる人がいたらアドバイスよろしくお願いします。
953デフォルトの名無しさん:2008/08/01(金) 00:54:01
すいません、自己解決しました。
理由は、プロジェクトをUSBメモリーに作っていたからです。
Cドライブ上にプロジェクトを作成してビルドしたら数秒で完了しました。
ご迷惑おかけしました。
954デフォルトの名無しさん:2008/08/01(金) 01:18:50
さいあく
955デフォルトの名無しさん:2008/08/01(金) 01:26:11
mciSendCommand の MCI_OPEN は非同期不可なんでしょうか?
956デフォルトの名無しさん:2008/08/01(金) 01:35:21
そんな難しいこと
ここの連中にわかるわけないだろ
957デフォルトの名無しさん:2008/08/01(金) 01:38:13
>>956
そうなんですか…。
他の方法を模索してみます。
御回答ありがとうございました。
958デフォルトの名無しさん:2008/08/01(金) 01:50:47
わかるけどあなた方の態度が気に入らないので教えてあげません
959デフォルトの名無しさん:2008/08/01(金) 01:55:53
>>958
せめて取っ掛かりになるようなヒントをいただけませんか?
960デフォルトの名無しさん:2008/08/01(金) 11:17:30
#include <windows.h>

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
BYTE * bytes = "BYTE *";
PBYTE pByte = "PBYTE";
LPBYTE lpByte = "LPBYTE";

MessageBox(NULL , bytes , NULL , MB_OK);
MessageBox(NULL , pByte , NULL , MB_OK);
MessageBox(NULL , lpByte , NULL , MB_OK);
return 0;
}
これをビルドしようとしたら  error C2440: '初期化中' : 'const char [7]' から 'BYTE *' に変換できません。
こんなようなエラーが出ます。 どうすればいいのでしょうか? 治し方がわかりません;;
961デフォルトの名無しさん:2008/08/01(金) 11:22:14
>>960
キャストすればいいだけだろ
962デフォルトの名無しさん:2008/08/01(金) 11:23:48
>>961
アドバイスありがとうございます。
キャストが分からないので調べてきます。
963デフォルトの名無しさん:2008/08/01(金) 11:29:58
ソースファイルの拡張子をcppじゃなくてcに変えたらできました。
ありがとうございました
964デフォルトの名無しさん:2008/08/01(金) 12:12:27
ちょw
965デフォルトの名無しさん:2008/08/01(金) 12:13:19
API扱いか分からないけどメニューバーのPOPUPの項目を、プラグインを追加するみたいに増やすのってどうやりますか?
966デフォルトの名無しさん:2008/08/01(金) 12:22:51
InsertMenuItem
967965:2008/08/01(金) 12:25:32
>>966thx
968デフォルトの名無しさん:2008/08/01(金) 22:56:41
失礼します。初めて質問させていただきます。

joyGetDevCaps関数でJOYCAPS 構造体の情報を取得し、ジョイスティックの製品名を
取得したのですが、OSによって結果が異なってしまいます。
Win2kではコントロールパネルのゲーム オプションと同じ表示になるのですが、
Vistaではコントロールパネルのゲームコントローラの表示にかかわらず、
「Microsoft PC ジョイスティック ド」となってしまいます。

Vistaでもコントロールパネルのゲームコントローラの表示と同じ結果を取得するには
どのようにすればよいのでしょうか?
969デフォルトの名無しさん:2008/08/02(土) 00:59:53
おじゃましまぁす
エクセルで開いてるファイルをCreateFileで
開きたいのですが、どの設定にしても開けません
読み取り専用でも良いので開く方法を教えてはいただけませんか
お願いしますm(_ _)m
970デフォルトの名無しさん:2008/08/02(土) 01:03:49
エクセル側が開けないようにしてたらどうやっても無理
971デフォルトの名無しさん:2008/08/02(土) 01:25:02
エクセルをAPIフックしてCreateFileの共有モードフラグを弄る
972デフォルトの名無しさん:2008/08/02(土) 17:23:25
VSのコードエディタ等は一からコントロールが作られているのですか?
973デフォルトの名無しさん:2008/08/02(土) 17:32:10
そうです
974デフォルトの名無しさん:2008/08/02(土) 17:35:40
一から作るのはどれぐらい大変ですか?
975デフォルトの名無しさん:2008/08/02(土) 17:55:49
すみません!
APIで「通常使うブラウザ」を変更したいです!
知ってる人居たら教えてくださいm(_ _)m
976デフォルトの名無しさん:2008/08/02(土) 18:02:02
Reg系関数
977デフォルトの名無しさん:2008/08/02(土) 18:15:18
なぜWin32 APIのリファレンス系書籍って、めっちゃ高くて分冊で
古いとかそんなんばっかりなんでしょうか。安くて完璧なリファレンス本
ないんですかね。
あとプログラミングWindows系の書籍も、古いし。
978デフォルトの名無しさん:2008/08/02(土) 18:16:21
最初にMediaPlayerを起動して、
次に.mp3ファイルをダブルクリックすると、
新しくMediaPlayerが起動せずに、
最初に起動した奴から再生されます。
このとき最初に起動した奴にはどういうメッセージが送られてきたのですか。
979デフォルトの名無しさん:2008/08/02(土) 18:42:57
ダイアログベースのプログラムで、ダイアログの中に窪んだ矩形領域を作ってその中にマウスでお絵かき出来るアプリを作りたいと考えています。
これは、ダイアログの中に(矩形領域のための)別のウインドウを作って、専用のプロシージャで処理してやればいいのかなーと考えましたが上手くいかないです。
ご存じの方がいらっしゃいましたら、ヒントだけでも教えていただけると幸いです。それではよろしくお願いします。
980デフォルトの名無しさん:2008/08/02(土) 19:02:09
>>979
ヒント:ペイントをSpy++で突っついてみる
981デフォルトの名無しさん:2008/08/02(土) 19:29:24
>>979
それで上手くいかない理由が分からん。普通に作ればできるだろう。

俺ならウインドウ作るの面倒だから、スタティックコントロールを配置して
サブクラス化して使うけど。
982デフォルトの名無しさん:2008/08/02(土) 20:50:50
>>978
DDE
983デフォルトの名無しさん:2008/08/02(土) 20:51:42
>>977
MSDNで十分だから
984デフォルトの名無しさん:2008/08/02(土) 21:10:04
>>977
Javaや.NETの時代だから今更Win32APIの本なんてあまり売れないからに決まってるでしょ
985968:2008/08/02(土) 21:14:04
>>968です。
ここではJOYCAPS構造体関係の質問は回答得にくいでしょうか?
なんとなくそんな気がしてきました…ハード無いと確認も出来ませんし。
どこか掲示板に限らず回答得られそうな場所はご存じないでしょうか?
986デフォルトの名無しさん:2008/08/02(土) 21:19:33
だってそんなレガシーAPI使わないし
987デフォルトの名無しさん:2008/08/02(土) 21:28:19
XPからサイズ変わったとかW版使ってないとかその辺かな
988デフォルトの名無しさん:2008/08/02(土) 21:34:11
>>977
Win32API自体古いけどよく言えば枯れている。書籍もまた然り。

でも、完璧なリファレンスってのは絶対無理だな。
Vistaで増えたものだけで1冊書ける分量がある。それが新しいバージョンが出る度だ。
989デフォルトの名無しさん:2008/08/02(土) 21:36:59
今更そんなの書いても誰が買うんだよ
990969:2008/08/02(土) 21:43:18
>>970さん>>971さん、レスありがとうございます
対処してるアプリだと、リードオンリーで開きますか?とか
聞いてくるので簡単にできるのかと思ったのですが・・・

諦めるとします、ありがとうございました
991デフォルトの名無しさん:2008/08/02(土) 21:46:14
>>985
DirectInputつかいなよ
992デフォルトの名無しさん:2008/08/02(土) 22:36:55
こういう質問って「最終的にどんな事がしたいのか?」
を書くと案外別の方法が見つかったりするよね
993デフォルトの名無しさん:2008/08/02(土) 22:46:44
すみません。

void BeginDownloadThread ・・・
{
   ・・・
   hThread=CreateThread(NULL, 0, myThread, this, 0, &ThreadID);
   ・・・
}
このようなコードで、BeginDownloadThreadを何度も呼び出して
myThreadを幾つも動かしています。(ダウンローダっぽいものを作っています)

このときhThreadが沢山できますが上手く全てをCloseHandleする方法教えてください。
994デフォルトの名無しさん:2008/08/02(土) 22:51:14
>>993
Windowsが自動で解放してくれるからそのままでおk
995デフォルトの名無しさん:2008/08/02(土) 22:52:03
CreateThreadから帰ってきてエラーチェックした途端にCloseHandleしたらだめなの?
996デフォルトの名無しさん:2008/08/02(土) 22:54:15
普通WaitForマルチプルほにゃらら使うんじゃね
997デフォルトの名無しさん:2008/08/02(土) 23:02:22
>>993
CloseHandle(CreateThread( ... ));
でいいと思うよ

スレッドが生成できたかどうかはコールバックからEventやSendMessage投げればおk
998デフォルトの名無しさん:2008/08/02(土) 23:04:40
MSDNより

C のランタイムライブラリに記録されている関数を使うスレッドは、
CreateThread 関数と ExitThread 関数ではなく、
C のランタイム関数である beginthread 関数と endthread 関数を使うべきです。
この方法に従わないと、ExitThread 関数を呼び出したときにわずかなメモリリークが発生します。
999デフォルトの名無しさん:2008/08/02(土) 23:06:57
CRT使わなければいいよ
1000デフォルトの名無しさん:2008/08/02(土) 23:07:29
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。