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

Win32API質問箱 Build68

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/07/06(日) 21:53:24
スレ立てるまでもない、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/
0002デフォルトの名無しさん2008/07/06(日) 21:53:58
- MSDN ホームページ
http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/
http://msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
http://msdn2.microsoft.com/en-us/library/
http://msdn2.microsoft.com/ja-jp/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
0003デフォルトの名無しさん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が見たい人で余裕のある人は●でも買ってくれ。
0004デフォルトの名無しさん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: : : : : :.\
0005デフォルトの名無しさん2008/07/07(月) 02:00:00
>>1乙
無駄レスでスレに勢いがありすぎる。
0006デフォルトの名無しさん2008/07/07(月) 04:28:54
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/
51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/
0007デフォルトの名無しさん2008/07/07(月) 04:29:45
50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/
49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/
38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
0008デフォルトの名無しさん2008/07/07(月) 04:30:30
25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
24 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★
15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★
14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html
0009ハッカーの神様2008/07/07(月) 21:11:38
また世話になるぜお前ら
0010デフォルトの名無しさん2008/07/07(月) 22:21:36
どこで聞いたらいいのか分からないので、ここで聞いてみます。
.NET Frameworkは、C#などをコンパイルして、
共通中間言語(CIL)になり、JITでネイティブコードにしながら
実行されるということですが、これには Win32APIは全く
使用されていないってことでいいですか?
0011デフォルトの名無しさん2008/07/07(月) 22:34:37
少なくともHeapやFile I/Oは使っていると思うぞ。
0012デフォルトの名無しさん2008/07/07(月) 22:53:33
間違いです
0013デフォルトの名無しさん2008/07/08(火) 10:45:10
間違ってないだろ
0014デフォルトの名無しさん2008/07/08(火) 10:47:12
DragDetectって、右ドラッグ判定には使えないのでしょうか?
WM_RBUTTONDOWNのハンドラの中で

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

なんでMSはこんなみっともないバグ、治さないんだろな。
0076デフォルトの名無しさん2008/07/10(木) 08:18:45
アイコン潰れてるのも直ってないだろ
0077デフォルトの名無しさん2008/07/10(木) 09:48:52
>>73 はなぜCopyMemoryが存在するのかを理解できてないようだ。
0078デフォルトの名無しさん2008/07/10(木) 09:52:09
↑話を理解してない馬鹿
0079デフォルトの名無しさん2008/07/10(木) 10:13:01
CopyOnWriteなページをしてくれるものと期待していたのに
使い分ける意味がない糞実装にがっかりだ
0080デフォルトの名無しさん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を使って、画像・文字列等を滑らかにスクロールさせる方法をご存知の方、
ぜひともご教授お願い致します。
0081デフォルトの名無しさん2008/07/10(木) 10:31:28
ScrollWindowEx
0082デフォルトの名無しさん2008/07/10(木) 10:45:08
ScrollWindowEx 使うと、無効領域はスクロールして新たに出てきた部分だけになるから
そのままUpdateWindowすれば軽いよ
0083デフォルトの名無しさん2008/07/10(木) 10:45:48
>>51 です。
>>52
ありがとうございました。
0084デフォルトの名無しさん2008/07/10(木) 10:49:21
>>82
>>81で答え出てるのにわざわざ同じ回答を繰り返す理由は?
0085デフォルトの名無しさん2008/07/10(木) 11:04:18
元質問者だと、あの答えじゃそのままInvaridateしそうだからさ。
0086デフォルトの名無しさん2008/07/10(木) 11:18:52
>>84
そういう事ね
てかSW_ERASEやSW_INVALIDATEで良くね?
0087デフォルトの名無しさん2008/07/10(木) 11:19:44
まつがえた
>>86は>>85宛てね
0088デフォルトの名無しさん2008/07/10(木) 11:40:02
ちなみに常にウィンドウ全体にBitBltするようなウィンドウではWM_ERASEBKGNDを潰しておくとちらつかなくていい、というのも覚えておこう
0089デフォルトの名無しさん2008/07/10(木) 12:32:34
WM_ERASEBKGNDを潰すのと、WNDCLASS(EX)::hbrBackgroundにNULLするのって同じ?
0090デフォルトの名無しさん2008/07/10(木) 13:14:42
hbrBackgroundがNULLならDefWindowProcが何もしないので結果的にはそうなる
0091802008/07/10(木) 14:48:01
皆さんありがとうございます!!
非常に為になりました^^;)


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

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

単に互換性の問題なので? どれを使うのが正しいの?
0098デフォルトの名無しさん2008/07/10(木) 20:42:40
OpenFileMappingなどで開かれたファイルマッピングオブジェクトのハンドルから、そのオブジェクトのサイズを取得する方法は無いのでしょうか。
0099デフォルトの名無しさん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の頃から既にあったとは思うのだけど。
0100デフォルトの名無しさん2008/07/10(木) 23:36:19
多分当初はWin32APIのUNICODEとCランタイムの_UNICODEで独立して切り替える事を考えていたと思われる
0101デフォルトの名無しさん2008/07/10(木) 23:56:59
つまり俺は最強だったという事だな?
0102デフォルトの名無しさん2008/07/11(金) 00:13:48
いや最強なのは俺に決まってるだろ?
0103デフォルトの名無しさん2008/07/11(金) 00:35:11
いや俺だ!
0104デフォルトの名無しさん2008/07/11(金) 00:57:05
お前らじゃ無理

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

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

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

が、

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

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

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

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

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


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

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

[HOGE]
PIYO=""""

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

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

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

これは 9x系ではないなら return; という機能になるのでしょうか? 教えていただけると助かります
0148デフォルトの名無しさん2008/07/12(土) 21:19:47
気にならないでください
0149デフォルトの名無しさん2008/07/12(土) 21:21:17
自己解決しました
ありがとうございました
0150デフォルトの名無しさん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.
0151デフォルトの名無しさん2008/07/12(土) 21:37:51
>>150
即レス感謝です 助かります
なんとわかりづらい関数……
0152デフォルトの名無しさん2008/07/12(土) 21:38:42
コモンダイアログから開いたwaveファイルを再生し、
任意のキーが押されたときの,wavの再生時刻をメッセージBOXなどに出すにはどうしたらいいでしょうか?

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

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

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

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

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

プロシージャの中で
case MM_WON_DONE
でwaveファイルの再生が終わったときに処理を書きたいんですが、
コンパイルするとMM_WON_DONEが定義されてないって出るんですが・・・
使い方間違ってます?
0166デフォルトの名無しさん2008/07/13(日) 01:18:46
WOMでしたね・・・すいません
0167372008/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'
のようなエラーが出ます。

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

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

こんなの書いてる時点でWin32の基礎も分かって無さそうだなあ
てか変数に代入する必要あるか?
0170372008/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() で正しいウィンドウハンドルを取得できていないってことでしょうか。
0171デフォルトの名無しさん2008/07/13(日) 03:10:46
>>170
>> どこがマズいのでしょうか??
何のために_Tを使ってるのかよく考えろ。

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

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

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

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

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

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


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

0239デフォルトの名無しさん2008/07/15(火) 21:39:39
ImageList_Destroy((HIMAGELIST)SHGetFileInfo( ... ));
0240デフォルトの名無しさん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.
0241デフォルトの名無しさん2008/07/16(水) 00:09:26
すみません。
サウンド、プログラムの起動で音がなる設定をしている環境で、
CreateProcessを使ってバックグラウンドでexeを動かした時も音が鳴ってしまいますが
これをプログラムのコードで抑止する方法がありますか?

0242デフォルトの名無しさん2008/07/16(水) 00:12:21
またウイルス作成者か
0243デフォルトの名無しさん2008/07/16(水) 00:29:52
一時的にミュートする
02442412008/07/16(水) 00:47:17
>>243
やっぱそれしかないですかね…
ありがとう御座いました。
0245デフォルトの名無しさん2008/07/16(水) 07:29:47
コンソールプログラムで
コマンドライン引数処理したいのですが
パースしてくれるような関数ってありますかね?
0246デフォルトの名無しさん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]);
でどんなものが渡されるか確認できる
0247デフォルトの名無しさん2008/07/16(水) 07:51:49
CommandLineToArgvW
0248デフォルトの名無しさん2008/07/16(水) 08:05:15
>>247
A版とペアになってないしargv[argc]がNULLでなかったりするから却下
0249デフォルトの名無しさん2008/07/16(水) 08:12:48
何でもかんでもNULL終端に頼るな。
0250デフォルトの名無しさん2008/07/16(水) 08:39:36
>>249
ばーか
argv[argc]はNULLでないといけないんだよ
0251デフォルトの名無しさん2008/07/16(水) 08:42:16
気になるなら wrap しろよ
0252デフォルトの名無しさん2008/07/16(水) 08:42:45
>>249
↑話を理解してない馬鹿
0253デフォルトの名無しさん2008/07/16(水) 08:45:02
argv[argc]=NULLも知らないC言語初心者は来なくていいよ
0254デフォルトの名無しさん2008/07/16(水) 08:48:50
教えてよ
0255デフォルトの名無しさん2008/07/16(水) 09:15:17
早く教えてよ
0256デフォルトの名無しさん2008/07/16(水) 09:35:06
何を?
0257デフォルトの名無しさん2008/07/16(水) 10:35:20
知らないならレスしないでください
0258デフォルトの名無しさん2008/07/16(水) 10:43:44
じゃ早く教えてよ
0259デフォルトの名無しさん2008/07/16(水) 11:34:30
早く教えなさい
0260デフォルトの名無しさん2008/07/16(水) 12:25:26
>>245
質問がよく分からないけど、
getoptみたいなのがほしいってこと?
0261デフォルトの名無しさん2008/07/16(水) 12:34:08
8ビットの時代から getarg() ってを使っているが、標準じゃないのか。
0262デフォルトの名無しさん2008/07/16(水) 12:42:32
8ビット……ファミコンですね、分かります
0263デフォルトの名無しさん2008/07/16(水) 12:44:07
CP/Mも8bit
0264デフォルトの名無しさん2008/07/16(水) 14:27:28
教えてよ
0265デフォルトの名無しさん2008/07/16(水) 14:27:55
早 く 教 え れ
0266デフォルトの名無しさん2008/07/16(水) 14:32:51
何を?
0267デフォルトの名無しさん2008/07/16(水) 14:33:22
知らないならレスしないでください
0268デフォルトの名無しさん2008/07/16(水) 14:58:32
じゃ早く教えてよ
0269デフォルトの名無しさん2008/07/16(水) 15:17:54
何を?
0270デフォルトの名無しさん2008/07/16(水) 15:44:28
質問です。
キーコードをVK_0のようなバーチャルキーの文字列に変換したいのですが、256個の配列をもつくらいしか手段はないのでしょうか?
VirtualKeyToString(int vkey);
みたいなものがあればと思うのですが・・・
0271デフォルトの名無しさん2008/07/16(水) 15:55:38
ない
0272デフォルトの名無しさん2008/07/16(水) 15:57:02
256個ぐらい作ればいいだろ
0273デフォルトの名無しさん2008/07/16(水) 16:30:34
256個くらい手動でつくればいいだなんていう、まともなプログラマがいるだろうか?
0274デフォルトの名無しさん2008/07/16(水) 16:37:46
お前の常識で考えている内は答えは出ない
お前が自分で考えてるもの以外答えと認めないだろうから

黙って書け
0275デフォルトの名無しさん2008/07/16(水) 16:42:06
手動で作れば良いんだ、っていうのはまさか
buff_0 = ...
buff_1 = ...
:
:
buff_255 = ...
っていうのを言ってるんじゃなかろうな。
0276デフォルトの名無しさん2008/07/16(水) 17:08:25
久々にまともな質問がきたと思ったら、一瞬にして荒らしに食われたな
そろそろ通報レベルなんだろうか?
0277デフォルトの名無しさん2008/07/16(水) 17:12:59
VK のうち a-z 0-9 はそのままアスキーコードでなかったっけ?
↑は たまたまで、それを期待して実装はマズイん?
0278デフォルトの名無しさん2008/07/16(水) 17:18:28
>>270
VK_0とかって独自の定義じゃなくてどこかで定義されてたっけ?
0279デフォルトの名無しさん2008/07/16(水) 17:20:49
MapVirtualKeyとかGetKeyNameTextとかでテキトーにいじればいいんでない?
0280デフォルトの名無しさん2008/07/16(水) 17:21:28
>>278
マクロ自体は WinUser.h にある
"VK_0" のような文字列化を望んでいるらしいので どうしようね? って話
0281デフォルトの名無しさん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
02822802008/07/16(水) 17:34:09
>>281
あ 0-9 A-Z に限り
VK_xx ってマクロ定義そのものは居なくて ASCII で比較せいや ってことか
0283デフォルトの名無しさん2008/07/16(水) 17:34:39
自分なら配列作る。
0284デフォルトの名無しさん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
0285デフォルトの名無しさん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;
}
0286デフォルトの名無しさん2008/07/16(水) 18:14:56
BOOST_PP_STRINGIZEを使ってマクロで展開するのも面白そう
0287デフォルトの名無しさん2008/07/16(水) 20:20:15
ttp://www.webcom-corp.co.jp/old/Win32FAQ/faq/q00024.htm

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

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

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

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

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

ググッても良く分からなかったので、
よろしくお願い致します。
0298デフォルトの名無しさん2008/07/17(木) 13:32:00
ShellExecuteでいいんじゃね?
0299デフォルトの名無しさん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); }
0300デフォルトの名無しさん2008/07/17(木) 16:08:48
>>290
本気で知らない奴が、えらそうに講釈たれないでほしいわな
>>271-272とか最悪すぎるわ
0301デフォルトの名無しさん2008/07/17(木) 16:20:37
全くだ
知らんならレスすんなやクズども
0302デフォルトの名無しさん2008/07/17(木) 16:47:14
>>300
GetKeyNameTextで"VK_0"という文字列は得られないだろ

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

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

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


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

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

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

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

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

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

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

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

プロセスID、プロセスハンドルから
GetExitCodeProcessの終了ステータスで判断する事にします。
0346デフォルトの名無しさん2008/07/19(土) 04:13:29
>>344
ChildWindowFromPointとかWM_NCHITTESTとかGetWindowRectしてPtInRectとか
やり方は色々ありそうだが効率なんて知らん。それぞれ測ってここで報告してくれ
0347デフォルトの名無しさん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);
--------------------------------------------------------------

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

irc.scenecritique.com
6667
#Win32API


以下は別件。



教えてください。

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

>>594>>596>>599>>601>>603
0605デフォルトの名無しさん2008/07/25(金) 15:47:51
>>600
>今時こんな書き方する人いるんだ・・・
 ^^^^^^
>C言語の初歩から勉強しなおそうね
       ^^^^^
だれかこの馬鹿の矛盾を教えてあげてよw
0606デフォルトの名無しさん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);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

こんなの↓
DestoryWindow(hButton);
DestoryWindow(hEdit);
・・・
最後に
DestoryWindow(hDialog);
0693デフォルトの名無しさん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.
0694デフォルトの名無しさん2008/07/26(土) 12:27:32
>>693
日本語で書け馬鹿
0695デフォルトの名無しさん2008/07/26(土) 12:28:00
XPのタスクバーをホバー表示にしたいんだけどどうすればいい?
0696デフォルトの名無しさん2008/07/26(土) 12:45:56
解脱すればおk
0697デフォルトの名無しさん2008/07/26(土) 13:00:08
>>694
ティティピィ://エムエスディエヌ.マイクロソフト.コム/エン―ユーエス/ライブラリ/エムエスロクサンニロクハチニ.エーエスピーエックス
>イフザスペシファイドウィンドウイズアペアレントオアオーナーウィンドウ,デストロイウィンドウオートマティカリーデストロイズジアソシエイテッドチャイルドオアオウンドウィンドウズ
>ホェンイットデストロイズザペアレントオアオーナーウィンドウ.
0698デフォルトの名無しさん2008/07/26(土) 13:31:05
>>697
なんというエネルギーの無駄遣い
0699デフォルトの名無しさん2008/07/26(土) 13:33:25
その愚直さには価値がある。
力の使いどころを間違えなければきっと成長できるはず。
0700デフォルトの名無しさん2008/07/26(土) 14:02:09
ありがとうございます^^
07016922008/07/26(土) 14:35:57
DestroyWindow機能は指定された窓を破壊します。
>機能は、それからそれを非活性化して、キーボード焦点を取り除くために
>WM_DESTROYとWM_NCDESTROYに窓へのメッセージを送ります。 機能は、
>また、窓のメニューを無効にして、糸のメッセージキューを洗い流して、タイマを破壊して、
>クリップボード所有権を取り除いて、クリップボードビューアーチェーンを壊します
>(窓がビューアーチェーンの先端にあるなら)。
>
>親か所有者の窓を滅ぼすとき、指定された窓が親か所有者の窓であるなら、
>DestroyWindowは自動的に関連子供か所有されている窓を滅ぼします。
>機能は最初に子供か所有されている窓を滅ぼします、そして、次に、
>それは親か所有者の窓を滅ぼします。
>
>また、DestroyWindowはCreateDialog機能によって作成された
>modelessダイアログボックスを破壊します。

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

0702デフォルトの名無しさん2008/07/26(土) 14:38:11
マウスカーソルがクライアントウィンドウから出た時にでるウィンドウメッセージ
ってありますか?
0703デフォルトの名無しさん2008/07/26(土) 14:54:06
TrackMouseEvent
で
WM_MOUSELEAVE
0704デフォルトの名無しさん2008/07/26(土) 16:21:06
>>703
ありがとうございました。
0705デフォルトの名無しさん2008/07/26(土) 18:37:20
VC2005〜2008によるWindowsプログラミング入門でお勧めの書籍ってどんなのがありますか?

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

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

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

つかvistaから無意味になっている気がせんでもない
0719デフォルトの名無しさん2008/07/27(日) 13:07:22
>>718
タスクマネージャで見たところ変化なかったつまり気にすんなということですね、
わかりました。
0720デフォルトの名無しさん2008/07/27(日) 13:30:20
>>719
計測しても意味ないような気がする。
0721デフォルトの名無しさん2008/07/27(日) 13:33:34
>>720
何もしてない癖に「気がする」とか言ってんじゃねーよ
0722デフォルトの名無しさん2008/07/27(日) 14:32:41
知らないならレスしないでください
0723デフォルトの名無しさん2008/07/27(日) 14:49:26
otitsuke
0724デフォルトの名無しさん2008/07/27(日) 14:55:01
pettan
0725デフォルトの名無しさん2008/07/27(日) 18:49:44
DLL Injectionしてボタンの位置を変えたり、WindowProcを横取りしたりしたいんですけど参考になるページなど教えていただければ幸いです。
0726デフォルトの名無しさん2008/07/27(日) 18:52:51
wizard bibleでも読めばたぶん書いてあるだろ
0727デフォルトの名無しさん2008/07/27(日) 18:53:00
またフック厨か。夏だなぁ。
0728デフォルトの名無しさん2008/07/27(日) 18:59:07
>>727
来なくていいよ^^
0729デフォルトの名無しさん2008/07/27(日) 19:00:03
来ちゃった・・・///
0730デフォルトの名無しさん2008/07/27(日) 19:02:32
>>729
はやく帰ってね^^
0731デフォルトの名無しさん2008/07/27(日) 19:59:41
どこに?
0732デフォルトの名無しさん2008/07/27(日) 19:59:42
フックならジェイソン尾妻に聞くといいよ
0733デフォルトの名無しさん2008/07/27(日) 20:46:40
なにこの糞スレ
0734デフォルトの名無しさん2008/07/27(日) 21:39:30
Win32APIが糞なのだからWin32APIスレが糞なのも当然じゃないか。
0735デフォルトの名無しさん2008/07/28(月) 00:57:32
なにこの天才
0736デフォルトの名無しさん2008/07/28(月) 02:00:27
なにこの鬼才
0737デフォルトの名無しさん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*にキャストしようとすると落ちるみたいなのですが・・・
0738デフォルトの名無しさん2008/07/28(月) 02:37:10
これはひどい
0739デフォルトの名無しさん2008/07/28(月) 02:37:33
>>737
http://www.google.co.jp/codesearch?q=lang:c+WM_CHAR
0740デフォルトの名無しさん2008/07/28(月) 02:47:38
そりゃwpに入っているのは文字列へのポインタじゃないからな。
0741デフォルトの名無しさん2008/07/28(月) 02:57:05
要するにどう書いたらよいのでしょうかw
0742デフォルトの名無しさん2008/07/28(月) 02:57:33
なんで笑ってんの?
0743デフォルトの名無しさん2008/07/28(月) 02:59:39
だってもうおかしくてw
ヒィーヒッヒッヒ
0744デフォルトの名無しさん2008/07/28(月) 03:00:03
wp == 'v'でいいんじゃね
しらねーけど
0745デフォルトの名無しさん2008/07/28(月) 03:01:26
うーん、APIとかのプログラムはまったくやったことないが

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

> if(msg->message==WM_CHAR && msg->wParam=='\t') return 0;
0746デフォルトの名無しさん2008/07/28(月) 03:18:36
>>745
知らないならレスしないでね
07477372008/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の検出はどうしたらいいんでしょうか?
0748デフォルトの名無しさん2008/07/28(月) 03:46:31
あ、GetKeyState()と同時に使えばいいんですね。
解決しました。

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

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

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

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

テキストエディタでよくある自作Editコントロールだとどんな名前付いてるか分からんし
Afx:xxxx〜とかATL:xxxx〜みたいなライブラリが勝手につけた汎用的な名前だと
クラス名だけで判別するなんて無理
07627662008/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とか
07637552008/07/28(月) 12:59:04
↑すいません755です
0764デフォルトの名無しさん2008/07/28(月) 13:09:31
ウィンドウの挙動なんて好きに実装できるんだから、
それをハンドルから判別できる方法なんてあるわけない
07657552008/07/28(月) 13:32:16
ソフトを作る人のさじ加減一つで入力できるコントロールも
できないようにできますもんね…
できないとわかるだけでも助かりました。ありがとうございます!
0766デフォルトの名無しさん2008/07/28(月) 14:29:42
>>765
入力を受け付けるか調べるだけならWM_GETDLGCODEで何とかならんか?
もちろんコントロールがこのメッセージを正しく処理していればの話だが。
0767デフォルトの名無しさん2008/07/28(月) 15:02:03
質問です。
システムフックで任意のウィンドウを操作するプログラムを作成しているのですが、
奇妙な問題に直面しています。プログラムのリストビューにフォーカスした瞬間
プログラムが応答しなくなり、システムダウンしてしまいます。WM_COPYDATAメッセージの
送信がこの現象のトリガーになっているようですが、原因が分からず対応に苦慮しています。
WM_COPYDATAメッセージの情報は正しく受け渡され、フックの処理には成功しています。
開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
0768デフォルトの名無しさん2008/07/28(月) 15:12:44
チート対策だろ
0769デフォルトの名無しさん2008/07/28(月) 16:53:00
WS_POPUPで作ったウィンドウでWM_MOUSELEAVE相当の処理をしたいんですけど、
何か良い方法はありませんか?
WM_SETCURSORやTrackMouseEventを使ってみたのですが、クライアント領域から
抜けた事を正しく検知できませんでした。
0770デフォルトの名無しさん2008/07/28(月) 16:57:07
WM_TIMER + GetCursorPosだろjk
0771デフォルトの名無しさん2008/07/28(月) 16:59:29
SetCaptureとWindowFromPointとScreenToClient
07727542008/07/28(月) 17:06:29
>>756
レスありがとうございます。
確かに列挙中に消すのは不安だったので、
早速「列挙→メモリ内に展開→展開したものを元に削除」
に作り変えてみました。


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

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

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

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

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

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

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

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

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

>>776
同上。

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

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

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

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

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

他のレスをくれた方、いろいろ有難う。
0840デフォルトの名無しさん2008/07/29(火) 19:34:57
NewHandleやNewPtrとか書くところを見るに、もしやマカーか?
0841デフォルトの名無しさん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));
}
0842デフォルトの名無しさん2008/07/29(火) 20:11:27
意図があることもあるし、ないこともある
WM_PAINTはBeginPaint/EndPaintをちゃんと呼んでるなら回さないでいい
0843デフォルトの名無しさん2008/07/29(火) 20:29:31
なるほど,後処理をDefWindowProcに回すということですね.
以前,サブクラス化したプロシージャで全てのメッセージを
CallWindowProc(DefWndProc, hWnd, uMsg, wp, lp);
に回しているためにフォーカスが返ってこないというバグを修正した
事があったので気になりました.
メインのウィンドウプロシージャだと動き自体はおかしくならないようですが,
気になるのでOnPaintの中を見直して修正します.
ありがとうございました.
0844デフォルトの名無しさん2008/07/29(火) 23:42:25
#define chomechome HGLOBAL

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

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

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

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

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

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

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

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

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

























夏だな厨って言う馬鹿
↓
0880デフォルトの名無しさん2008/07/30(水) 13:54:51
馬鹿でーす
0881デフォルトの名無しさん2008/07/30(水) 13:57:37
↑
ただの馬鹿
0882デフォルトの名無しさん2008/07/30(水) 14:24:04
だからLSI86-Cを知らないゆとり世代は黙ってろよ
0883デフォルトの名無しさん2008/07/30(水) 14:27:01
訳:かまってほしいな
0884デフォルトの名無しさん2008/07/30(水) 14:30:07
それぐらいかまってほしかったってのが本音
0885デフォルトの名無しさん2008/07/30(水) 14:39:21
かまってほしくない人はレスしないでください
0886デフォルトの名無しさん2008/07/30(水) 14:56:37
うんこしてくる
0887デフォルトの名無しさん2008/07/30(水) 15:07:39
うんこおわりました
0888デフォルトの名無しさん2008/07/30(水) 15:09:29
まだ残ってるぞ
0889デフォルトの名無しさん2008/07/30(水) 15:10:39
残りもだしてきました
0890デフォルトの名無しさん2008/07/30(水) 15:17:21
拭き忘れてるぞ
0891デフォルトの名無しさん2008/07/30(水) 15:19:05
あっ><
0892デフォルトの名無しさん2008/07/30(水) 15:28:05
へーきだよ、どうせまたうんこするんだし
0893デフォルトの名無しさん2008/07/30(水) 15:32:47
ちょっとお聞きしたいのですが
EN_IMECHANGE マスクは、IMEの変換待ち文字列が、キータイプなどで変更した時(例えば、「あいう」が「あいうえ」になった時)に勝手に送出されるメッセージ、という理解で大丈夫でしょうか??

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

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

0899デフォルトの名無しさん2008/07/30(水) 17:17:21
他の場所で既に#include <windows.h>してるとかだったらシバく
0900デフォルトの名無しさん2008/07/30(水) 17:20:04
3日前にしてました><
0901デフォルトの名無しさん2008/07/30(水) 17:22:33
まあ#include "stdafx.h" だろうなw
09028952008/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' : 定義されていない識別子です。
が出てしまいます。
0903デフォルトの名無しさん2008/07/30(水) 18:14:14
情報小出しするなよ
そもそもATL使ってるなら#include <windows.h>なんて必要ない (ATLが内部でincludeする)
0904デフォルトの名無しさん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です。よろしくお願いします
0905デフォルトの名無しさん2008/07/30(水) 19:58:10
MSDNでSetLayeredWindowAttributes引いてから自分が何をしたいのかちゃんと説明しろ。
むちゃくちゃすぎる
0906デフォルトの名無しさん2008/07/30(水) 21:27:32
知らないならレスしないでください
0907デフォルトの名無しさん2008/07/30(水) 21:35:19
最小化ボタンを押したのを知るにはどうしたらいいですか?
0908デフォルトの名無しさん2008/07/30(水) 21:51:44
>>907
すみません、WM_SIZEから出来ました、
0909デフォルトの名無しさん2008/07/30(水) 21:55:10
>>905
どこがむちゃくちゃすぎるんだよ ソースが読みにくいだけだろ
適当な事言うなクズ
09109042008/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を使ってます。
0911デフォルトの名無しさん2008/07/30(水) 22:58:48
DirectXとレイヤードウィンドウの相性は悪い
0912デフォルトの名無しさん2008/07/30(水) 23:04:33
肝心なことは最初に言えよ。
0913デフォルトの名無しさん2008/07/30(水) 23:13:53
>>910
その問題とは関係ないけど、if文の中身が常に偽だったり、常に真だったりしてるから、見直したほうがいい。
0914デフォルトの名無しさん2008/07/30(水) 23:20:31
>>913
そんなのコンパイラの最適化で消えるから気にしなくていいだろ
0915デフォルトの名無しさん2008/07/30(水) 23:25:31
そこまで賢いコンパイラは少ない
0916デフォルトの名無しさん2008/07/30(水) 23:26:41
>>905
pgr
0917デフォルトの名無しさん2008/07/30(水) 23:33:54
>>915
if((flag | LWA_ALPHA | LWA_COLORKEY)==0)return;
if(flag | LWA_ALPHA){

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

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

おぉ、ありがとうございますっ!!
0943デフォルトの名無しさん2008/07/31(木) 20:11:40
>>941
フォントを使った出力の方がいいという事か( ´ω`) サンクス
0944デフォルトの名無しさん2008/07/31(木) 23:43:25
CreateProcessを使ってIEを起動して、
そのIEの状態をWaitForSingleObjectで監視するPGMを作ってみたのですが、
XPではちゃんと動くもののVistaだとまだシグナル状態になっていないのに
制御が戻ってきてしまいます。
どうもUACの所為っぽいのですが、UACを無効にする以外で期待する動作を
させる方法ってありますでしょうか??
0945デフォルトの名無しさん2008/08/01(金) 00:21:38
すみません読み方なんですが
ヴィン32アピーで合ってますかね?
後輩からも質問がされました
0946デフォルトの名無しさん2008/08/01(金) 00:23:33
俺はAPIをエーピーアイと読む派だな。
Windowsをヴィンドウズと呼んでいるなら後は何も言うまい。
0947デフォルトの名無しさん2008/08/01(金) 00:27:36
不倫32歳って読むんだよ
0948デフォルトの名無しさん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
0949デフォルトの名無しさん2008/08/01(金) 00:46:52
掛かりませんよ
0950デフォルトの名無しさん2008/08/01(金) 00:47:00
すいません同じコード2個も書き込んじゃいました;
0951デフォルトの名無しさん2008/08/01(金) 00:47:40
普通は数秒以内
0952デフォルトの名無しさん2008/08/01(金) 00:51:32
Win32APIは初めてなので最初の設定が違うのでしょうか?
新規作成→プロジェクト→Win32プロジェクト(空のプロジェクト)→ソースファイルを.cppで作成してビルドしています。
解決策がわかる人がいたらアドバイスよろしくお願いします。
0953デフォルトの名無しさん2008/08/01(金) 00:54:01
すいません、自己解決しました。
理由は、プロジェクトをUSBメモリーに作っていたからです。
Cドライブ上にプロジェクトを作成してビルドしたら数秒で完了しました。
ご迷惑おかけしました。
0954デフォルトの名無しさん2008/08/01(金) 01:18:50
さいあく
0955デフォルトの名無しさん2008/08/01(金) 01:26:11
mciSendCommand の MCI_OPEN は非同期不可なんでしょうか?
0956デフォルトの名無しさん2008/08/01(金) 01:35:21
そんな難しいこと
ここの連中にわかるわけないだろ
0957デフォルトの名無しさん2008/08/01(金) 01:38:13
>>956
そうなんですか…。
他の方法を模索してみます。
御回答ありがとうございました。
0958デフォルトの名無しさん2008/08/01(金) 01:50:47
わかるけどあなた方の態度が気に入らないので教えてあげません
0959デフォルトの名無しさん2008/08/01(金) 01:55:53
>>958
せめて取っ掛かりになるようなヒントをいただけませんか?
0960デフォルトの名無しさん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 *' に変換できません。
こんなようなエラーが出ます。 どうすればいいのでしょうか? 治し方がわかりません;;
0961デフォルトの名無しさん2008/08/01(金) 11:22:14
>>960
キャストすればいいだけだろ
0962デフォルトの名無しさん2008/08/01(金) 11:23:48
>>961
アドバイスありがとうございます。
キャストが分からないので調べてきます。
0963デフォルトの名無しさん2008/08/01(金) 11:29:58
ソースファイルの拡張子をcppじゃなくてcに変えたらできました。
ありがとうございました
0964デフォルトの名無しさん2008/08/01(金) 12:12:27
ちょw
0965デフォルトの名無しさん2008/08/01(金) 12:13:19
API扱いか分からないけどメニューバーのPOPUPの項目を、プラグインを追加するみたいに増やすのってどうやりますか?
0966デフォルトの名無しさん2008/08/01(金) 12:22:51
InsertMenuItem
09679652008/08/01(金) 12:25:32
>>966thx
0968デフォルトの名無しさん2008/08/01(金) 22:56:41
失礼します。初めて質問させていただきます。

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

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

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

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

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

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

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

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

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