Win32API質問箱 Build62
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/02/04(月) 02:40:03やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
0002デフォルトの名無しさん
2008/02/04(月) 02:43:45http://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/02/04(月) 02:44:29http://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/02/04(月) 02:54:0759 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/
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/
0005デフォルトの名無しさん
2008/02/04(月) 02:54:3939 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/
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/
0006デフォルトの名無しさん
2008/02/04(月) 02:55:1019 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
0007デフォルトの名無しさん
2008/02/04(月) 03:54:280008デフォルトの名無しさん
2008/02/04(月) 17:41:20GetFocus()でフォーカスのあるウィンドウハンドルを取得し、このウィンドウが文字入力できるかできないかを知るためにはどんな関数があるでしょうか?
Immやウィンドウ情報関係を見てみたのですが、見つかりませんでした。
ボタンに対して文字入力できない、エディットボックスはできる、という判定をしたいためです。
有識者の方、よろしくお願いします。
0009デフォルトの名無しさん
2008/02/04(月) 17:46:440010デフォルトの名無しさん
2008/02/04(月) 17:51:070011デフォルトの名無しさん
2008/02/04(月) 18:08:060012デフォルトの名無しさん
2008/02/04(月) 19:13:420013デフォルトの名無しさん
2008/02/04(月) 19:22:410014前スレ981
2008/02/05(火) 00:09:30へんな書き方ですいません。
項目ABCがリソース使ってメニューを作れることは確認してます。
また、項目ABCDEFをリソースで持たずに、全てInsertMenu()でも作ってみました。
わからないのは、
項目ABCはリソースで持ってて、
Bのサブメニューである項目DEFをInsertMenu()あたりの関数で追加して作る方法があるかどうか、
ということでした。
ご存知ありませんか?
0015デフォルトの名無しさん
2008/02/05(火) 00:11:44ウインドウにエディットボックスを作ったのですが
エディットはサブクラス化していてWM_PAINTで
線を描画したのですがエディットに書き込むことが
できなくなりました。何か良い方法ないですか?
0016デフォルトの名無しさん
2008/02/05(火) 00:33:07D,E,Fを持ったメニューハンドルをhSubMenuとして、
SetMenuItemInfo()でBを書き換えればいいんじゃないの?
0017デフォルトの名無しさん
2008/02/05(火) 09:09:19エディットボックスをサブクラス化してWM_PAINTを奪ったんだろ?
それって、書き込まれたものを描画してないだけじゃねーの?
0018デフォルトの名無しさん
2008/02/05(火) 09:49:08縦スクロールするウィンドウの全てを、1枚の画像としてキャプチャしたいのですが、
PrtScを擬似的に発生させる方法では、不可能ですよね??
(PrtScでは、画面に表示させている部分しかキャプチャされないので・・・)
そういった機能を持ったフリーソフトも幾つかある様なので、
何かしら方法があると思うのですが、どうしても分かりません(ググっても分かりませんでした)。
『 縦スクロールするウィンドウの全てを、1枚の画像としてキャプチャする方法 』
をご存知の方は、ぜひともご教授ください。
お願い致します。m(。−_−。)m
0019デフォルトの名無しさん
2008/02/05(火) 10:05:20ウィンドウをスクロールさせつつキャプチャしてるだけだと思われ
現在のスクロールバーの位置みて、動的に描画してるアプリもあるだろうし、
API一発でゴッソリ抜けるってのはないかと
0020デフォルトの名無しさん
2008/02/05(火) 10:20:59仮にそんな方法で出来たとしてもキャプチャの為だけにクリップボードを勝手に書き換えるソフトなんてやだなあ
それはそうと、IEの描画をキャプチャしてるソフトとかはIEのinterface使ってると思われ
とりあえずIHTMLPainterとかそれっぽいのが見つかった
IE以外だとスクロールバーを自前で描いてるソフトもあるから結構難しいと思う
0021デフォルトの名無しさん
2008/02/05(火) 10:25:17処理ってDestroyWindowだけでPostQuitMessage(0);はいらないんですか?
PostQuitMessage(0);をすると全てのウィンドウが消えてしまうんですが
0022デフォルトの名無しさん
2008/02/05(火) 10:32:26いらない
PostQuitMessageはメッセージループを終了させるのに使う
0023デフォルトの名無しさん
2008/02/05(火) 10:56:47メインウインドウをDestroyするのにPostQuitMessageを使ってたんか?
0024デフォルトの名無しさん
2008/02/05(火) 11:13:51ありがとうございます。メッセージループを抜けるときだけに使うんですね
>>23
WM_DESTROYでPostQuitMessageしてたんで、新しく作ったウィンドウのプロシージャ
の方にWM_DESTROYがきたときもPostQuitMessageしたらプログラムが終了してしまった
ので聞いてみました
0025デフォルトの名無しさん
2008/02/05(火) 15:07:020026デフォルトの名無しさん
2008/02/05(火) 15:08:250027デフォルトの名無しさん
2008/02/05(火) 16:03:14MSDNを入れても一番情報量が多いなw
0028デフォルトの名無しさん
2008/02/05(火) 18:10:31このプログラムのhChild1のハンドルがFindWindow("mychild1",NULL)では取得できませんでした
取得できない理由を教えてエロい人
0029デフォルトの名無しさん
2008/02/05(火) 18:27:42調べろカス
0030デフォルトの名無しさん
2008/02/05(火) 18:42:170031デフォルトの名無しさん
2008/02/05(火) 21:48:42あとCreatWindow()で親ウィンドウのハンドルだけ与えてWS_CHILDをつけないのって問題あり?
0032デフォルトの名無しさん
2008/02/05(火) 22:17:170033デフォルトの名無しさん
2008/02/05(火) 22:18:22前者の答えとしては、作成時に渡したIDでGetDlgItemを呼び出すか、
SetPropでウィンドウにデータを関連付けてしまう方法もある。
後者は、WS_CHILDもWS_POPUP無しだとWS_OVERLAPPEDになるな。
で、指定した親ウィンドウは、作ったウィンドウのオーナーになる。
0034デフォルトの名無しさん
2008/02/05(火) 23:57:49LocalAllocの発見は出来ないですか?
・コントロールを一時的に無効化する方法
・最大化メッセージを奪い取って破棄する方法
(→WM_SYSCOMMANDのSC_MAXIMIZEを横取りしてもうまくいかず、Spy++でアタッチしているときのみうまくいきました)
この2つを教えてください。
0036デフォルトの名無しさん
2008/02/06(水) 01:21:01前者:EnableWindow()
後者:wParam == SC_MAXIMIZEの時、return TRUE;
00378
2008/02/06(水) 10:06:46>>11
そこまで考慮していませんでしたが、対象外とさせてください。
>>12
試してみましたが、秀丸などエディタに対しては0リターンとなりました。これはウィンドウハンドルがダイアログじゃないからでしょうか。
ウィンドウハンドルならダイアログじゃなくても判断しないといけないので、これは採用できないです。
>>13
>ウィンドウクラスがEDITかどうか
を判定するにはGetClassLong(hWnd, GCL_STYLE)を使えということでしょうか?
0038デフォルトの名無しさん
2008/02/06(水) 10:14:29で、質問者は何のためにそれが知りたいの?
WM_CHARを受け付けるかどうかなんて、実際のとこ投げてみるまでわからんと思うが。
00398
2008/02/06(水) 10:49:20エディットボックスだけならGetClassName()でいけそうですが、秀丸のようなエディタのウィンドウだと任意の名称みたいなので、採用できなさそうです。
理由はIMEの仕事をしていまして、キーイベントを受け付けて文字表示する前に、文字入力可能な画面かどうかを判断したかったためです。
まわりくどいことしなくても、もっと◎な方法がありそうな気がして今もググってる最中です(-_-;)
0040デフォルトの名無しさん
2008/02/06(水) 10:55:48ググったって出てこない
WM_CHARに対する実装は結局コード書いてる人依存だから
エディットボックスだって反応する保障はない
0041デフォルトの名無しさん
2008/02/06(水) 11:04:57文字入力を支援するというか、標準的な入力として提供してるのがエディトボックスなわけで
なにもエディトボックスをサブクラスしないと入力できないわけではない
もし 8 が「入力できるウインドウ」と汎用的に言ってるなら 40 の言うように不可能かと。
そもそもエディトボックスしかり、入力したのが表示されるという仕組みまで見ると
キーボードから入力があれば、なにを押されたかプロシージャなりで判断し自前のバッファに覚えて
「文字に見える画像やカーソル(キャレット)を画像として表示」しているウインドウにしかすぎない。
0042デフォルトの名無しさん
2008/02/06(水) 11:06:57リードオンリーなEDITでも出てこないよな。
0043デフォルトの名無しさん
2008/02/06(水) 11:07:211. GetWindowLongPtrでウィンドウプロシージャを得る
2. 逆アセンブラを積む
3. 得られたウィンドウプロシージャを順次逆汗してWM_KEYDOWN/WM_CHAR/WM_IME_***に対してエディタっぽい事をしてるか調べる
この方法が現実的でない限り、方法は無いといっていいだろうなぁ
ま、IMEの状態制御はアプリ側での実装になるからね
0044デフォルトの名無しさん
2008/02/06(水) 11:15:06IMEの動作も実装者任せ。自分でやるならimm.h辺りを使えばいい
0045デフォルトの名無しさん
2008/02/06(水) 11:37:34だから何か特別"文字入力できるウィンドウ"という属性があると考えるのかもしれない。
00468
2008/02/06(水) 12:45:34いや〜IME側の資料ってほんと少ないです。
いろんな意見ありがとうございました。
0047デフォルトの名無しさん
2008/02/06(水) 12:46:210048デフォルトの名無しさん
2008/02/06(水) 16:07:24普通ならmain.exe, sub.dllを作ってsub.dllからexportするんでしょうが
mainsub.exeみたいにひとつにまとめられたらそうしたいんですが。
0049デフォルトの名無しさん
2008/02/06(水) 16:22:430050デフォルトの名無しさん
2008/02/06(水) 16:28:190051デフォルトの名無しさん
2008/02/06(水) 16:32:41main.exeだけだったら>>49が言うようにmain.exeのソースコード内に書いておけばいい話だし
0052デフォルトの名無しさん
2008/02/06(水) 16:47:47LocalAllocの発見は出来ないですか?
0053デフォルトの名無しさん
2008/02/06(水) 16:48:31ふつーに__declspec(dllexport)とか.defファイル用意とか#pragma comment(linker, "/export:...")で出来ると思うが
0054デフォルトの名無しさん
2008/02/06(水) 16:49:13二度も書くなボケ
0055デフォルトの名無しさん
2008/02/06(水) 16:50:53それくらい、自分で試してみれば済むことだろ
0056デフォルトの名無しさん
2008/02/06(水) 16:57:37とか許容できるならいいんじゃないか。
0057デフォルトの名無しさん
2008/02/06(水) 17:01:45試してメモリリークと報告されなかったから聞いているわけだが。
0058デフォルトの名無しさん
2008/02/06(水) 17:02:450059デフォルトの名無しさん
2008/02/06(水) 17:07:01YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
/ \
【探した?】 NO → なら、ねぇよ
\
NO → 死ね
YES → 【成功した?】 ─ YES → じゃあ聞くな死ね
/ \
【試した?】 NO → なら、できねぇよ
\
NO → 死ね
0060デフォルトの名無しさん
2008/02/06(水) 17:25:410061デフォルトの名無しさん
2008/02/06(水) 17:33:160062デフォルトの名無しさん
2008/02/06(水) 17:36:29試して分かった事をいちいち聞くな
探せば分かる事をいちいち聞くな
探して分かった事をいちいち聞くな
当然だろ
それに、この程度で存在意義が無くなるスレでもないだろ
0063デフォルトの名無しさん
2008/02/06(水) 17:44:210064デフォルトの名無しさん
2008/02/06(水) 17:53:390065デフォルトの名無しさん
2008/02/06(水) 17:58:190066デフォルトの名無しさん
2008/02/06(水) 18:00:51両者ともうまくいき、ありがとうございます。
ユーザーのリストを取得するにはどうしたらいいでしょうか?
とあるスクリプトではDcuments and Settingsにあるフォルダから無理矢理取得しているのですが、
流石にそれはどうかな?と思いまして。
0068デフォルトの名無しさん
2008/02/06(水) 18:26:400069デフォルトの名無しさん
2008/02/06(水) 18:37:05これを参考にスクロールつけてたんですが
SB_THUMBTRACKとそれ以外の場合ではスクロール上限が異なってしまいます
SB_THUMBTRACKの上限に合わせるにはどうすればよいのでしょうか?
nMaxをいじればいいのかと思ってやってたんですがどうにもうまくいかなくて
0070デフォルトの名無しさん
2008/02/06(水) 18:56:20HIWORD(wParam)してる?
007169
2008/02/06(水) 19:11:42si.nMaxの値を小さくするとLINEUP等のスクロール上限が下がるのですがTHUMBTRACKの上限にも影響が出たのでだめでした
そこで、dy = max(-1 * si.nPos, min(dy, si.nMax - si.nPos));の「si.nMax」を「si.nMax-適当な固定値」にすると理想的な結果には近づけました
ですが、固定値なんか使うと汎用性皆無なのでどうにかならないかと思い質問させていただきました
0072デフォルトの名無しさん
2008/02/06(水) 19:42:31例えば、Graphics、Font、StringFormat、Bitmap、BitmapData等のクラスを使おうと思っています。
ぱっと見、一応デストラクタで解放されてる気がしますが確信が持てず・・・
0073デフォルトの名無しさん
2008/02/06(水) 19:51:14http://pc11.2ch.net/test/read.cgi/tech/1162467959/
0074デフォルトの名無しさん
2008/02/06(水) 19:53:250075デフォルトの名無しさん
2008/02/06(水) 20:23:39せいぜい、デストラクタより先にGdiplusShutdown呼ばないように気を付けろ。
>>73
71はきっとネイティブ版の方を使うんだろ。
0076デフォルトの名無しさん
2008/02/06(水) 20:24:11ありません。ただし GDI+ の初期化と開放の前や後で ctor や dtor が
動くといけないので、スタティック変数等では注意が必要か。
>>74
いや、GDI+ (のアレコレ)は C++ でなるべくスタック上に
取るのがスマートだしカッコイイと思う。
.Net で C# なんかだと Dispose の嵐でもーうんざり。
0077デフォルトの名無しさん
2008/02/06(水) 20:29:18を調べるにはどうすればよいでしょうか?
0078デフォルトの名無しさん
2008/02/06(水) 20:37:520079デフォルトの名無しさん
2008/02/06(水) 20:43:31C#ならusing使えよ……。
0080デフォルトの名無しさん
2008/02/06(水) 20:55:07using(Bitmap bmp= ...)
using(Pen pen= ...)
using( Brush br1= .. , br2=...)
using( Font font= ... )
g.draw〜
やってられっか(w
0081デフォルトの名無しさん
2008/02/06(水) 20:57:330082デフォルトの名無しさん
2008/02/06(水) 21:00:49レスありがとうございます。
問題ないようですし、startupやshutdownに注意しつつ、楽な自動変数で行きたいと思います!
0083デフォルトの名無しさん
2008/02/06(水) 21:01:37知恵が無いから。
0084デフォルトの名無しさん
2008/02/06(水) 21:19:490085デフォルトの名無しさん
2008/02/06(水) 21:31:44.netならGCが勝手に開放するだろ
まーWin9x系を考慮するなら、using使って明示的に開放しとかないとGC作動する前に
システムリソース食い潰してOSごと死亡しそうな気はするが
0086デフォルトの名無しさん
2008/02/06(水) 21:38:250087デフォルトの名無しさん
2008/02/06(水) 22:16:35あまり気にしなければそれでいいわけだけど・・・・
Image.FromFile で作ったImage 等他のリソース(この場合ファイル)をつかみっぱなしの
オブジェクなんかもあるし。
こういう場合は簡単にスコープと寿命を一致させられる C++ の方が気持ち良いな、俺は。
0088デフォルトの名無しさん
2008/02/06(水) 22:22:320089デフォルトの名無しさん
2008/02/06(水) 22:24:07ってスレ違いだね
0090デフォルトの名無しさん
2008/02/06(水) 22:25:420091デフォルトの名無しさん
2008/02/06(水) 22:27:240092デフォルトの名無しさん
2008/02/06(水) 22:30:450093デフォルトの名無しさん
2008/02/06(水) 22:33:560094デフォルトの名無しさん
2008/02/06(水) 22:39:33C++でusingしまくってるとGDI+使う時に衝突してエラーになるから一概におすすめとは言えないよ
最近のコンパイラだとエラー出ないようになってるのかも知れんが
.Netの事を言ってるならスレチだから他でやってね
0095デフォルトの名無しさん
2008/02/06(水) 22:41:40スレ違い
0096デフォルトの名無しさん
2008/02/06(水) 22:43:20GDI+はスレ違いじゃないよ
0097デフォルトの名無しさん
2008/02/06(水) 22:45:040098デフォルトの名無しさん
2008/02/06(水) 22:45:530099デフォルトの名無しさん
2008/02/06(水) 22:47:070100デフォルトの名無しさん
2008/02/06(水) 22:53:19ところで、GDI+ってWin32APIとして見ると画像ファイルの読み書き以外に使える?
描画が全てソフトウェア処理だから重いし、Vistaでこの辺DirectXに丸投げしてくれるかと思ったらそうでも無さそうだし
0101デフォルトの名無しさん
2008/02/06(水) 22:57:460102デフォルトの名無しさん
2008/02/06(水) 23:05:25アルファブレンディングとかしたいけどDirectX使うまでも無いって場合とか。
0103デフォルトの名無しさん
2008/02/06(水) 23:05:46NetUserEnum
とか
HKLM¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥ProfileList
みたいなのとか
0104デフォルトの名無しさん
2008/02/06(水) 23:08:09MMXかSSEだろJK
0105デフォルトの名無しさん
2008/02/06(水) 23:26:44getglyphoutlineで描画するの面倒くさそうだったから・・・
0106デフォルトの名無しさん
2008/02/06(水) 23:30:150107デフォルトの名無しさん
2008/02/06(水) 23:51:30どうしてCOM Interopを可能にしなかったのか不思議で仕方ない。
010869
2008/02/06(水) 23:55:22HIWORD(wParam)がスクロールボックスの現在位置を保持してるのは理解できました
これはスクロールボックスの上端の位置を示しているという理解でいいのでしょうか?
上端の位置を保持しているのならswitch文の記述には問題がないように見えます
となるとやっぱりswitch文から抜けた後の処理が間違っている???
他の人の質問に比べて低レベル過ぎて恥ずかしい
0109デフォルトの名無しさん
2008/02/06(水) 23:57:420110デフォルトの名無しさん
2008/02/07(木) 00:06:08http://support.microsoft.com/kb/944975/
0111デフォルトの名無しさん
2008/02/07(木) 00:11:21WM_VSCROLLのSB_THUMBTRACKの説明を読むと
>The high-order word indicates the position that the scroll box has been dragged to.
とのことだから、現在位置ではないんじゃね?
0112デフォルトの名無しさん
2008/02/07(木) 00:20:200113デフォルトの名無しさん
2008/02/07(木) 00:40:37CreateFontにANTIALIASED_QUALITYを指定すればいい。
0114デフォルトの名無しさん
2008/02/07(木) 00:52:17とりあえず、メッセージの値は見ずにGetScrollInfoで取得しとけ。
つうか、switch分の処理では絶対位置を確定させるべきだろうに。
0115デフォルトの名無しさん
2008/02/07(木) 01:36:28カーソルが自プロセスのウィンドウから外に出てしまうとフックが
解除されてるみたいなんですが、解除されない方法あるでしょうか?
0116デフォルトの名無しさん
2008/02/07(木) 01:52:08ANTIALIASED_QUALITYはフォントサイズ小さいとAAかからないってネットで見たので・・・
0117デフォルトの名無しさん
2008/02/07(木) 02:23:52タイマーで監視しとけw
0118デフォルトの名無しさん
2008/02/07(木) 02:36:31自スレッドにフックしてるんだったら当たり前じゃね?
0119デフォルトの名無しさん
2008/02/07(木) 02:49:27012069
2008/02/07(木) 03:25:29スクロールの上限値(si.nMax)は「(表示したい画像の縦幅 - クライアント領域の縦幅)/LINESIZE」でうまいこと行きました
スクロールボックスのサイズ(si,nPage)は「クライアント領域の縦幅/LINESIZE」としました
これでできたと思ったらウィンドウをかなり小さくしないとsi.nMax==si.nPageにならずスクロールバーが出なくなりました;;
スクロールが出現する閾値(表示したい画像の縦幅)≠スクロールの上限値なのにどちらもsi.nMaxがその役割を担っている。。。
どう考えても構造的に矛盾してる気がするんですが・・・
0121デフォルトの名無しさん
2008/02/07(木) 03:37:51どうすればできますか?
0122デフォルトの名無しさん
2008/02/07(木) 03:54:170123デフォルトの名無しさん
2008/02/07(木) 04:00:150124デフォルトの名無しさん
2008/02/07(木) 05:59:46これ酷いなw
仕様となると、GDI+::String、Drawing::Graphics::DrawStringは使い物にならんな。
結局GDIへ回帰か。
0125デフォルトの名無しさん
2008/02/07(木) 07:16:32WindowsSDKの'About Scroll Bars'から転載しとく。
MaxScrollPos = MaxRangeValue - (PageSize - 1)
0126デフォルトの名無しさん
2008/02/07(木) 12:50:13ただの図形描画ならDIB弄って何とかなるが、アンチエイリアスでフォント描画する場合に他に解決策がない。
GDIだけであれ解決する方法ないのかね?
0127デフォルトの名無しさん
2008/02/07(木) 13:36:55どれくらいの違いがあるのでしょうか?
あるとすれば、どのような違いですか?
0128デフォルトの名無しさん
2008/02/07(木) 13:56:08変わらないかと。
どの視点でその疑問を抱いたの?
0129デフォルトの名無しさん
2008/02/07(木) 14:34:12スクロールバー初めて使う人がはまる指定の仕方だな。それ。
nMin, nMax, nPageの指定の仕方というか考え方がおかしい。
0130デフォルトの名無しさん
2008/02/07(木) 14:59:16なんであのドキュメントエクスプローラあんなにちらつくん?
マウスでフォーカス変えるたびに全画面再描画してるかんじ……
013169
2008/02/07(木) 15:09:04>>125
スクロール範囲は思い通りになりましたありがとうございます
>>129
できればどこがおかしいのか教えていただけると幸いです・・・
0132デフォルトの名無しさん
2008/02/07(木) 16:50:231つのエディットコントロールと1つのOKボタンからなるダイアログで
エディットコントロール内でリターンキーを押すと、OKボタン押してないのに
OKボタンが押されたのと同じ動作をするんです。すごいことにリターンキーに関する処理は書いてないのにですよ。
こんなすごいこと経験した人いる? エスパーさん、何か原因に心あたりないですか?
0133デフォルトの名無しさん
2008/02/07(木) 16:57:000134デフォルトの名無しさん
2008/02/07(木) 16:57:080135デフォルトの名無しさん
2008/02/07(木) 16:58:540136デフォルトの名無しさん
2008/02/07(木) 17:05:58問題を勘違いしてたら悪いんだけど
要は、SB_THUMBTRACKだと16ビットしか使えないから、
デカい画像を表示しようとするとうまく動いてくれないってことかな・・・
だったら、wParamでサイズを取らずにGetScrollInfo使えばいいんじゃない?
0137デフォルトの名無しさん
2008/02/07(木) 17:15:59有難う、ありがとう、有難うございました。
ほえー、ダイアログでリターンキー押すことは、デフォルトプッシュボタンを
押すことと同じなのですか。うれしい動作に感動しました、うるうる。
0138デフォルトの名無しさん
2008/02/07(木) 17:20:580139デフォルトの名無しさん
2008/02/07(木) 17:56:42014069
2008/02/07(木) 18:21:06したいことは「クライアント領域の高さが画像の高さ未満になったときにスクロールバーを出現させ、
SB_THUMBTRACK、SB_LINEUPをはじめ、どのスクロール方法でもスクロール範囲が同じにする」です
GetScrollInfoから取得するようにしてるのですが問題は解決せず・・・
>>129さんの言うとおり根本的なところで間違えているみたいです
nMin = 0;
nMax = 画像の高さ/スクロール一行分の高さ - (nPage - 1);
nPage = クライアント領域の高さ/スクロール一行分の高さ
これだとスクロール範囲は思い通りでもスクロールバーが出現する条件がうまくいきません
スクロールバー出現条件とスクロール範囲を両立させるにはどうすれば・・・
0141デフォルトの名無しさん
2008/02/07(木) 18:34:55nMax=画像の高さ - 1
nPage=クライアント領域の高さ
でいいんじゃない?
スクロール1行分なんてのは、SB_LINEUP/DOWNのときに動かす量を調節すればいいかと
0142デフォルトの名無しさん
2008/02/07(木) 18:39:310143デフォルトの名無しさん
2008/02/07(木) 18:51:100144デフォルトの名無しさん
2008/02/07(木) 19:47:16GlobalReleaseって何だ?
0145デフォルトの名無しさん
2008/02/07(木) 19:56:49一行は11pt換算で動かすように作ったな。
>>144 これじゃね?
( ) ジブンヲ
( )
| |
ヽ('A`)ノ トキハナツ!
( )
ノω|
__[警]
( ) ('A`)
( )Vノ )
| | | |
0146デフォルトの名無しさん
2008/02/07(木) 20:46:39だれもいないとき、部屋で横になって裸でだきあいます。それがだんだんエスカレートしていって、
学校の体育倉庫で服をぬがされ、まだ3年生ですが学年で1番大きいおっぱいを、つかむように触られたり、しゃぶったりされます。
最初は、苦手だったんだけどだんだん気持ちよくなりサイコーです。しかも、わたしは、学年1美人でもてます。
彼も同じで、美男美女でよくみんなにうらやましく、思われます。
このカキコ見たあなたは4日後に不幸がおとづれ44日後に死にます。それがイヤならコレをコピペして5ケ所にカキコして下さい。
私の友達はこれを信じず4日後に親が死にました。
44日後友達は行方不明・・・・。いまだに手がかりもなく私はこのコピペを5ケ所に貼り付けました。
すると7日後に彼氏ができ10日後に大嫌いな人が事故で入院しました。信じる信じないは勝ってです
0147デフォルトの名無しさん
2008/02/08(金) 00:57:300148デフォルトの名無しさん
2008/02/08(金) 01:22:030149147
2008/02/08(金) 01:30:13エディットボックスのウインドウプロシージャでキー操作
がしたいのですが(VK_UPなどを使いたい)どうも上手く
いきません。どのようにすればよいでしょうか?
0150デフォルトの名無しさん
2008/02/08(金) 01:42:340151147
2008/02/08(金) 01:56:18case WM_CHAR:
if(wp == VK_UP){
i++;;
}
break;
「↑」を押しても i が変化がないです。
0152デフォルトの名無しさん
2008/02/08(金) 02:38:20WM_KEYDOWN
0153デフォルトの名無しさん
2008/02/08(金) 07:11:29いろいろいうことはあるが、、、もう出る時間なので
0154デフォルトの名無しさん
2008/02/08(金) 07:34:51iがローカル変数というオチではないの?
0155デフォルトの名無しさん
2008/02/08(金) 08:00:220156デフォルトの名無しさん
2008/02/08(金) 09:16:300157デフォルトの名無しさん
2008/02/08(金) 09:45:53_CrtSetDbgFlagで
LocalAllocの発見は出来ないですか?
52 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/06(水) 16:47:47
_CrtSetDbgFlagで
LocalAllocの発見は出来ないですか?
142 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/07(木) 18:39:31
GlobalAllocのGlobalRelease呼び忘れわ発見できますか?
156 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/08(金) 09:16:30
GlobalAllocのGlobalRelease呼び忘れわ発見できますか?
0158デフォルトの名無しさん
2008/02/08(金) 09:54:07メモリ管理もできない奴はGCに頼れ
で、GCを疑うなw
0159デフォルトの名無しさん
2008/02/08(金) 10:21:59分かり安すぎだなお前らw
0160デフォルトの名無しさん
2008/02/08(金) 10:33:49ヽノ) そのネタは飽きましたのでお引取り下さい
ll
0161デフォルトの名無しさん
2008/02/08(金) 10:34:49c、 `っ( ヽ
( v)c、 `っ
V''V ( v) / ̄`⊃
V''V | ⊃
( v) ハ,,ハ
V''V (゚ω゚ )
⊂⊂ ヽ
> )
(/(/
ハ,,ハ
( ゚ω゚ ) おことわりします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
0162デフォルトの名無しさん
2008/02/08(金) 10:44:24GlobalReleaseなんて呼んだ事ねーよwww
0163デフォルトの名無しさん
2008/02/08(金) 10:54:550164デフォルトの名無しさん
2008/02/08(金) 11:10:04つう例外もあるからそう簡単にチェックできる物でもないだろ
ま、どうせドトネト信者が「GCの無い言語なんて糞」とか言いたいだけかも知れんが
0165デフォルトの名無しさん
2008/02/08(金) 11:10:21IMEを制御する方法は山ほど見つかるんだけどな。
0166デフォルトの名無しさん
2008/02/08(金) 11:18:29ツールバーを出したければ別個にプロセスを起動してimm.dllから通信すればいい
0167デフォルトの名無しさん
2008/02/08(金) 11:22:52そりゃ確かにOSのIME管理システムそのものを乗っ取れるかもしれませんが、
えらく大雑把だなあ。
0169デフォルトの名無しさん
2008/02/08(金) 11:41:280170デフォルトの名無しさん
2008/02/08(金) 12:01:04COMインタフェースのリリースし忘れの方が困る
システムDLL内だったりシェル拡張が原因だったり
0171デフォルトの名無しさん
2008/02/08(金) 12:14:24GetOpenFileNameがエラー起こすっていうバグがあってだな
今は知らん
0172デフォルトの名無しさん
2008/02/08(金) 12:22:05つ IMallocSpy
0174デフォルトの名無しさん
2008/02/08(金) 14:29:01case WM_KEYDOWN:
if(wp == VK_UP){
i++;;
}
break;
で良いんじゃね
>>152に書いてあるけど
0175デフォルトの名無しさん
2008/02/08(金) 15:19:28MCI_SIGNALがなんのためにあるのかが分からない
0176デフォルトの名無しさん
2008/02/08(金) 15:42:550177デフォルトの名無しさん
2008/02/08(金) 15:48:08OSごとにインターフェイスが異なるから、自分で調べられないなら辞めとけ。
0178デフォルトの名無しさん
2008/02/08(金) 16:02:470179デフォルトの名無しさん
2008/02/08(金) 16:03:390180デフォルトの名無しさん
2008/02/08(金) 16:10:470181デフォルトの名無しさん
2008/02/08(金) 17:06:13画面を作っていて、マルチコアに対応させたいのですが、
プロセス(スレッド)毎にどのコアを使ってるか、という情報は
どこで得られるのでしょうか?(コア毎の使用率は判るのですが)
0182デフォルトの名無しさん
2008/02/08(金) 17:10:48スレッドは多分無い
0183デフォルトの名無しさん
2008/02/08(金) 17:18:36ありがとうございます。
GetThreadAffinityMask相当のAPIは何故か無いみたいですね。
0184デフォルトの名無しさん
2008/02/08(金) 17:18:45ただ、ネットに出回っているPEB/TEB構造体の情報は9割ぐらいはXPSP1以前の物で
今時のOSのカーネルとはメンバが微妙に違うから、役に立つかどうかは知らない
0185デフォルトの名無しさん
2008/02/08(金) 17:30:21GPLのSKKIMEのようにソースが公開されているものもあるよ。
0186デフォルトの名無しさん
2008/02/08(金) 18:13:07同じく、焼きそば喫茶のメイド服姿で登場です。
ふわりと髪とスカートを翻し、振り返る瞬間をとらえたポーズで立体化。柔らかで
張りのある造形が抜群のプロポーションとマッチし綺麗なシルエットを楽しめます。
白と紺のコントラストが映える衣装と優しい笑顔が、彼女の清楚で穏やかな魅力を
引き立ててくれます。
商品名 涼宮ハルヒの憂鬱
作品名 朝比奈みくる メイドVer.
価格 6,090円(税込)
発売時期 08年06月未定
仕様 1/8スケール PVC製塗装済み完成品 全高約200mm
原型制作 沼倉としあき
発売元 アルター
ソース:あみあみ
http://www.amiami.com/shop/ProductInfo/product_id/91035
画像
ttp://www.amiami.com/images/product/main/HOB-FIG-8213.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_01.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_02.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_03.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_04.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_05.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_06.jpg
ttp://www.amiami.com/images/product/review/HOB-FIG-8213_07.jpg
アルターALTER Co.,Ltd
http://www.alter-web.jp/
0187デフォルトの名無しさん
2008/02/08(金) 18:17:37( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
0188デフォルトの名無しさん
2008/02/08(金) 18:22:51スカートの中覗くのはデフォなのか?
0189デフォルトの名無しさん
2008/02/08(金) 18:26:190190デフォルトの名無しさん
2008/02/08(金) 18:28:450191デフォルトの名無しさん
2008/02/08(金) 18:58:33もともと平面な物をなんで立体化するのか本気でよくワカンネ
と釣られてみる
0192デフォルトの名無しさん
2008/02/08(金) 19:01:020193デフォルトの名無しさん
2008/02/08(金) 19:16:320194デフォルトの名無しさん
2008/02/08(金) 19:23:56弁解を聞こう
0195デフォルトの名無しさん
2008/02/08(金) 20:42:29元のRECTがあさってな状況でも描くのに必要な領域が返ってきますか?
0196デフォルトの名無しさん
2008/02/08(金) 20:52:340197デフォルトの名無しさん
2008/02/08(金) 21:14:01入力できないようにするのはSetWindowLongでES_READONLYにしてできたんですが
灰色にする方法が分かりません
0198デフォルトの名無しさん
2008/02/08(金) 21:32:090199デフォルトの名無しさん
2008/02/08(金) 21:39:100200デフォルトの名無しさん
2008/02/08(金) 21:52:270201デフォルトの名無しさん
2008/02/08(金) 21:53:290202デフォルトの名無しさん
2008/02/08(金) 22:00:400203デフォルトの名無しさん
2008/02/08(金) 22:25:14ネタじゃなくてマジで
0204デフォルトの名無しさん
2008/02/08(金) 22:26:540205デフォルトの名無しさん
2008/02/08(金) 22:29:06あさっての矩形を指定して書いた場合に描画されるであろう領域が帰ってくるよ。
よく使うのは横幅を非常に大きくして、折り返ししない場合の幅を調べたり、
逆に高さだけ大きくして特定の幅で折り返し表示した場合の高さを調べたり、等。
0206デフォルトの名無しさん
2008/02/08(金) 22:31:26さっさと.NETに移行させたいのだろ
ま、探しにくいのは前からだと思うが
Google検索でsite:microsoft.comした方が探し易いってどうよ?
0207デフォルトの名無しさん
2008/02/08(金) 22:43:27しかしリンクが死んでる事も多い罠
0208デフォルトの名無しさん
2008/02/08(金) 22:44:35ありがとう。探し方何となく分かった
0209デフォルトの名無しさん
2008/02/08(金) 22:48:30http://search.msdn.microsoft.com/search/Default.aspx?brand=msdn&lang=en-us&query=検索文字列
という風にしてる。
0210デフォルトの名無しさん
2008/02/08(金) 22:53:360211デフォルトの名無しさん
2008/02/08(金) 22:55:300212デフォルトの名無しさん
2008/02/08(金) 22:58:17まぁ簡単な英語だからいいけど
DirectXつかえやコラ
って事なんだろうな
0213デフォルトの名無しさん
2008/02/08(金) 23:02:08Vistaが.netベースになったら喜んで移行してやったんだがな
0214デフォルトの名無しさん
2008/02/08(金) 23:23:13DDKにFakeIMEというサンプルがある
0215デフォルトの名無しさん
2008/02/08(金) 23:44:490216デフォルトの名無しさん
2008/02/08(金) 23:45:30VC6 についてた MSDN が一番 。
0217デフォルトの名無しさん
2008/02/09(土) 00:00:40使い勝手のあるAPIは訳されてないし。なんつーか、PlatformSDKの
英語ドキュメントよんでたほうがマシ。
0218デフォルトの名無しさん
2008/02/09(土) 00:00:51日本語文章を解析して何かしたいので、その辞書として使いたいのですが……
0219デフォルトの名無しさん
2008/02/09(土) 00:05:22このスレで"IME"でレス抽出すると挙がってくる質問は全て君かね?
そろそろIMEスレでも立ててしてくれ
0220デフォルトの名無しさん
2008/02/09(土) 00:08:44立てちまえよマジで
俺も知りたいし
0221デフォルトの名無しさん
2008/02/09(土) 00:11:11レス検索してみた。
ちょっといくつか気になるワードでググってきます ノシ
0222デフォルトの名無しさん
2008/02/09(土) 00:11:43IMEはバージョンに依存する動作が多くて面倒だった記憶が
0223デフォルトの名無しさん
2008/02/09(土) 01:06:450224デフォルトの名無しさん
2008/02/09(土) 01:42:490225デフォルトの名無しさん
2008/02/09(土) 04:33:22何が原因だと思いますか?
別のPCで実行すると全てダウンロードできるんですがメインのPCで試してみると
出来るサイトと出来ないサイトが出てきてしまいます
色々試してみたけど規則性がまったく分からない
コントロールパネルからインターネットオプションでプロキシを全てはずしても
同じ結果になってしまいます。他にもしかしたらこれが原因かもとかいうのありませんか?
0226デフォルトの名無しさん
2008/02/09(土) 04:39:040227デフォルトの名無しさん
2008/02/09(土) 05:36:48VC2008EEの環境でCreateWindowExが実行されないみたいです。
ビルドのエラーは出ていない、定義へ移動でwinuser.hに飛ぶ、
#pragma comment(lib,"user32.lib")をソースの頭に書いている状態です。
Debugでブレークポイント置いても実行可能コードは無いって言われます。
成功するRegisterClassExの後ろに置いてみても状況は変わりません。
まぬけなミスしてるんだと思うんだけど、どの様に直せば良いですか?
0228デフォルトの名無しさん
2008/02/09(土) 06:08:240229デフォルトの名無しさん
2008/02/09(土) 06:22:35#pragma comment(lib,"user32.lib")を頭に書いてCreateWindowExで作ってみたけど
普通に動くよ。2008のProだけど
>実行可能コードは無い
プロジェクト作り直してみたら直ることがある
0230デフォルトの名無しさん
2008/02/09(土) 08:13:13富士の白雪ぁフェニックス〜
だけど僕らのキョーちゃんは〜
豚足大好き、ブヒっ好き〜
キョーモト キョーモト
きょうふのキョーーーーーーー(長いわ!)ーーーっちゃん
0231デフォルトの名無しさん
2008/02/09(土) 08:44:21意味不明な着ぐるみ系コントばっかりで
0232デフォルトの名無しさん
2008/02/09(土) 09:23:26じゃないか
0233デフォルトの名無しさん
2008/02/09(土) 10:43:11それともリソースファイルなんでしょうか
どちらに追加してもうまくいくようで気に入らないんですが
0234デフォルトの名無しさん
2008/02/09(土) 11:23:53ビルドするときにはファイル毎にどういうことを行うかという設定を見ており、
(その設定はファイルを追加したときに拡張子から標準の設定がなされる)
ソリューションエクスプローラでどこのフォルダに入っているかということはビルドに一切関係ない。
0235デフォルトの名無しさん
2008/02/09(土) 12:21:37draw( "hello world", pos );
と書くところを一旦posを定義しないで直接POINT型変数をdrawに与えるにはどうしたらいいですか
draw( "hello world", { 0, 0 } ); 的な…
0236デフォルトの名無しさん
2008/02/09(土) 12:55:57draw( "hello world", myCPOINT(0, 0));
Cならdrawの関数宣言を変えてしまうとか。
typedef void (*tdraw)(const char *, int x, int y);
tdraw pdraw = (tdraw)draw;
pdraw( "hello world", 0, 0);
スタックの積まれ方に注意。(xとy逆だったかも)
0237デフォルトの名無しさん
2008/02/09(土) 12:57:33((tdraw)draw)("hello world", 0, 0);
でもいい。
0238デフォルトの名無しさん
2008/02/09(土) 13:00:240239デフォルトの名無しさん
2008/02/09(土) 13:05:17どうしたらいいですか、ときたから答えたまで
後出しジャンケン野朗が
0240デフォルトの名無しさん
2008/02/09(土) 13:21:340241デフォルトの名無しさん
2008/02/09(土) 13:23:510242デフォルトの名無しさん
2008/02/09(土) 13:30:280243デフォルトの名無しさん
2008/02/09(土) 13:55:55draw("hello world",f(0,0));
0244227
2008/02/09(土) 13:59:44DLパスは名前の値です。
ttp://www.dotup.org/uploda/www.dotup.org0300.zip.html
>>229
テストありがとう。基礎が出来てないだろう俺にはもう判りません…orz
0245デフォルトの名無しさん
2008/02/09(土) 14:25:53CApplicationBase::GlobalWindowProc
が大変なことになってるぞw
CreateWindowExが失敗するのは、常にreturn S_OK;で処理しているため。
S_OK(=0)はCOMの正常終了値で使われる定義だが、
Window Procedureでは、正常終了値は大抵TRUE(=1)。
(※戻り値はメッセージにより異なる)
Window Procedureの仕様は、下記参照。
http://msdn2.microsoft.com/en-us/library/ms633569(VS.85).aspx
0246デフォルトの名無しさん
2008/02/09(土) 14:29:210247デフォルトの名無しさん
2008/02/09(土) 14:38:27現在実行中のプロセスが、管理者権限を持っているかを調べるAPIを教えてください。
UACが有効になっているVistaで、Administratorsに入っているユーザーが、
「管理者として実行」をしているかを調べたい、というのが動機です。
0249デフォルトの名無しさん
2008/02/09(土) 15:18:44IsUserAnAdminはそういう用途には使えないのかなぁ
0250デフォルトの名無しさん
2008/02/09(土) 17:09:550251デフォルトの名無しさん
2008/02/09(土) 17:52:16キースクロールでメッセージ投げる分には普通にスクロールするんだが
0252デフォルトの名無しさん
2008/02/09(土) 18:28:560253デフォルトの名無しさん
2008/02/09(土) 21:30:530254デフォルトの名無しさん
2008/02/09(土) 21:32:250255デフォルトの名無しさん
2008/02/09(土) 21:33:070256デフォルトの名無しさん
2008/02/09(土) 21:37:53ShellExecute
0257デフォルトの名無しさん
2008/02/09(土) 21:41:350258デフォルトの名無しさん
2008/02/09(土) 21:46:460259デフォルトの名無しさん
2008/02/09(土) 21:56:390260デフォルトの名無しさん
2008/02/09(土) 22:00:100261デフォルトの名無しさん
2008/02/09(土) 22:06:360262デフォルトの名無しさん
2008/02/09(土) 22:11:040263デフォルトの名無しさん
2008/02/09(土) 22:17:410264デフォルトの名無しさん
2008/02/09(土) 22:18:390265デフォルトの名無しさん
2008/02/09(土) 22:38:460266デフォルトの名無しさん
2008/02/09(土) 22:41:160267デフォルトの名無しさん
2008/02/09(土) 22:47:19GLOBAL(int) read_JPEG_file (char * filename)
あるからそこからスタートしてみたら?
デコーダーの気にくわない部分があれば、
すっ飛ばしてstaticにリンクすればよい。
0268デフォルトの名無しさん
2008/02/09(土) 22:49:020269デフォルトの名無しさん
2008/02/09(土) 23:05:530270デフォルトの名無しさん
2008/02/09(土) 23:17:390271デフォルトの名無しさん
2008/02/09(土) 23:30:39フォーカスのあるプログラムに対してIMEによる入力が行われているときとそうでないときで動作を変えたいのですが、
他のプロセスのIME状態を取得するにはどんな方法がありますか?
#IME入力中にマウスクリックで別のウィンドウをアクティブにしてから戻しても
#漢字変換を続行できるのを見ると結構ややこしそうです。
0272デフォルトの名無しさん
2008/02/09(土) 23:59:120273デフォルトの名無しさん
2008/02/10(日) 00:12:150274デフォルトの名無しさん
2008/02/10(日) 00:35:01GDI+も広義のWin32のうちだろ。
もちろんネイティブC++ APIの方。
0275デフォルトの名無しさん
2008/02/10(日) 00:48:03はあ?
0276デフォルトの名無しさん
2008/02/10(日) 01:00:440277デフォルトの名無しさん
2008/02/10(日) 01:01:270278デフォルトの名無しさん
2008/02/10(日) 01:47:400279デフォルトの名無しさん
2008/02/10(日) 01:57:59>Windows XPで、GDIはその後継であるC++ベースのサブシステムGDI+によって株を奪われた。
後継っつーならWin32APIスレの範疇にはいるんじゃないかと思う
APIはApplicationProgramingInterfaceの略で文字通りの意味しかない
32ビットのWindows用だからWin32API
他にもPOSIXで策定してるPOSIXAPIとかいろいろある
0280デフォルトの名無しさん
2008/02/10(日) 02:01:260281デフォルトの名無しさん
2008/02/10(日) 02:10:410282デフォルトの名無しさん
2008/02/10(日) 02:50:20つまり.NETもWin32APIって訳か
0283デフォルトの名無しさん
2008/02/10(日) 03:21:210284デフォルトの名無しさん
2008/02/10(日) 03:22:410285デフォルトの名無しさん
2008/02/10(日) 03:56:28専用スレがあるのにここで聞いても誘導されるだけだと思うが
0286デフォルトの名無しさん
2008/02/10(日) 07:19:44Susieプラグイン
0287デフォルトの名無しさん
2008/02/10(日) 07:43:540288デフォルトの名無しさん
2008/02/10(日) 09:03:120289デフォルトの名無しさん
2008/02/10(日) 10:05:080290デフォルトの名無しさん
2008/02/10(日) 10:44:43日本語でおk
0291デフォルトの名無しさん
2008/02/10(日) 11:03:590292デフォルトの名無しさん
2008/02/10(日) 11:05:580293デフォルトの名無しさん
2008/02/10(日) 11:13:12ありがとう。
頭文字が小文字なのでCランタイムの関数だと思ったら、user32.dllのAPIなのね。
0294デフォルトの名無しさん
2008/02/10(日) 11:41:09ネイティブC/C++から満足に使えないからWin32 APIには入らないと俺は思う。
この立場からは.NETのUnmanaged Hosting APIはWin32。
でもこのスレにそんなこと質問してきたら、
それに関してはここよりわかる人がいそうな.NETのスレへ誘導するだろうけどね。
0295デフォルトの名無しさん
2008/02/10(日) 11:44:390296デフォルトの名無しさん
2008/02/10(日) 16:43:120297デフォルトの名無しさん
2008/02/10(日) 16:44:28役割を求められても仕方がないのかも。
色んな質問が来るのは勲章だと思えばいいんじゃないかな。
広めに受け入れて、誘導できるものは誘導すればいい。
0298デフォルトの名無しさん
2008/02/10(日) 16:53:24DDBを作り、少しずつ色を変えながら色を出力すると、
表示されない色が出て、その色は2つのビットマップで違うのですが、
DDBにもパレットみたいなのがあるのでしょうか。
0299デフォルトの名無しさん
2008/02/10(日) 17:12:53LoadImageでできたDDBを出力先にし、
FillRectで小さい四角を、
色、位置を少しずつ変えながら出力する感じです。
出力先は普通はCreateBitmap等で作ったDDBに
すると思うんですが、実験という事でそれに出力しています。
0300デフォルトの名無しさん
2008/02/10(日) 18:32:01(CloseHandleで閉じるハンドル・特にファイルハンドル)
を列挙する方法はありませんか?
GetProcessHandleCountっていうのを見つけたのですが、これだと数しかわかりません。
0301デフォルトの名無しさん
2008/02/10(日) 18:34:50どうプログラムに落とすかがプログラマの真価が問われる。このスレじゃ、それはわからん。
0302デフォルトの名無しさん
2008/02/10(日) 18:44:100303デフォルトの名無しさん
2008/02/10(日) 19:12:22>DDBにもパレットみたいなのがあるのでしょうか。
あるよ。
SelectPaletteやCreatePaletteなどのAPIはDDBでも使用可能
0304デフォルトの名無しさん
2008/02/10(日) 20:02:29コンパイルできるのに起動時にエラーがでるのだが。
ちなみにsystem32以下のuser32.dllのタイムスタンプは2004年8月4日になってる。
わかる?
エラーメッセージ
「エントリポイントが見つかりません
プロシージャエントリポイントChangeWindowMessageFilterがダイナミックリンクライブラリUSER32.dllから見つかりませんでした」
ソース
#include <windows.h>
#include <scrnsave.h>
#pragma comment(lib, "scrnsavw.lib")
#pragma comment(lib, "comctl32.lib")
LRESULT WINAPI ScreenSaverProcW(HWND hWnd, UINT msg,WPARAM wParam, LPARAM lParam)
{
return DefScreenSaverProc(hWnd, msg, wParam, lParam);
}
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
return TRUE;
}
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
return TRUE;
}
0305デフォルトの名無しさん
2008/02/10(日) 20:09:330306デフォルトの名無しさん
2008/02/10(日) 20:12:560307デフォルトの名無しさん
2008/02/10(日) 20:13:570308デフォルトの名無しさん
2008/02/10(日) 20:19:330309デフォルトの名無しさん
2008/02/10(日) 20:26:04VS2008スレで見たね
0310304
2008/02/10(日) 21:07:552005入れ直すかな
他のスレに同じことやってる奴がいてわらた
みんなthx
0311デフォルトの名無しさん
2008/02/10(日) 21:10:530312デフォルトの名無しさん
2008/02/10(日) 21:32:12それはちょっと面白いな
0313デフォルトの名無しさん
2008/02/11(月) 01:19:48これ、MSのどっかにねじ込んでおけばいいんだよな?
0314デフォルトの名無しさん
2008/02/11(月) 02:03:00一応完成したのですが、アイコンをクリックした時に
2回目のクリックからタスクバーのプロパティーまで表示されてしまいます。
マウスのイベントがタスクバーまで伝播しているようなのですが、
この回避方法はどうやればいいのでしょうか?
誰かご教授ください。
0315デフォルトの名無しさん
2008/02/11(月) 02:11:15正しく書いていればそのような挙動はしない。
0316デフォルトの名無しさん
2008/02/11(月) 03:03:52早急に教えてください。
malloc() はどのDLLのエクスポート関数でしょうか?
0317デフォルトの名無しさん
2008/02/11(月) 03:07:020319デフォルトの名無しさん
2008/02/11(月) 03:17:57crtdll.dll
msvcrt.dll
msvcrt40.dll
mscvr70.dll
mscvr71.dll
mscvr80.dll
mscvr90.dll
mscvr71d.dll
mscvr80d.dll
mscvr90d.dll
cc3250mt.dll (Borland)
cygwin1.dll
0320デフォルトの名無しさん
2008/02/11(月) 03:26:490321デフォルトの名無しさん
2008/02/11(月) 03:34:24誰か教えてください
0322デフォルトの名無しさん
2008/02/11(月) 05:03:20もしかして通知トレイのことか?
メニュー出す直前にSetForegroundWindow()を呼ぶ
あとNULLでSendMessage()
0323デフォルトの名無しさん
2008/02/11(月) 05:11:460324デフォルトの名無しさん
2008/02/11(月) 05:59:42アイコンの整列の「名前」「サイズ」「種類」「更新日時」の状態を取得することって出来ないでしょうか?
0325デフォルトの名無しさん
2008/02/11(月) 06:45:49それぞれ同期してないけど、その場合どうするつもり?
後で指定されたソート方法を優先?
そもそもこれってAPIの質問?
0326デフォルトの名無しさん
2008/02/11(月) 08:36:47ありがとうございます。
0327デフォルトの名無しさん
2008/02/11(月) 09:06:30IShellFolder2::GetDefaultColumn()でどう?
http://msdn2.microsoft.com/en-us/library/bb775045(VS.85).aspx
http://msdn2.microsoft.com/en-us/library/bb775055(VS.85).aspx
2000or98ME以降になっているが
95,98のIShellFolderやIShellDetailsにはそれらしきメンバは無いな。
エクスプローラを最後に閉じたときの状態が取得できるようなので
厳密に同期を取る325のいうようなケースは厄介そう。
> アイコンの整列の「名前」「サイズ」「種類」「更新日時」の状態を
> 取得することって出来ないでしょうか?
シェルを拡張してColumnが追加されているケースもありうるよ
0328デフォルトの名無しさん
2008/02/11(月) 09:26:54スタイルにTCS_MULTILINEがついているかどうかで
0329314
2008/02/11(月) 13:36:41レスサンクス!ActiveとNull送信はやってます。
原因はWM_ACTIVEをラップしてなかったからです。
商用アプリでも同じ現象が発生してて、ちょっとびっくりしてました。
どうもです。
0330321
2008/02/11(月) 16:16:49すいませんちょっと情報不足でした
スタイルにTCS_MULTILINEを設定しても、タブが少なかったら1行で表示されますよね?
TCS_MULTILINEを設定して、タブを追加して、その結果として複数行で表示されるか否かを知る方法はないのでしょうか?
ということが聞きたかったのですが
0331デフォルトの名無しさん
2008/02/11(月) 16:19:20GetClientRectとTCM_ADJUSTRECTを使えば
タブのつまみ部分に使われてる高さは分かる
0333デフォルトの名無しさん
2008/02/11(月) 20:41:11ごめん。そこまで気が回らなかった。
解決したみたいだけど、
事前に知ることはできなそうだが、追加後でよければ
TCM_GETROWCOUNTで行数を取得できるよ。
0334デフォルトの名無しさん
2008/02/12(火) 00:17:40とした場合はDeleteObject()しなくていいですか
0335デフォルトの名無しさん
2008/02/12(火) 00:42:06だめです。
new = CreateSolidBrush(...);
old = SelectObject(..., new);
個々で何らかの処理。
SelectObject(..., old);
DeleteObject(new);
とするべき。
0336デフォルトの名無しさん
2008/02/12(火) 00:47:10old = SelectObject(..., CreateSolidBrush(...));
DeleteObject(SelectObject(..., old));
0337デフォルトの名無しさん
2008/02/12(火) 01:00:10別の方向に混乱しそうだけど。
どういう処理なのか一瞬わからんかったw
0338デフォルトの名無しさん
2008/02/12(火) 01:15:58滅多に失敗しないのは確かだけど。
0339デフォルトの名無しさん
2008/02/12(火) 01:46:29ディリートしないせいで問題が起きたことないし
0340デフォルトの名無しさん
2008/02/12(火) 01:52:44いや、確かめたわけではないけれど。
0341デフォルトの名無しさん
2008/02/12(火) 01:52:50「いちいちディリートしなくても勝手にGCしろよ」
とドトネト厨登場↓
0342デフォルトの名無しさん
2008/02/12(火) 01:56:18デストラクタででぃりーとしろよ
0343デフォルトの名無しさん
2008/02/12(火) 01:59:50連続稼動させてると他のアプリケーションまで表示がぐちゃぐちゃになったことがあったな。
0344デフォルトの名無しさん
2008/02/12(火) 02:23:45class GDIBinder : noncopyable{
HDC mhdc;
HGDIOBJ old;
public:
GDIBinder (HDC dc, HGDIOBJ obj)
: mhdc(dc)
{
old = SelectObject( mhdc, obj );
}
~GDIBinder(){
SelectObject(mhdc, old );
}
operator HDC (){return mhdc;}
};
0345デフォルトの名無しさん
2008/02/12(火) 04:40:47WinRARみたいに重い処理をさせてもウインドウ動かしたり出来るようになりますか?
0346デフォルトの名無しさん
2008/02/12(火) 04:43:480347デフォルトの名無しさん
2008/02/12(火) 04:44:170348デフォルトの名無しさん
2008/02/12(火) 04:48:56勉強してみます
0349デフォルトの名無しさん
2008/02/12(火) 08:56:050350デフォルトの名無しさん
2008/02/12(火) 12:47:18クッキー
0351デフォルトの名無しさん
2008/02/12(火) 13:31:04最初にSaveDC/最後にRestoreDCで一気に戻した方が楽な場合もある
0352デフォルトの名無しさん
2008/02/12(火) 13:56:300353デフォルトの名無しさん
2008/02/12(火) 16:50:18urlぐらい書けよ
0354デフォルトの名無しさん
2008/02/12(火) 17:05:540355デフォルトの名無しさん
2008/02/12(火) 17:38:290356デフォルトの名無しさん
2008/02/12(火) 18:32:21WindowsSDKに名前が変わって、.NETも含まれるようにはなったけど。
0357デフォルトの名無しさん
2008/02/12(火) 18:39:13.NET使わないんでPlatformSDKの頃みたいにWin32関連だけインスコできればなと
色々統合されてたりして無理なのかな
0358デフォルトの名無しさん
2008/02/12(火) 18:45:040359デフォルトの名無しさん
2008/02/12(火) 19:10:040360デフォルトの名無しさん
2008/02/12(火) 19:11:130361デフォルトの名無しさん
2008/02/12(火) 20:09:28BM_SETSTATEで押し込んだ状態にできますが、
クリックしたり、クリックしたままボタンの上から移動すると
出っ張った状態に戻ってしまうんですが、
トグルボタンのようなものを作るにはどうしたらよいですか。
MFCなら同じメッセージを送ればそのまんま動くみたいですが
MFCなしでお願いします
0362デフォルトの名無しさん
2008/02/12(火) 20:34:05リポートビュースタイルを適用しています。
リストビューに項目を設定するには、
LVITEM lv;
lv.iItem = 0;
ListView_InsertItem(hListView, &lv);
ListView_SetItemText(hListView, 0, 1, TEXT("項目1−1"));
という形で大丈夫なはずだと思うんですが、なぜかうまくいきません。
どこがおかしいのでしょうか
0363デフォルトの名無しさん
2008/02/12(火) 20:55:26インストール時のコンポーネント指定でドトネト関連だけ外せばいいじゃん
ダウンロードするファイルのサイズ自体を減らしたいというならそれは無理な相談、だがwebインスコなら可?
0364デフォルトの名無しさん
2008/02/12(火) 21:06:07精度はまったくいらないんだけど。
0365デフォルトの名無しさん
2008/02/12(火) 21:11:350366デフォルトの名無しさん
2008/02/12(火) 21:12:240367デフォルトの名無しさん
2008/02/12(火) 21:13:090368デフォルトの名無しさん
2008/02/12(火) 21:15:10そのリストビューはカラムを2つ以上追加した状態なのか?(ListView_SetItemTextの第3引数は一番左のカラムなら0)
あとLVITEMは宣言時に { 0 } で初期化したほうがいい
まずはリファレンスか入門サイト見たほうがいいよ
0369デフォルトの名無しさん
2008/02/12(火) 21:21:34どんなウェイト?
他のスレッドに一瞬制御渡したい目的なら「メッセージポンプ」で検索。
そうじゃなきゃvolatile int i; for(i=0;i<100;i++);とかで適当に回すとか。
0370デフォルトの名無しさん
2008/02/12(火) 21:30:250371デフォルトの名無しさん
2008/02/12(火) 21:33:47精度がいらなくて短いウェイト?
つSwitchToThread()
0372デフォルトの名無しさん
2008/02/12(火) 21:40:21ランタイムは勝手にインスコされた気がするが。
0373デフォルトの名無しさん
2008/02/12(火) 22:18:03ゼロで初期化したら、”できました!!”
カラムは4本です。だけど、不思議です。
ありがとうございました。!!!!
0374デフォルトの名無しさん
2008/02/12(火) 23:18:37Sleep(0);
0375デフォルトの名無しさん
2008/02/12(火) 23:39:45UINT型でキャストした変数じゃむりですた
0376デフォルトの名無しさん
2008/02/13(水) 00:02:33システムの終了時を捉えるには、WM_ENDSESSION メッセージに対応すればいいと思うんですが、
ハイバネーションモードに入るのを捉えるにはどうしたらいいでしょうか
タイマーでプログラムが生きてるかどうか確認する方法しか思いつかないです。
(定期的に時間差をとることで、復帰後にシステムが休止状態にあった時間を調べるという泥臭い方法くらい)
0377デフォルトの名無しさん
2008/02/13(水) 00:03:33普通に最初に指定したタイマーIDと同じIDを指定して、新しい時間を設定すればOKだと思いますが
0378デフォルトの名無しさん
2008/02/13(水) 00:33:28オーナードローを使えと言いたいところだが…
0379デフォルトの名無しさん
2008/02/13(水) 00:50:41BS_RADIOBUTTON,BS_CHECKBOX,BS_AUTORADIOBUTTON,BS_AUTOCHECKBOX
のいずれかとBS_PUSHLIKEを組み合わせればトグル動作するけど
どうだろう?
0380デフォルトの名無しさん
2008/02/13(水) 00:54:37WM_POWERBROADCASTとか
0381デフォルトの名無しさん
2008/02/13(水) 01:46:070382デフォルトの名無しさん
2008/02/13(水) 02:24:07が、ム板にはこういうレスと人は不要です
0383デフォルトの名無しさん
2008/02/13(水) 05:52:26スレッドの開始関数に情報を渡すときってどうすればいいんですか?グローバル変数?
0384デフォルトの名無しさん
2008/02/13(水) 07:21:02void*の引数があるから、それで何とかしろ。
素人にはお勧めしない方法だが、下のような方法で組むことがあるな。
渡した内容をきちんと受け取るまで待っている所が重要。
static foo_data {
volatile int flag;
int data1;
}
DWORD ThreadProc (LPVOID lpParam) {
struct foo_data param = *(struct foo_data *)lpParam;
((struct foo_data *)lpParam)->flag = 1;
...
}
HANDLE ThreadStartProc(int data1) {
struct foo_data param = { 0, data1 };
HANDLE hThread;
if ( (hThread = CreateThread(NULL, 0, ThreadProc, ¶m, ...)) != NULL ) {
while ( !param.data1 ) Sleep(100);
}
return hThread;
}
0385デフォルトの名無しさん
2008/02/13(水) 08:44:440386デフォルトの名無しさん
2008/02/13(水) 09:17:350387デフォルトの名無しさん
2008/02/13(水) 09:47:160388383
2008/02/13(水) 16:34:53すみません自己解決しました
グローバル変数とクリティカルセクションを併用すればいいみたいです
void *の引数はWindowsで使用する的なことが書いてあったので避けていたのですが、その方法でも出来るんですね
蛇足だけど、1行目のstaticってのはきっとstructのことですよね
0389デフォルトの名無しさん
2008/02/13(水) 17:22:100390デフォルトの名無しさん
2008/02/13(水) 17:42:420391デフォルトの名無しさん
2008/02/13(水) 17:51:09-while ( !param.data1 ) Sleep(100);
+while ( !param.flag ) Sleep(100);
0392デフォルトの名無しさん
2008/02/13(水) 19:29:25そういう待ち合わせにはイベントを使う。
クリティカルセクションとフラグじゃItaniumでうまく動かないし、
一回空振りしただけで無駄に 100msec も待ってしまう。
それからデータの受け渡しだけなら、new した構造体のポインタを渡して
スレッド側で不要になったら解放すれば、そもそも待ち合わせる必要もない。
0393デフォルトの名無しさん
2008/02/13(水) 19:40:22まさにそれでした。まさか普通のボタンではないとは。
ありがとうございました。
0394384
2008/02/13(水) 22:04:32メモリバリアは完全に忘れてた。Interlock系API使わなきゃダメだな。
でもクリティカルセクションが駄目な理由が良く判らん。何で?
まあ、Cで解放とか面倒なことをせずに済むように考えて書いたコードだから勘弁。
0395383
2008/02/13(水) 23:00:55イベントですか・・・調べてみます
0397386
2008/02/13(水) 23:43:26どうもです。フォーカスはキー入力を受け付けるということで良いのですが、
フォアグラウンドとアクティブウィンドウはどう違うのでしょうか?
SetForegroundWindow() の説明では「アクティブウィンドウにしてフォーカスをセットする」
と記述されてますが、アクティブウィンドウとはタイトルバーの色が変わっているウィンドウのことでしょうか?
0398デフォルトの名無しさん
2008/02/14(木) 00:13:51CUIの時は実感なかったけどこんな複雑な計算が一瞬で行われてるなんて…
人はなんて恐ろしいものを作ってしまったんだ
0399デフォルトの名無しさん
2008/02/14(木) 00:26:010400デフォルトの名無しさん
2008/02/14(木) 00:43:05CPUヤバイ。
まず速い。もう速いなんてもんじゃない。超速い。
速いとかっても
「リニアモータカーくらい?」
とか、もう、そういうレベルじゃない。
何しろギガ。スゲェ!なんか単位とか丸められてるの。何キロとか何万とかを超越してる。10億倍だし超速い。
しかもさらに速くなってるらしい。ヤバイよ、加速だよ。
だって普通は時間とか加速しないじゃん。だって寝てられる時間がだんだん短くなったら困るじゃん。5分しか寝られないとか困るっしょ。
朝日が出て、先月は沈むまで16時間だったのに、今日は2時間とか泣くっしょ。
だから時間とか加速しない。話のわかるヤツだ。
けどCPUはヤバイ。そんなの気にしない。加速しまくり。最も初期から考えると10億倍とかよくわかんないくらい速い。ヤバすぎ。
ギガって言ったけど、もしかしたらテラかもしんない。でもテラって事にすると
「じゃあ、テラの次ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超熱い。約333ケルビン。摂氏で言うと60℃。ヤバイ。熱すぎ。生卵が温泉卵になっちゃう。怖い。
それに超高集積。超キツキツ。それに超高い。10億万円とか平気で出てくる。億万円て。小学生でも言わねぇよ、最近。
なんつってもCPUは計算力が凄い。WinAPIとか平気だし。
うちらなんてプログラムとかたかだかエクセルマクロで出てきただけで上手く扱えないから使わなかったり、
足し算くらいにしか使わなかったり、出来る人にやって貰ったりするのに、CPUは全然平気。WinAPIを機械語のまま扱ってる。凄い。ヤバイ。
とにかく貴様ら、CPUのヤバさをもっと知るべきだと思います。
そんなヤバイCPUを作ってるAMDとか超偉い。もっとがんばれ。超がんばれ。
0401デフォルトの名無しさん
2008/02/14(木) 00:45:030402デフォルトの名無しさん
2008/02/14(木) 00:47:24ワロタw
0403デフォルトの名無しさん
2008/02/14(木) 00:50:150404デフォルトの名無しさん
2008/02/14(木) 00:53:42くると思ったw
0405デフォルトの名無しさん
2008/02/14(木) 02:50:46和んだwww
0406デフォルトの名無しさん
2008/02/14(木) 18:17:51慌てて逆さにしたり、ドライヤーで乾かしたりしたのですが、キーの入力がおかしくなってしまいました。
今はUSBキーボードを繋いでパソコンを使っているのですが、けっこうな頻度で押してないキーが押されている状態になります。
USBのキーボードを外していても起きるので、ノートのキーボードのほうからキーの入力が起きていると思われます。
コントロールパネルからドライバのアンインストールをしてみたのですが、再起動すると勝手にインストールされてしまいます。
なので、自作のプログラムでノートのキーボードからだけの入力をシャットアウトしたいのですが、APIで解決できますか?
0407デフォルトの名無しさん
2008/02/14(木) 18:20:500408デフォルトの名無しさん
2008/02/14(木) 18:44:09機械音痴なので元に戻せるかどうかが心配です・・・。
いざとなったらやってみたいと思います。
0409デフォルトの名無しさん
2008/02/14(木) 19:26:01キーボードをコネクタのとこから外しちゃえ。
ThinkPadにコーラ飲ませたときは電源入れるときだけ繋いでたなあ。
0410デフォルトの名無しさん
2008/02/14(木) 20:11:230411デフォルトの名無しさん
2008/02/14(木) 22:35:19> それからデータの受け渡しだけなら、new した構造体のポインタを渡して
> スレッド側で不要になったら解放すれば、そもそも待ち合わせる必要もない。
横からだけど、そんなの気づかなかった。ずっとイベントで待ってた。トン
0412デフォルトの名無しさん
2008/02/15(金) 00:30:34新プロセス起動→自身死亡 だと対象になるプロセスが多重起動を禁止していた場合に上手く動きません
今のところ
新プロセスサスペンド起動→リモートスレッド作成(待機)→自身死亡→死亡をトリガにリモート待機解除→リジューム
ぐらいの方法しか思いつかないのですが、なにか良い方法ってないですか?
0413デフォルトの名無しさん
2008/02/15(金) 00:32:500414デフォルトの名無しさん
2008/02/15(金) 00:51:29これって可能なの?
メモ帳みたいに「保存しますか?」とか出るやつにはどう対応するの?
0415デフォルトの名無しさん
2008/02/15(金) 00:53:250416デフォルトの名無しさん
2008/02/15(金) 00:59:350417デフォルトの名無しさん
2008/02/15(金) 01:03:18想像力低下していませんか?
世の中のアプリ全てがエディタではないのですよ。
0418デフォルトの名無しさん
2008/02/15(金) 01:17:25素直に修理に出したほうがいいよ。糖分は予後不良の原因になるから。
0419デフォルトの名無しさん
2008/02/15(金) 01:44:08お前頭悪いな
「不特定のプロセス」という事はプロセスを強制的に殺したらデータが飛ぶ物もあるだろう
0420デフォルトの名無しさん
2008/02/15(金) 01:48:37寝ているんですか?
データが飛ばないものもあるってことに気付いてください。
0421デフォルトの名無しさん
2008/02/15(金) 01:49:330422デフォルトの名無しさん
2008/02/15(金) 02:09:04「プロセスを強制的に殺したら、データが飛ぶものもあれば飛ばないものもある」
0423デフォルトの名無しさん
2008/02/15(金) 02:12:29そのとき処理中のファイルは壊れる・消えるかも知れないけど
なんとかしる、ってのはたぶん要件に入ってないんだよ。
0424デフォルトの名無しさん
2008/02/15(金) 02:20:05再起動時刻と実行ファイルを指定して、目覚ましのような機能を実装するにはどうしたらいいでしょう
このタスクというのはレジストリに記録するものなんでしょうか?
このあたりの取っ掛かりがドコにもなくて困ってます
0425デフォルトの名無しさん
2008/02/15(金) 02:27:29よく知らんけどITaskSchedulerというのがあるぞ
0426デフォルトの名無しさん
2008/02/15(金) 02:31:210427デフォルトの名無しさん
2008/02/15(金) 04:35:35おお トンクスです
ITaskSchedulerはc++じゃないとダメみたいですけど、やっぱcだけじゃ先細りかなぁ
ヘルプみながらやってみます。
こういう切っ掛けがもらえると、結構ありがたいです。
ありがとう
0428412
2008/02/15(金) 06:24:41413の方法がより良いですね(楽だし)
DLLのみで実装しているので、コンポーネントが増えるのがちょっとなぁ
という感じだったのですが、どこの馬の骨とも知らんプロセスにスレッド作るのも信頼性が無いですね
で安全な自殺の問題に関しては>>423の通りです
赤の他人のプロセスの正しい終了方法ってのは無いと思っているので
終了に関しては「いいから死ねよww」的実装にする予定です
0429デフォルトの名無しさん
2008/02/15(金) 07:33:05インターフェースはCでもきちんとアクセスできるよ。
ヘッダににもC用のマクロが生成されているはず。
0430デフォルトの名無しさん
2008/02/15(金) 13:26:47怖いソフトだな
0431デフォルトの名無しさん
2008/02/15(金) 14:45:53プログラムを作成しています。
http://www.gazoru.com/g-56c381307c3112291311c2c91b1d703f.jpg.html
http://www.gazoru.com/g-3f62aa51c6bc698fbc545808c1d04fa0.jpg.html
最初は、別々に表示されるのですが、重なった場合
下のを上(アクティブ)にすると、一枚目と同じになって
しまいます。
○原因
○対処方法
をお教え下さると有り難いです。
ソースは、一応付けます。
Pass=1
(win2000 vc6.0)
http://www11.axfc.net/uploader/20/so/He_72578.zip.html
0432デフォルトの名無しさん
2008/02/15(金) 14:46:55case WM_PAINT:
//1
hdc= BeginPaint( hWnd, &ps );
Rectangle(hdc, 100, 100, 400,400);
ReleaseDC(hWnd, hdc);
EndPaint( hWnd, &ps );
//2
RECT rect;
GetClientRect( hWnd3,&rect );
hdc= BeginPaint( hWnd3, &ps );
Rectangle(hdc, 0, 0, 100,100);
ReleaseDC(hWnd3, hdc);
EndPaint( hWnd3, &ps );
//3
hdc= BeginPaint( hWnd5, &ps );
Rectangle(hdc, 50, 50, 200,200);
ReleaseDC(hWnd5, hdc);
EndPaint( hWnd5, &ps );
break;
0433デフォルトの名無しさん
2008/02/15(金) 14:47:16//2
hdc= BeginPaint( hWnd3, &ps );
Rectangle(hdc, 0, 0, 100,100);
ReleaseDC(hWnd3, hdc);
EndPaint( hWnd3, &ps );
//3
hdc= BeginPaint( hWnd5, &ps );
Rectangle(hdc, 50, 50, 200,200);
ReleaseDC(hWnd5, hdc);
EndPaint( hWnd5, &ps );
0434デフォルトの名無しさん
2008/02/15(金) 14:57:56現象がよくわからん、2008でやっても再現しないみたい。
まあそれはおいといて、WM_PAINT以外でBeginPaintは使うな。
そこで書きたいならInvalidateでPAINTにまかすか、
GetDCで自分でDCもってこい
0435デフォルトの名無しさん
2008/02/15(金) 15:05:36WM_PAINTの仕組みとか、ウィンドウプロシージャの動作とか
知ることはいっぱいありそうだけど、いったいどれを参考にしたのこれ?
0436デフォルトの名無しさん
2008/02/15(金) 15:58:102005と違って2008は、最初からPlatformSDKが付いているようなので、WindowsSDKは必要ないように思っているのですが、どうなのでしょうか。
0437デフォルトの名無しさん
2008/02/15(金) 16:04:41.h ファイルや .lib ファイルを参照したり、取り込むよう指定が不要なら
要らないんじゃないか。スペルがあやしいが、dialog や listbox ctrl など
を使おうとすると、cmnctl32.lib とか要るだろう。
自分は dsound.h, dsound.lib も使うんで DirectX も入れたよ。
0438デフォルトの名無しさん
2008/02/15(金) 16:38:06セットアップのコンポーネント一覧でグレーアウトしていてチェックできない・・・
それともVS2008が入ってると自動で弾かれるのか?(2008Proが入ってる)
2005の時と同じくソース解析対応コンパイラに差し替える裏技が使えると期待したんだが。
0439デフォルトの名無しさん
2008/02/15(金) 17:00:12>>435も言ってるけど、全体的にむちゃくちゃ。
基本から勉強し直した方がいいと思う。
とりあえず、複数のウィンドウで同じプロシージャを共有するのなら、
メッセージ受け取り時に、それを区別しないと。
http://www11.axfc.net/uploader/20/so/He_72614.zip.html
Pass:1
0440デフォルトの名無しさん
2008/02/15(金) 17:01:21ゲームのチートツールを作るAPIって何ですか?
猫飯みたいに今実行してるプロセスのメモリを見れて
いじれるものをつくりたいんですが。
つまり実行中のほかのプロセスのメモリを書き換えるAPIとかって無いですか?
0441デフォルトの名無しさん
2008/02/15(金) 17:11:240442デフォルトの名無しさん
2008/02/15(金) 17:35:57ということは、VCだけを使う場合であれば、.NETFrameworkは不要ということで、
WindowsSDKをインストールする必要はないように思えるのですが、実際どうなのでしょうか。
一番気になっているのは、VC2008に付属するPlatformSDKが、
APIを使ったWinプログラムに完全に対応しているかどうかです。
437の方が言うように、comctl32.libが抜けていたりしたら困るところです。
0443デフォルトの名無しさん
2008/02/15(金) 17:41:25ヘッダ・インポートライブラリに関してはVC++付属ので困ってから、
入れることを考えても遅くない。
だから、入れるとしたら、Windows SDKのツールやドキュメントが欲しいとき。
0444デフォルトの名無しさん
2008/02/15(金) 17:49:23取りあえず、2008をインストールして、何が不足しているかを探ってみます。
0445デフォルトの名無しさん
2008/02/15(金) 18:03:59「じゃあ、テラの次ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
ネタとはいえ、どんだけ教養ないんだよとオモタ
0446デフォルトの名無しさん
2008/02/15(金) 18:20:190447デフォルトの名無しさん
2008/02/15(金) 18:36:240448デフォルトの名無しさん
2008/02/15(金) 18:41:30ありがとー☆
さっそくつくってみる
0449デフォルトの名無しさん
2008/02/15(金) 19:28:57がんばれ 超頑張れ
DirectXとかゲームPGもいいけどそっちの世界も面白いぞ
0450デフォルトの名無しさん
2008/02/15(金) 20:59:45テラって葬式だけやってるわけじゃないぞ
0451デフォルトの名無しさん
2008/02/15(金) 22:20:21ウィンドーズ.hとか、コモンコントール.hとかはウィンドーズSDKに入ってるから、
別途インストロールしないといけないと思ってたが、違ったのか。
つか、ウィンドーズSDKのコンパイラーいれないと、エキスプレスエディションだけじゃ、
RC.Exeがないから、リソースがコンパイールできませ〜ん、ってエキスプレスの妖精さんに言われたんだが。
0452デフォルトの名無しさん
2008/02/15(金) 22:22:26皇室の葬儀もよく判らんし
0453デフォルトの名無しさん
2008/02/15(金) 22:31:01VC++ 2008はWindows SDKのサブセットが入っている。
0454デフォルトの名無しさん
2008/02/15(金) 22:34:56神格化していた頃ならいざ知らず
0455デフォルトの名無しさん
2008/02/15(金) 23:06:29仕様ですか?
0456デフォルトの名無しさん
2008/02/15(金) 23:18:08だとしたらDrawTextとかで自力で書いてるの?
0457デフォルトの名無しさん
2008/02/15(金) 23:23:200458デフォルトの名無しさん
2008/02/15(金) 23:23:530459デフォルトの名無しさん
2008/02/15(金) 23:36:36unicodeアプリです。
ある文字が全角文字か、半角文字かを判定したいと考えています。
どのようなAPIがあるでしょうか、よろしくお願いします。
0460デフォルトの名無しさん
2008/02/15(金) 23:39:140461デフォルトの名無しさん
2008/02/15(金) 23:47:410462デフォルトの名無しさん
2008/02/15(金) 23:58:05それとどういう関係かは知らないけど、
Windows APIでは、GetStringTypeExのCtype 3で、全角・半角を取得できる。
0463デフォルトの名無しさん
2008/02/16(土) 00:48:44↑のサイト見ながらWinAPI勉強し始めたばかりの者ですが
コマンドライン引数の項に乗っている一番最初のサンプルプログラムをコンパイルしてみたところ
PSTRとLPCWSTRの型に互換性がないと警告され、データファイルを実行ファイルにD&Dすると文字化けしたパスが表示されました
その前のメッセージボックスの項で紹介されていた引数の型と違うからおかしいとは思っていたのですが・・・
一応、型変換なども試してみたのですが表示されるのはいつも文字化けしたファイルのパスです
なんとか文字化けさせずにD&Dしたファイルのパスをメッセージボックスに表示させたいのですがどうしたらいいでしょうか?
0464デフォルトの名無しさん
2008/02/16(土) 01:00:52プログラム上での表記について調べるがよい。
とりあえず、PSTR はchar型へのポインタ、LPCWSTR はwchar_t型へのポインタのハズ。
別ものだよ。
ただ、そのページの例にも問題があるなw
0465デフォルトの名無しさん
2008/02/16(土) 01:04:48環境は?
VisualStudio2005からはUNICODE文字セット使用がデフォルトになってるからな
マルチバイト文字セット使用にするか、ソースをUNICODEにあわせるかどっちかで
0466デフォルトの名無しさん
2008/02/16(土) 01:06:28ありがとうございます!
早速ユニコード文字について調べてきます
0467デフォルトの名無しさん
2008/02/16(土) 01:09:58VC++2005EEです
・・・っということはやっぱりユニコードですか
GUI作成に至るまでに覚えることは多そうだ・・・・・
0468デフォルトの名無しさん
2008/02/16(土) 01:26:39方法がさっぱりわかんねーです(涙涙涙涙涙涙涙涙涙涙涙涙;;;;;;
0469デフォルトの名無しさん
2008/02/16(土) 01:39:40<tchar.h>をインクルードして、
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PTSTR pCmdLine, int nCmdShow)
とすればいい。
0470デフォルトの名無しさん
2008/02/16(土) 01:59:01どうやったら直るか誰か教えてorz
0471デフォルトの名無しさん
2008/02/16(土) 02:05:09IXXX->lpVtbl->Func()
って感じで書く。
ヘッダ見たほうが早いよ。
C用に下記みたいなマクロが用意されているし。
#define ITaskScheduler_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
0472デフォルトの名無しさん
2008/02/16(土) 11:04:460473デフォルトの名無しさん
2008/02/16(土) 12:17:13特別分かりやすいわけではないと思っているけど、Cでやるサンプルがある。
0474デフォルトの名無しさん
2008/02/16(土) 14:58:180475デフォルトの名無しさん
2008/02/16(土) 15:01:510476デフォルトの名無しさん
2008/02/16(土) 16:11:070477デフォルトの名無しさん
2008/02/16(土) 16:11:39書いてあった関数コメントアウトして確保と開放の処理だけにしてみたのにやっぱりエラー…
何故でしょうか?
問題の部分のソースとエラー
unsigned long long int MojiCount=0;
static HGLOBAL hMem;
char *MojiBuf;
MojiCount=Edit_GetTextLength(hEdit);
hMem=GlobalAlloc(GHND,sizeof(char)*MojiCount+2);
if(hMem==NULL)
MessageBox(hWnd,"メモリが確保できませんでした","メモリエラー",MB_OK);
MojiBuf=(char *)GlobalLock(hMem);
MojiBuf[MojiCount+2]='\0';
Edit_GetText(hEdit,MojiBuf,MojiCount+1);
//本当はここで関数に*MojiBufを渡しててそれが原因かと思って、コメントアウトしてみたけどやっぱりエラーでる
GlobalUnlock(hMem);
GlobalFree(hMem);//←ここにブレイクポイント設置、ステップインするとエラー
Windows によって ○○.exe でブレークポイントが発生しました。
ヒープが壊れていることが原因として考えられます。○○.exe または読み込まれた DLL にバグがあります。
あるいは、○○.exe がフォーカスを持っているときに、ユーザーが F12 キーを押したことが原因として考えられます。
可能であれば、出力ウィンドウに詳細な診断情報が表示されます。
HEAP[○○.exe]: Heap block at 0023EF50 modified at 0023EF5A past requested size of 2
0478デフォルトの名無しさん
2008/02/16(土) 16:13:00> Heap block at 0023EF50 modified at 0023EF5A past requested size of 2
0479デフォルトの名無しさん
2008/02/16(土) 16:19:160480デフォルトの名無しさん
2008/02/16(土) 16:26:070481デフォルトの名無しさん
2008/02/16(土) 16:43:58ありがとうございます。MojiBuf[MojiCount+1]='\0'だったw
弄ってたらいつの間にかエラーでるようになってしまったと思ってたらEdit_GetTextLength
で返ってくるのが文字数-1だと気づいて+2に変えたとき間違えて変えてしまってたみたい
しかも精神衛生的に'\0'入れるのはEdit_GetTextの後にやった方がいいよね
こんなのでずっと悩んでたなんて…
0482デフォルトの名無しさん
2008/02/16(土) 17:19:57というか、これでいいんじゃないのか?
MojiCount=Edit_GetTextLength(hEdit)+1;
hMem=GlobalAlloc(GHND,sizeof(char)*MojiCount);
MojiBuf=(char *)GlobalLock(hMem);
Edit_GetText(hEdit,MojiBuf,MojiCount);
GlobalUnlock(hMem);
GlobalFree(hMem);
0483デフォルトの名無しさん
2008/02/16(土) 17:53:50膝の上の同居人、っつーADVだったような。
というか、たるとといいミュウミュウといい、あのサイトの中の人はネコミミ属性のようだ。
普通の言語のテク紹介サイトだと思ってたら、何の前触れもなくたるととか出てきたから吹いたw
0484デフォルトの名無しさん
2008/02/16(土) 18:34:390485デフォルトの名無しさん
2008/02/16(土) 18:34:580486デフォルトの名無しさん
2008/02/16(土) 18:57:20俺は、それを流すんだが、その状況が可笑しくなってきちゃうんだがw
「あれー・・・、今なんか・・・。いや、勉強勉強!」っつってww
0487デフォルトの名無しさん
2008/02/16(土) 19:33:470488デフォルトの名無しさん
2008/02/16(土) 19:53:110489デフォルトの名無しさん
2008/02/16(土) 19:55:42日本語でおk
0490デフォルトの名無しさん
2008/02/16(土) 20:28:090491デフォルトの名無しさん
2008/02/16(土) 21:43:45誰かこれを日本語に翻訳してくれ
0494デフォルトの名無しさん
2008/02/17(日) 00:47:01俺は、
「kitty on your lap」
この言葉を見てもいつも気にせずスルーして次の文にいくんだが、
毎回やるこの自分の行動に可笑しくなってきちゃうんだww
0495デフォルトの名無しさん
2008/02/17(日) 02:09:22K&Rにも載ってないです。
interface ITaskScheduler
{
CONST_VTBL struct ITaskSchedulerVtbl *lpVtbl;
};
0496デフォルトの名無しさん
2008/02/17(日) 02:20:320497デフォルトの名無しさん
2008/02/17(日) 02:50:520498デフォルトの名無しさん
2008/02/17(日) 02:54:290499デフォルトの名無しさん
2008/02/17(日) 03:11:26( ・∀・)人(・∀・ )ナカーマ!!
0500デフォルトの名無しさん
2008/02/17(日) 03:38:290501デフォルトの名無しさん
2008/02/17(日) 04:34:13lpVtblとか第一引数とか&IID_〜とかめんどいしC++でスマートポインタ使わないとやってられん
0502デフォルトの名無しさん
2008/02/17(日) 04:49:190503デフォルトの名無しさん
2008/02/17(日) 05:19:020504デフォルトの名無しさん
2008/02/17(日) 05:36:470505デフォルトの名無しさん
2008/02/17(日) 05:38:210506デフォルトの名無しさん
2008/02/17(日) 05:41:48C++ から入った方がマシ。
0507デフォルトの名無しさん
2008/02/17(日) 10:21:40COMという言葉を前面に打ち出すようになったのはその頃からかもしれないけど、
技術的にはWindows 3.1までには出たはずのOLE2から始まったといっていいはず。。
0508デフォルトの名無しさん
2008/02/17(日) 12:41:310509デフォルトの名無しさん
2008/02/17(日) 12:43:260510デフォルトの名無しさん
2008/02/17(日) 12:48:130511デフォルトの名無しさん
2008/02/17(日) 13:12:06sprintf(s,"%d",GetLastError());
MessageBox(NULL, s , NULL , MB_OK );
GetLastErrorを確認するには上のような書き方ですか?
0512デフォルトの名無しさん
2008/02/17(日) 13:14:220513デフォルトの名無しさん
2008/02/17(日) 13:38:240514デフォルトの名無しさん
2008/02/17(日) 14:22:15wsprintf使え
0515デフォルトの名無しさん
2008/02/17(日) 14:23:250516デフォルトの名無しさん
2008/02/17(日) 14:33:37wsprintfってchar*使えなかったの?
0517デフォルトの名無しさん
2008/02/17(日) 14:42:480518デフォルトの名無しさん
2008/02/17(日) 14:58:530519デフォルトの名無しさん
2008/02/17(日) 15:49:38へぇ・・・
俺BCCだから関係ないや
0520デフォルトの名無しさん
2008/02/17(日) 15:51:37このスレだからやるんじゃないか
他所でやられるほうがウザい
0521デフォルトの名無しさん
2008/02/17(日) 15:56:37大して難しい話でもないだろ
charだと一文字1バイト、TCHARだと一文字2バイトってだけの話じゃないか
0522デフォルトの名無しさん
2008/02/17(日) 16:05:25BCCでも、Win32 APIを直接使うなら関係ある話だろ?
0523デフォルトの名無しさん
2008/02/17(日) 16:07:58なにいってんだ?
TCHARは1バイトかもしんないぞ。
0524デフォルトの名無しさん
2008/02/17(日) 16:16:390525デフォルトの名無しさん
2008/02/17(日) 16:17:200526デフォルトの名無しさん
2008/02/17(日) 16:23:400527デフォルトの名無しさん
2008/02/17(日) 16:37:35タイトルバー以外のところをドラッグしてウィンドウを動かすために、WM_NCHITTEST で、
return
DefWindowProc() == HTCLOSE ? HTCLOSE :
HTCAPTION;
ってやってるウィンドウで、ドラッグし終わったときを捉えたいのだけどどのイベントが飛んでくるのか判りません。
WM_LBUTTONUP と WM_NCLBUTTONUP かなーとか思って捕捉のためのイベントハンドラを作ったのだけど、
捕捉できず、Spy++ で何が飛んでくるのか確かめようと思ったらシステム全体が落ちてしまいます。
どなたか教えてください。
開発環境は VC2008EE + SDK + ATL/WTL で、VS2005proの include ディレクトリも include しています。
0528デフォルトの名無しさん
2008/02/17(日) 16:59:37WM_MOVEじゃダメ?
0529デフォルトの名無しさん
2008/02/17(日) 18:06:57どうしてか理由が分からないです。
error C2115: 'function' : 互換性のない型が含まれています。
warning C4024: 'CoCreateInstance' : の型が 1 の仮引数および実引数と異なります。
error C2115: 'function' : 互換性のない型が含まれています。
warning C4024: 'CoCreateInstance' : の型が 4 の仮引数および実引数と異なります。
となります。
#include <windows.h>
#include <mstask.h>
HRESULT hr
ITaskScheduler *pITS;
hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS);
どこかおかしいところがありますか?
0530デフォルトの名無しさん
2008/02/17(日) 18:07:36CoInitialize(NULL);
があります。忘れました><
0531デフォルトの名無しさん
2008/02/17(日) 18:08:130532デフォルトの名無しさん
2008/02/17(日) 18:08:50CとC++の違い
0533デフォルトの名無しさん
2008/02/17(日) 18:12:48まずは、REFCLSIDとREFIIDの定義確認。
0534デフォルトの名無しさん
2008/02/17(日) 18:19:00CTaskScheuler 用のヘッダファイルインクルードして無いじゃん。
0535デフォルトの名無しさん
2008/02/17(日) 18:28:46Spy++使わなくても自分のWndProcなんだから、どんなイベントが飛んでくるか分かるっしょ。
DebugConsoleに吐きまくれ。
0536デフォルトの名無しさん
2008/02/17(日) 18:59:340537デフォルトの名無しさん
2008/02/17(日) 20:51:080538527
2008/02/17(日) 21:49:19ところで、UINT uMsg の値から WM_〜 とかに変換してくれるライブラリとかありませんか?
変換がしんどかったのでw
0539デフォルトの名無しさん
2008/02/17(日) 21:59:550540デフォルトの名無しさん
2008/02/17(日) 22:03:550541デフォルトの名無しさん
2008/02/17(日) 22:05:530542デフォルトの名無しさん
2008/02/17(日) 22:13:080543デフォルトの名無しさん
2008/02/17(日) 22:15:160544デフォルトの名無しさん
2008/02/17(日) 22:37:500545デフォルトの名無しさん
2008/02/17(日) 22:40:28まだその話してたんかいw
0546デフォルトの名無しさん
2008/02/17(日) 23:36:410547デフォルトの名無しさん
2008/02/18(月) 00:16:11試してみたらほんとだった。
素直に感謝します。
0548デフォルトの名無しさん
2008/02/18(月) 00:21:23仮想リストビューである文字列と文字列が一致した場合、アイテムを削除する処理を作ろうと思ってます。
lvfi.flags = LVFI_STRING;
lvfi.psz = "ab";
int nItem = ListView_FindItem(cListView.hListReserve, -1, &lvfi);
ListView_DeleteItem(cListView.hListReserve, nItem);
現在、一致する場合もしない場合もnItemには0しか戻ってきません。
仮想リストビューでは、ListView_FindItemは使えないのでしょうか?
回答よろしくお願いします。
環境はVC.NET + SDKです
0549デフォルトの名無しさん
2008/02/18(月) 00:26:010550デフォルトの名無しさん
2008/02/18(月) 01:33:20CPU使用率が高いです Orz
どこが悪いのでしょうか?
0551デフォルトの名無しさん
2008/02/18(月) 01:46:250552デフォルトの名無しさん
2008/02/18(月) 07:49:23ループしてる場所にSleepを入れる
0553デフォルトの名無しさん
2008/02/18(月) 11:07:41CreateWindowExした直後にSetClipboardViewerするとウィンドウ無効で失敗するんだけどなんで?
もちろんCreateWindowExは成功してる
ちなみに
CreateWindowExとSetClipboardViewerの間にSendMessage(hWnd,WM_NULL,0,0);挟んだら動いた
MSDNにも何も書いてないんだけど…
ttp://msdn2.microsoft.com/en-us/library/ms649052.aspx
0554デフォルトの名無しさん
2008/02/18(月) 11:11:00UpdateWindowは?
0555デフォルトの名無しさん
2008/02/18(月) 12:23:230556デフォルトの名無しさん
2008/02/18(月) 13:29:54既にWM_CREATEからの応答も帰ってきた後。
0557デフォルトの名無しさん
2008/02/18(月) 13:36:57SendMessage挟んだら動いたのはたまたまかもなあ
0558デフォルトの名無しさん
2008/02/18(月) 13:49:16CreateWindowEx→WindowProc(WM_CREATE)→SetClipboardViewerになるからそれはない
WM_CREATE内でSetClipboardViewer呼んでるってんなら話は別だが
0559デフォルトの名無しさん
2008/02/18(月) 15:19:47ここ見る限りだとSetClipboardViewerの返値にSendMessageしてるみたいだけど。
ttp://msdn2.microsoft.com/en-us/library/ms649016.aspx
0560デフォルトの名無しさん
2008/02/18(月) 15:23:15TextOut等で描画する文字の下にドロップシャドウを描画したいのですが、何か良い方法はありますか?
やはり、自分でシャドウを作らないといけないでしょうか?
宜しくお願いします
0561デフォルトの名無しさん
2008/02/18(月) 15:25:260562デフォルトの名無しさん
2008/02/18(月) 15:27:470563デフォルトの名無しさん
2008/02/18(月) 16:12:500564デフォルトの名無しさん
2008/02/18(月) 16:48:01縁取り文字の一番気持ちいい実装ってどんなの?
8方向に1pxずつずらした白文字、最後にまんなかに黒文字ってやってるんだけど
ちょっと馬鹿っぽい。。
0565デフォルトの名無しさん
2008/02/18(月) 17:21:39>>562
>>563
それらを参考にもう一度調べてみますね
情報ありがとうございました
0566デフォルトの名無しさん
2008/02/18(月) 17:35:47BeginPath→DrawText→EndPath→PathToRegion→FrameRgn
0567デフォルトの名無しさん
2008/02/18(月) 20:01:370568デフォルトの名無しさん
2008/02/18(月) 21:44:41あらかじめ表示させたいフォントをビットマプとして保存しといて
BitBlt・・
あんま変なAPI使うと古いOSで動かなかったりするんで。
0569デフォルトの名無しさん
2008/02/18(月) 21:54:14さすがにXPより前はサポートしません
とかはないだろうけど
9x系とNT4.0はもういいかなとか個人的には思ってる
0570デフォルトの名無しさん
2008/02/18(月) 21:57:470571デフォルトの名無しさん
2008/02/18(月) 21:58:280572デフォルトの名無しさん
2008/02/18(月) 22:02:410573デフォルトの名無しさん
2008/02/18(月) 22:29:43なぜなら、俺の環境では2000が現役だから・・・
0574デフォルトの名無しさん
2008/02/18(月) 22:30:540575デフォルトの名無しさん
2008/02/18(月) 22:33:44IE4.01以上など各種アップデートを施したWindows 95/NT4ということにしている。
0576デフォルトの名無しさん
2008/02/18(月) 22:40:1398以前はネットに繋ぐなカス
0577デフォルトの名無しさん
2008/02/18(月) 22:42:100578デフォルトの名無しさん
2008/02/18(月) 22:53:08実測して差が出るかどうかはわからないけど、理屈の上では変換のコストがなくなるので若干良くなる
wchar_tにするとboostがイミフなエラー出したりすることもあるけど。。。
0579デフォルトの名無しさん
2008/02/18(月) 23:39:350580デフォルトの名無しさん
2008/02/19(火) 02:52:14VC6現役で使ってるが何か?
0581デフォルトの名無しさん
2008/02/19(火) 02:54:449x は切り捨て
0582デフォルトの名無しさん
2008/02/19(火) 03:01:39VC6探し出してインスコした。
これアカデミック版なんだよなー、歳は食いたくねぇ。
0583デフォルトの名無しさん
2008/02/19(火) 09:11:20しばらく前から検索すると503になるんだが、俺だけか?
左のツリーからは目的のページには行けるんだが、検索できないと面倒でしかたない。
0584デフォルトの名無しさん
2008/02/19(火) 10:31:57http://www7a.biglobe.ne.jp/~lshen/EternalWindows/Graphics/Bitmap/Bitmap14.html
ここのサイトのソースで
アンチエイリアスを施すフォントにFW_BOLDを指定すると、
このソースではlp[0] = (GetBValue(cr))で例外が発生して、
アプリケーションが落ちてしまいます
このソースに手を加えなければ正常に動く様です
どの辺りが悪いのでしょうか?
よろしくお願いします。
0585デフォルトの名無しさん
2008/02/19(火) 10:39:30を
CreateFont(32, 0, 0, 0, FW_BOLD,
にしたってこと?
落ちないけどなー
0586デフォルトの名無しさん
2008/02/19(火) 10:44:04GetDesktopWindowでハンドルとって
GetDCで デスクトップの画像 取得しているんですが
ログイン画面を取るときには たしかモニターの選択か
なにかしければならないんですよね?
昔何かで観て、必要になったんだけど
見つからない・・・・
よろしくお願いします
0587デフォルトの名無しさん
2008/02/19(火) 11:46:120588デフォルトの名無しさん
2008/02/19(火) 11:58:30ログイン画面撮るのは難しそうな気もするけど頑張って下さい
0589デフォルトの名無しさん
2008/02/19(火) 12:02:15スレ違いの回答だけど
ログイン画面のキャプチャが欲しいだけなら、VirtualPCとかでOS立ち上げれば良い
0590デフォルトの名無しさん
2008/02/19(火) 13:02:05はい、その通りです
落ちませんか...
もう一度、一から確認し直してみます
ありがとうございました
0591デフォルトの名無しさん
2008/02/19(火) 14:07:52どうすればよいでしょうか?
あと今表示されている一番上と一番下が何行目か知るには
どうすればよいでしょうか?
0592デフォルトの名無しさん
2008/02/19(火) 14:50:25XPまでならサービスで作っておけばできなくもない。
しかしVistaから実現は厳しくなった。
0593デフォルトの名無しさん
2008/02/19(火) 14:53:11カーソル位置は、EM_LINEFROMCHAR
表示のほうは、EM_CHARFROMPOS
とかでどうかなあ
0594デフォルトの名無しさん
2008/02/19(火) 14:55:060595デフォルトの名無しさん
2008/02/19(火) 17:20:22Explorerで表示されるアイコンと同じイメージを取得できる関数ってなんですか?
0596デフォルトの名無しさん
2008/02/19(火) 17:30:360597デフォルトの名無しさん
2008/02/19(火) 17:57:58EM_GETFIRSTVISIBLELINE等々
っていうか、ヘルプのEM_で始まるメッセージは全部チェックしる
0598デフォルトの名無しさん
2008/02/19(火) 21:52:56セッション0、か
0599デフォルトの名無しさん
2008/02/19(火) 22:00:33ttp://wisdom.sakura.ne.jp/system/winapi/win32/win13.html
ここのサンプルプログラムをVC++2005EEでコンパイルしてみたところ
MessageBoxを呼び出すところで
error C2065: 'LlpcsWnd' : 定義されていない識別子です
といわれコンパイルできません
どうも宣言した変数がlpcsWndなのにLlpcsWndと認識されてしまってるみたいです
ためしにTEXTマクロの中身以外のlpcsWndをLlpcsWndと修正してみたところ
コンパイルに成功し、実行できたのですがこんな修正をせずとも
コンパイルを成功させ実行させる方法とかはありませんか?
ひょっとしたらスレ違いかもしれませんがよろしくおねがいします
0600デフォルトの名無しさん
2008/02/19(火) 22:04:23>>463
0601デフォルトの名無しさん
2008/02/19(火) 22:05:50>TEXT(lpcsWnd->lpszName)
TEXT( ) いらないよそこ
0602デフォルトの名無しさん
2008/02/19(火) 22:06:12ShiftJIS でおk
ってかサイトの方が TEXT マクロの使い方を間違ってる
0603デフォルトの名無しさん
2008/02/19(火) 22:12:59早い返答ありがとうございます
TEXTマクロの使い方が間違っている・・・ですか
まずはネットで大まかにやった後本を買って足りないところを補おうと考えていたのですが
やっぱり一冊は買っておくべきですね・・・
0604デフォルトの名無しさん
2008/02/19(火) 22:29:540605デフォルトの名無しさん
2008/02/19(火) 22:52:140606デフォルトの名無しさん
2008/02/20(水) 03:12:040607デフォルトの名無しさん
2008/02/20(水) 03:12:59親ウインドウのハンドル(DialogBoxのhWndParentに渡したハンドル)を知るにはどうしたらいいですか?
GetParentとかGetAncestorとかGetWindowとか試したんですが、どれも違うようです。
0608デフォルトの名無しさん
2008/02/20(水) 03:27:440609デフォルトの名無しさん
2008/02/20(水) 10:01:25まあいくらなんでも、実際にコンパイル、実行してると思うわな
0610デフォルトの名無しさん
2008/02/20(水) 10:14:53徹夜明けで返事が遅れてしまいました
ヒント頂いてありがとうございます。
これからがんばってみます
0611デフォルトの名無しさん
2008/02/20(水) 10:47:09ttp://watch.impress.co.jp/game%2Fdocs/20070927/wv.htm
この記事おもいだした
0612デフォルトの名無しさん
2008/02/20(水) 12:25:40tchar の型によっては全く問題なくコンパイルできる
0613デフォルトの名無しさん
2008/02/20(水) 12:25:540614デフォルトの名無しさん
2008/02/20(水) 12:31:53あーそっか。
0615デフォルトの名無しさん
2008/02/20(水) 14:35:06どこのサンプルでも一行ずつチェックして確かめてるわ。
0616デフォルトの名無しさん
2008/02/20(水) 16:34:14プロポーショナルフォントも考慮した場合GetTextExtentPoint32()あたりで1文字ずつ
のばしていくしか方法無いかな?
要はテキストの折り返し処理をしたいんだけど、↑の方法だと行数が多いときに遅くなっちゃって。
0617デフォルトの名無しさん
2008/02/20(水) 16:43:260618デフォルトの名無しさん
2008/02/20(水) 16:45:520619デフォルトの名無しさん
2008/02/20(水) 16:48:16>ある文字列stringを描画したときに一定の幅にstringの何文字目まで収まるかを知りたいんだけど
DrawTextEx を DT_SINGLELINE で呼び出して、DRAWTEXTPARAMSのuiLengthDrawnを見る。
0620616
2008/02/20(水) 17:28:18つか、レス早すぎだろwその知識はうらやましいわ。
ホントありがとう。
0621デフォルトの名無しさん
2008/02/21(木) 01:07:55童貞シングルライフと読めて泣いた
0622デフォルトの名無しさん
2008/02/21(木) 01:23:10どんだけ煮詰まってるんだw
0623デフォルトの名無しさん
2008/02/21(木) 02:14:000624デフォルトの名無しさん
2008/02/21(木) 02:40:400625デフォルトの名無しさん
2008/02/21(木) 03:06:500626デフォルトの名無しさん
2008/02/21(木) 03:08:480627デフォルトの名無しさん
2008/02/21(木) 03:09:14ゴバクが通りますよ
0628デフォルトの名無しさん
2008/02/21(木) 03:10:510629デフォルトの名無しさん
2008/02/21(木) 06:02:160630デフォルトの名無しさん
2008/02/21(木) 07:41:00解りやすく教えてください。
コレを使うと複数プロセスでのメモリアクセスの競合を保護できる?
らしいのですが、イマイチ解りません。
0631デフォルトの名無しさん
2008/02/21(木) 09:30:31「同期オブジェクト」の仕組みを理解していないと伝わらないし、理解すれば解かるような……
使い方もメリットもここに書いてある。
短時間でできる汎用の同期オブジェクト
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdndllpro/htm/metrsect.asp
読むのは、「アトミック」、「スピンロック」、「デッドロック」、この3つの意味を正しく理解してから。
一度読んで終わらず何度も読めば良いと思うよ。
仕様を読んだうえでイマイチ解からないところを「ここは何故」と聞きに来ればいい。
同期オブジェクトの解説サイトは沢山あるから検索してみ。
0632デフォルトの名無しさん
2008/02/21(木) 09:33:38使い方・・・ねぇ
例えば LONG 変数があったとして、
LONG x;
この値を普通に操作すると、スレッド間で競合が起きるだろ?
BOOL Lock() {
if (x == 0) { x = 1; return true; }
else { return false; }
}
void Unlock() {
x = 0;
}
InterlockedExchangeを使えば、そういった問題は起きない
BOOL Lock() {
if (InterlockedExchange(&x, 1) == 0) { return true; }
else { return false; }
}
void Unlock() {
InterlockedExchange(&x, 0);
}
こんな例でわかるかなぁ・・・
0633デフォルトの名無しさん
2008/02/21(木) 09:37:04もし同期オブジェクトの解説サイトを読むときは、
日経BP(ITPRO)の解説の一部は人に薦めるようなものではないので
参考にする場合は気をつけて。
0634デフォルトの名無しさん
2008/02/21(木) 11:57:19Interlocked系は同期オブジェクトじゃないだろ……
0635デフォルトの名無しさん
2008/02/21(木) 15:17:25極端な例をいえば、1つのHDCの上半分・下半分を2スレッドでSetPixel()していくなど。
HDCへの描画は領域が被らない場合にスレッドセーフか?といったほうがいいのかな。
0636デフォルトの名無しさん
2008/02/21(木) 15:23:410637デフォルトの名無しさん
2008/02/21(木) 16:34:47どのような関数を使えばよいのでしょうか?
CreateCompatibleDC(NULL)で作成したものだと、
GetDeviceCaps(LOGPIXELSX)の値はモニタのDPI値のままになってしまいます。
0638デフォルトの名無しさん
2008/02/21(木) 16:48:05常に同じファイルを参照できる方法を探しています.
FATをあきらめてNTFSに限定すれば
GetFileInformationByHandle()の戻り値のBY_HANDLE_FILE_INFORMATIONに含まれる
nFileIndexHighとnFileIndexLow(とdwVolumeSerialNumber)が
ファイルのIDとして使えるようです.
しかし,逆にこれらの情報をもとにファイルを取得する方法がわかりません.
どなたかご教示お願いします.
0639デフォルトの名無しさん
2008/02/21(木) 17:14:33Requires Windows Vista. って書いてあるなぁ
http://msdn2.microsoft.com/en-us/library/aa365432(VS.85).aspx
Win32 FileID API Library っての使えばXPでも使えるようになるのかな
よくわからん
0640デフォルトの名無しさん
2008/02/21(木) 17:31:120641デフォルトの名無しさん
2008/02/21(木) 19:34:30それって、例えばc:\abc.binを上書きするのに
c:\abc.tmpを作成→c:\abc.binを削除→abc.tmpをabc.binにリネーム
とかやるソフトだとファイルIDが変わると思うけど
0642デフォルトの名無しさん
2008/02/21(木) 21:43:42http://www.atmarkit.co.jp/fwin2k/keyword/linktracking/linktracking.html
0643デフォルトの名無しさん
2008/02/22(金) 02:20:04Resolve()とかいうメソッドがあったような
0644デフォルトの名無しさん
2008/02/22(金) 04:11:410645デフォルトの名無しさん
2008/02/22(金) 09:37:07フォントの言語によってサンプルの文字列を変更しようと思います。
日本語フォントなら日本語の文章を、欧文フォントなら英語の文字列といった具合です。
そのフォントのデフォルトの言語のようなものを得るにはどうしたらよいですか?
0646デフォルトの名無しさん
2008/02/22(金) 12:37:34SendMessage(ハンドル名, EM_LINEFROMCHAR, -1, 0);
この使い方であってますか?
なぜか数字が合わないです。
0647デフォルトの名無しさん
2008/02/22(金) 12:49:240648デフォルトの名無しさん
2008/02/22(金) 13:53:03最初の行は0だからな。
0649デフォルトの名無しさん
2008/02/22(金) 14:42:59申し訳ないです。
自分のミスです^^;
すいません、もうひとつ質問なんですが、
SetScrollInfoをつかってウインドウにスクロールバーを設置していますが
ウインドウにツールバーが重なっていてるのですがスクロールバーの幅
を調節する方法はあるのでしょうか?
0650649
2008/02/22(金) 14:46:03ウインドウにツールバーとスクロールバーを設置しています。
ところがツールバーの上にスクロールバーが重なっています。
スクロールバーの幅を調節する方法はあるのでしょうか?
0651デフォルトの名無しさん
2008/02/22(金) 14:56:46ツールバーもエディットボックスもメインウィンドウの子なんでしょ?
エディットを親にしてスクロールバー作れば重ならないはず
0652デフォルトの名無しさん
2008/02/22(金) 14:56:470653デフォルトの名無しさん
2008/02/22(金) 17:49:39つ �I これやるよ。
0654デフォルトの名無しさん
2008/02/23(土) 01:18:09申し訳ないです。 ^^;
ウインドウに段数をペイントで書いていまして、
ウインドウに書かれた段数の横にエディットコントロール
を貼り付けています。そしてウインドウのスクロールバー
でエディットコントロールのスクロールを連動させています。
>>652
子ウインドウにエディットコントロールは貼り付けられますか?
0655デフォルトの名無しさん
2008/02/23(土) 20:00:44て、印刷しますがこのファイルを解析して、実際に紙に印刷される意味
のあるデータを取得すると言う事は出来るのでしょうか?
RAWに関しては、解析して意味のあるデータを取得した事はありますが、
EMFに関しては良く分かりません。Windows XPの環境です。初心者です
が、宜しくお願いします。
0656デフォルトの名無しさん
2008/02/23(土) 20:25:07これかなたぶん?
http://msdn2.microsoft.com/en-us/library/ms534514(VS.85).aspx
0657デフォルトの名無しさん
2008/02/23(土) 20:57:42何か仕様変更等あったのでしょうか。
0658デフォルトの名無しさん
2008/02/23(土) 20:58:330659デフォルトの名無しさん
2008/02/23(土) 21:32:15DragAcceptFiles(::GetDlgItem(hWnd, IDC_EDIT1), TRUE);
とやってもWM_DROPFILESのメッセージが拾えないです。
リストボックスに同様なものをしたら拾えたのですが
EDITは特殊なのですか?
0660デフォルトの名無しさん
2008/02/23(土) 22:11:35エディットボックス
(というより自分自身がウィンドウプロシージャを握っていないウィンドウ)
のメッセージを受け取ろうとしているのだから、サブクラス化しないと。
0661デフォルトの名無しさん
2008/02/23(土) 22:53:060662デフォルトの名無しさん
2008/02/23(土) 23:11:47>>658
0663デフォルトの名無しさん
2008/02/24(日) 00:30:42レスサンクス
調べてみる
0664デフォルトの名無しさん
2008/02/24(日) 01:23:34GetModuleFileName()を使って、パスを取得する処理を入れているのですが、
起動時にこの関数でエラーになってしまいます。
で、GetLastError()を使うとエラーコードは24とのこと。
エラーコード24は「プログラムがコマンドを発行しましたが、コマンドの長さが正しくありません。」らしいのですが、
これは何が理由でエラーとなっているのでしょうか。。
0665デフォルトの名無しさん
2008/02/24(日) 01:30:160666デフォルトの名無しさん
2008/02/24(日) 01:48:070667666
2008/02/24(日) 01:50:32INIとか設定ファイルなんかに持たせるとか
そういうのでいいんでね?
0668664
2008/02/24(日) 01:53:59もちろん自分のコードを疑っているんですが、
その取っ掛かりが欲しくて。
このエラーコードの意味やどういった時に起こるものなのかがわかれば、
どこから目を付ければいいかわかるかなと思ったんですが。
>>666
すみません。
プロセスにマップという意味がよくわかっていませんが、
要は、自exeファイルがあるパスを取得するには、
ただ単にGetModuleFileName()を呼び出すだけではダメだ、ということでしょうか?
0669664
2008/02/24(日) 02:20:23ありがとうございます。
いま作ってるのが常駐するやつでして、
GetCurrentDirectory()もやってみたのですが、
常駐アプリの場合だと、C:\Document and Settings\[User Name]\
が返るみたいでした。
0670デフォルトの名無しさん
2008/02/24(日) 02:38:56おいおいGetCurrentDirectoryとか嘘を教えるなよ
カレントディレクトリ≠exeのディレクトリだと誤作動するアプリの元凶だろ
>>669
GetModuleFileName→(PathRemoveFileSpec)→PathAppend
0671デフォルトの名無しさん
2008/02/24(日) 02:44:31どうなるかは試してみた?。
GetModuleFileName の使い方に問題がなければ
アクセス権や MAX_PATH とかの問題じゃない?
0672デフォルトの名無しさん
2008/02/24(日) 02:48:100673デフォルトの名無しさん
2008/02/24(日) 08:33:51その程度の検索も出来ないような奴はプログラマには向いてない
0674デフォルトの名無しさん
2008/02/24(日) 09:00:40PathAppend とかぐぐってどうすんの。
0675デフォルトの名無しさん
2008/02/24(日) 09:02:39戻り値
関数が正常に終了した場合は、 バッファにコピーされた文字列の文字数を返します。
それ以外の場合は、 0を返します。拡張エラー情報を取得するには、 GetLastError関数を使います。
0676デフォルトの名無しさん
2008/02/24(日) 09:08:570677デフォルトの名無しさん
2008/02/24(日) 09:19:440678デフォルトの名無しさん
2008/02/24(日) 09:22:54#include<stdio.h>
int main(void){
char filename[_MAX_PATH];
GetModuleFileName(NULL, filename, sizeof(filename));
printf("%.*s\n", sizeof(filename), filename);
return 0;
}
>>676 何故自分で貼らない?質問者か?
>>675 で分からないなら MSDN ダウンロードしなよ 無料だから
0679デフォルトの名無しさん
2008/02/24(日) 09:25:35エラーを再現できる最小限のコードを出せってな。
0680デフォルトの名無しさん
2008/02/24(日) 09:30:44解決方法は、もちろん示されたAPIをググってコード見直せばOKなんだ
エラー原因もそれで解決するはずなんだが、それができないのなら晒したら? という話
0681デフォルトの名無しさん
2008/02/24(日) 09:39:43今時こんなコード書く糞プログラマは偉そうな事言えんぞw
0682デフォルトの名無しさん
2008/02/24(日) 09:58:060683デフォルトの名無しさん
2008/02/24(日) 10:06:58そんなヘドロみたいなコード貼るな
0684デフォルトの名無しさん
2008/02/24(日) 10:26:50横レスですまないが、素人目にはどこが悪いかわからない。
sizeof(filename)/sizeof(char)としないとUNICODEビルドで問題が出るのかな。
0685デフォルトの名無しさん
2008/02/24(日) 10:35:550686デフォルトの名無しさん
2008/02/24(日) 10:43:13処理→ファイルを消す。ってやってるんだけど、ファイルとして保存しなくても
直接ネット上から読み込む。みたいなスマートな方法ってありませんか?
0687デフォルトの名無しさん
2008/02/24(日) 10:46:490688デフォルトの名無しさん
2008/02/24(日) 10:49:030689デフォルトの名無しさん
2008/02/24(日) 11:18:04ありがとう。調べてみたら何となく分かった
0690デフォルトの名無しさん
2008/02/24(日) 13:52:58#include<windows.h>
#include<stdio.h>
#include<wchar.h>
#include<tchar.h>
#define NITEM(arr) (sizeof(arr)/sizeof(arr[0]))
int _tmain(void){
TCHAR filename[_MAX_PATH];
GetModuleFileName(NULL, filename, NITEM(filename));
_tprintf(TEXT("%.*s\n"), NITEM(filename), filename);
return 0;
}
0691デフォルトの名無しさん
2008/02/24(日) 14:11:01と書こうとヘッダ見てたら、いつの間にかRTL_NUMBER_OF_V2が増えてる。
こっちはC++専用ながら、ポインタだとコンパイル通らないのか。
0692デフォルトの名無しさん
2008/02/24(日) 14:26:20どういう経緯で作られたの? まったく更新されてないようだけど
0693デフォルトの名無しさん
2008/02/24(日) 14:31:530694デフォルトの名無しさん
2008/02/24(日) 15:02:08更新されてないどころか内容も無いし次からテンプレから消してもいいかもな
0695デフォルトの名無しさん
2008/02/24(日) 15:50:16まだまだ叩かれる余地がある。
ttp://msdn2.microsoft.com/en-us/library/ms683197.aspx
まず、2k/XPでは、ファイルパスがMAX_PATHより長かった場合、NULL終端されない。
MAX__PATHより長かった場合、\\?\を使った長いファイルパスを返す。
したがって、filename配列は32000ぐらい確保すれば安全だ。
あと、NTIMEなんていう汚いマクロ使うな。
0696デフォルトの名無しさん
2008/02/24(日) 15:56:29>the string is truncated to nSize characters including the terminating null character.
「null 文字も含め nSize 文字分に切り捨てる」でしょ?
0697デフォルトの名無しさん
2008/02/24(日) 16:04:58is not null terminated.
~~~~~~~~~~~~~~~~~~~~
0698デフォルトの名無しさん
2008/02/24(日) 16:11:250699デフォルトの名無しさん
2008/02/24(日) 16:20:22身も蓋もないとはまさにこのこと(w
0700デフォルトの名無しさん
2008/02/24(日) 16:22:520701デフォルトの名無しさん
2008/02/24(日) 16:45:36こういうどうでもいいとこをグチグチ言ってくる奴多杉
0702デフォルトの名無しさん
2008/02/24(日) 16:51:39特定の状況でまともに動かないからレスがついてんだろうが
0703デフォルトの名無しさん
2008/02/24(日) 16:51:54お前みたいな思想を持つ奴が、Windowsのバージョンアップ程度で、動かなくなる糞コードを書く。
0704デフォルトの名無しさん
2008/02/24(日) 16:56:12ちょっとレベルの高い話になると何も答えられないんだよな。
0705デフォルトの名無しさん
2008/02/24(日) 16:58:26どうやって起動すればいいですか!?
0706デフォルトの名無しさん
2008/02/24(日) 17:36:170707デフォルトの名無しさん
2008/02/24(日) 18:09:00指定されたデバイス、パス、またはファイルにアクセスできません。
アクセス許可がない可能性があります。
0708デフォルトの名無しさん
2008/02/24(日) 18:33:010709デフォルトの名無しさん
2008/02/24(日) 18:56:06たまに思い出したかったんだろう
0710デフォルトの名無しさん
2008/02/24(日) 18:58:24ドライブ C のボリューム ラベルがありません。
C:\ のディレクトリ
2008-01-21 22:09 130,765 NUL
2008-02-03 07:45 53,248 nul.exe
0711デフォルトの名無しさん
2008/02/24(日) 19:02:56>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」
・・・w
0712デフォルトの名無しさん
2008/02/24(日) 19:07:59| ∧ ∧
|/ ヽ ./ .∧
| `、 / ∧
|  ̄ ̄ ̄ ヽ
| ̄ ̄ ̄月曜日 ̄ ̄ ̄)
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.\ 煽りはいらない
|ヽ-=・=-′ ヽ-=・=- / ただ私に絶望したまえ
|:: \___/ /
|::::::: \/ /
0713デフォルトの名無しさん
2008/02/24(日) 19:27:46むしろ動けばいいって言う前提で書いてるからなんだろうがw
そういう奴は個人でソースを管理する趣味グラマーでいてくれ
0714デフォルトの名無しさん
2008/02/24(日) 19:49:09と趣味グラマーが申しております
0715デフォルトの名無しさん
2008/02/24(日) 19:52:380716デフォルトの名無しさん
2008/02/24(日) 19:54:25仕様通り動かない、そもそも仕様自体が二転三転するとかだと楽し過ぎるからな。
0717デフォルトの名無しさん
2008/02/24(日) 20:21:51音を消すことはできますか?
もしくは、MessageBoxに似た音の出ないapiはありますか?
0718664
2008/02/24(日) 20:30:38変な質問をしてすみませんでした。
>>676で言われているように、
最小コードを作ったのですが、なぜかこちらではエラーが発生せず、
質問しようにも出来ない状態です。
自分で少しずつ調査して行こうと思います。
お騒がせしてしまって申し訳ありませんでした。
MUI化していないときはエラーになっていなかったので、
とりあえずはMUIあたりから調べてみます。
ありがとうございました。
0719デフォルトの名無しさん
2008/02/24(日) 20:55:24MessageBoxのようなダイアログボックスを作るしか無いんじゃないの?
たまーにMB_NOSOUNDとか欲しくなるんだけどね・・・
0720デフォルトの名無しさん
2008/02/24(日) 21:01:23ありがとう
0721デフォルトの名無しさん
2008/02/24(日) 22:53:35>>690のコードをプロレベルのコードに修正お願いします。
0722デフォルトの名無しさん
2008/02/24(日) 23:12:30そのコードを正しく直してから批判しな?
0723デフォルトの名無しさん
2008/02/24(日) 23:28:42>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」
>>722 「正しく直してから批判しな」
0724デフォルトの名無しさん
2008/02/24(日) 23:32:470725デフォルトの名無しさん
2008/02/24(日) 23:32:480726デフォルトの名無しさん
2008/02/24(日) 23:35:06#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#define CHECK(b) if(b); else goto ERROR
int _tmain(void) {
int exit_status = EXIT_FAILURE;
LPTSTR filename = NULL;
DWORD len;
TCHAR dummy;
len = GetModuleFileName(NULL, &dummy, 1);
CHECK(len != 0);
filename = malloc((len + 1) * sizeof (TCHAR));
CHECK(filename != NULL);
len = GetModuleFileName(NULL, filename, len + 1);
CHECK(len == 0);
_tprintf(_T("%.*s\n"), len, filename);
exit_status = EXIT_SUCCESS;
ERROR:
free(filename);
return exit_status;
}
0727デフォルトの名無しさん
2008/02/24(日) 23:35:45そういうのって C++ のグローバルオブジェクトのコンストラクタから
正しく使えるんだろうか。
もっとも、GetModuleFileName も正しく使えるかどうか。
0728デフォルトの名無しさん
2008/02/24(日) 23:56:18> CHECK(len == 0);
これは拙く内海?
0729デフォルトの名無しさん
2008/02/24(日) 23:59:040 の時は 「失敗」 なのか。
0730デフォルトの名無しさん
2008/02/25(月) 00:21:32> len = GetModuleFileName(NULL, &dummy, 1);
で成功すればlen=1だから
> filename = malloc((len + 1) * sizeof (TCHAR));
filenameのバッファが全然足らねーだろ
つーかcalloc使えよ
相変わらず屑コード全開だな
0731デフォルトの名無しさん
2008/02/25(月) 01:00:240732デフォルトの名無しさん
2008/02/25(月) 01:01:020733デフォルトの名無しさん
2008/02/25(月) 01:06:13>>690 書き直してもやっぱり屑コード
>>701 「動けばいいじゃん」
>>722 「正しく直してから批判しな」
>>726 屑コードどころかバグありコード晒して恥の上塗り
>>732 「なんでcalloc使わないといけないんだ?w」
07341 ◆GqrOSDYjeQ
2008/02/25(月) 01:11:01#define CHECK(b) if(b); else goto ERROR
このコードは個人的に盗ませてもらうかもしれない
いいもん見せてもらったw
0735デフォルトの名無しさん
2008/02/25(月) 01:20:11違うよな?な?でないとおかしいもんな
0736デフォルトの名無しさん
2008/02/25(月) 01:25:48違うよな?な?でないとおかしいもんな
0737731
2008/02/25(月) 01:27:050738デフォルトの名無しさん
2008/02/25(月) 01:28:46LPTSTR name = NULL, newptr;
DWORD len = 32, rlen;
do {
rlen = 0;
len *= 2;
if ( (newptr = (LPTSTR)realloc(name, len * sizeof(TCHAR))) == NULL ) break;
name = newptr;
} while ( (rlen = GetModuleFileName(NULL, name, len)) == len );
if ( rlen ) _putts(name);
free(name);
始め、GetLastErrorを使った切り捨てチェックで実装しようとして気付いたのだが、
SDK for WindowsVista 付属のドキュメントで、
GetModuleFileNameがバッファが小さくて切り捨てした時、
ERROR_INSUFFICIENT_BUFFERがセットされる、とあるけどこれ嘘だな。
いつからか誤った記述が紛れ込んだ予感。
0739デフォルトの名無しさん
2008/02/25(月) 01:32:220740デフォルトの名無しさん
2008/02/25(月) 01:36:18DWORD len = MAX_PATH, rlen; の方がrealloc呼ばれる回数が減っていいかも
0741デフォルトの名無しさん
2008/02/25(月) 01:36:49そんな風に思っていた時期が…
無い
0742738
2008/02/25(月) 02:06:26随時追加を実装する時のコードだ、これは。
free(name);
if ( (name = (LPTSTR)malloc(len * sizeof(TCHAR))) == NULL ) break;
これでいいや。
0743デフォルトの名無しさん
2008/02/25(月) 02:27:330744デフォルトの名無しさん
2008/02/25(月) 03:15:59それで取得できないような糞長いディレクトリを使うような池沼は無視して問題ない。
0745デフォルトの名無しさん
2008/02/25(月) 04:31:53無駄な作業だもんw
0746デフォルトの名無しさん
2008/02/25(月) 05:00:570747デフォルトの名無しさん
2008/02/25(月) 05:06:540748デフォルトの名無しさん
2008/02/25(月) 07:41:48バッファが足りないときは nSize がそのまま返ってきて
ERROR_INSUFFICIENT_BUFFER エラーになるだけなのか。
あんま斜め読みして横レスするもんじゃないな。
0749デフォルトの名無しさん
2008/02/25(月) 07:45:05東証のシステムが止まったりするんだよな。
0750デフォルトの名無しさん
2008/02/25(月) 08:04:45Microsoft自体がそうだけどな。
Path系APIがMAX_PATHを超えるパスを正しく処理できない、とか。
0751デフォルトの名無しさん
2008/02/25(月) 08:12:570752デフォルトの名無しさん
2008/02/25(月) 08:50:500753デフォルトの名無しさん
2008/02/25(月) 09:30:24モーダルダイアログボックスで、キャプションバー付き、システムメニュー&最小化ボタン等付き、オーバーラップスタイルで作成しています。
タイトルは開発環境のダイアログプロパティで指定して、メニューも同様です。
普通のウィンドウって左上にアイコンがでますよね?
ダイアログボックスでも普通はアイコンが表示されるんですが、メニューをダイアログボックスに指定する(追加する?)と
このアイコンが表示されなくなってしまうんですが、どうしたらいいでしょうか
メニューバーを付けないと、アイコンは表示されるんですが・・
一応リソースの中身はこういう風になっています。
IDD_DIALOG1 DIALOGEX 32, 32, 155, 81
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU
CAPTION "タイトル"
MENU IDR_MENU1
FONT 9, "MS Pゴシック"
0754デフォルトの名無しさん
2008/02/25(月) 10:19:12フォルダ内のファイルを全て開きたいんですが
0755デフォルトの名無しさん
2008/02/25(月) 10:26:52FindNextFile
0756デフォルトの名無しさん
2008/02/25(月) 10:28:280757デフォルトの名無しさん
2008/02/25(月) 10:48:100758デフォルトの名無しさん
2008/02/25(月) 12:01:42頑張って長いパスのファイル・フォルダ作ろうとしたが、そこらへんの壁越えれなった
0759デフォルトの名無しさん
2008/02/25(月) 15:34:45(VC++2005以降だが2003でも定義コピペすれば使える)
0760デフォルトの名無しさん
2008/02/25(月) 18:43:09C89に入れてくれればそれで統一できて良かったのに……。
C99でも遅くない。次の改訂でも遅くないから。
C++だとboost::sizeがあるけど、配列に対してはstd::size_tを返すから、
Win32 APIでは少し使いづらい。定数式が必要なときも使えないし。
0761デフォルトの名無しさん
2008/02/25(月) 22:45:14C++にはSTLがあるという話をするなら分からんでもないが
標準ライブラリでないboost前提で平然と話を進めるあたり流石としか言えない
0762デフォルトの名無しさん
2008/02/25(月) 22:59:440763デフォルトの名無しさん
2008/02/26(火) 01:20:15WS_TABSTOPを記述してもtabでのコントロール間でのフォーカス遷移がそのコントロールでとまってしまいます。
ES_MULTILINEをスタイルに設定したEDITコントロールでもWS_TABSTOPが使えるようにするにはどうすれば良いですか?
0764デフォルトの名無しさん
2008/02/26(火) 01:39:180765デフォルトの名無しさん
2008/02/26(火) 05:48:030766デフォルトの名無しさん
2008/02/26(火) 07:10:14WM_GETDLGCODEの戻り値を
サブクラス化して弄ってやればいいような気がする。
タブが入力できなくなるかもしれんが、それは知らん。
0767デフォルトの名無しさん
2008/02/26(火) 14:55:53を指定してもlpBufに何も返ってきてくれません
やっぱりHttpOpenRequestの3個目の引数が間違ってるんでしょうか?
index.htmlや./、../など色々試してみても変らずだったんですが
http://www.google.co.jp/みたいに/の後に何も無い場合って何を入れればいいですか?
//ソース
hInet=InternetOpen(szClassName,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
if(!hInet)return -1;
hConn=InternetConnect(hInet,"www.google.co.jp",INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
if(!hConn){
InternetCloseHandle(hInet);
return -1;
}
hReq=HttpOpenRequest(hConn,"GET","/",NULL,NULL,NULL,0,NULL);
if(!hReq){
InternetCloseHandle(hConn);
InternetCloseHandle(hInet);
return -1;
}
if(!HttpSendRequest(hReq,NULL,0,NULL,0)){
InternetCloseHandle(hReq);
InternetCloseHandle(hConn);
InternetCloseHandle(hInet);
}
HttpQueryInfo(hReq,HTTP_QUERY_CONTENT_LENGTH,lpBufSize,&dwSize,NULL);
※lpBufSizeに何も入らない…
0768デフォルトの名無しさん
2008/02/26(火) 14:58:530769デフォルトの名無しさん
2008/02/26(火) 15:50:39googleはindex.html
http://www.google.co.jp/index.html = http://www.google.co.jp/
0770デフォルトの名無しさん
2008/02/26(火) 16:02:39(index.html, index.htm, default.html, index.asp, ...)
0771デフォルトの名無しさん
2008/02/26(火) 16:04:49RegisterHotKeyでホットキーを使いたいと思うんですが、
NumLockを外した状態のテンキー(カーソルやらHomeやらEndやらとして動作する)
をホットキーとして利用したいんです。
ところがホットキーの仕様ではいわゆる普通のカーソルキーとテンキー部分との区別が無いので、
どっちのキーを押してもホットキーとして反応してしまいます。
テンキー部分のみをホットキーとして利用できるようなカラクリをこしらえられませんかね。
WM_KEYDOWNとかならExtendedKeyか否かで両者を区別できるんだけどな。
やっぱHookしか無いですかね。
0772デフォルトの名無しさん
2008/02/26(火) 16:29:15解釈ってーかリダイレクトされるな多くの場合は。
0773デフォルトの名無しさん
2008/02/26(火) 17:00:23ありがとうございます。とりあえず3番目の因数は/でいいんですね
それでも何も入らないのはヘッダに情報が無いからなのかな
調べてたらInternetQueryDataAvailableでサイズ調べれることを知ったのでこれ
を使って確保することにします
0774デフォルトの名無しさん
2008/02/26(火) 17:03:090775デフォルトの名無しさん
2008/02/26(火) 20:02:33とりあえずは諦めて読み込めない時は5000000確保することにしました
それでこんな風に書いてみたんですが、yahooやgoogleでは途中までしかダウンロード
されないんですが何故ですか?
ずっとブレークポイントで止めたりググたりして調べてるんだけど分からなくて発狂しそうです
とりあえずエラーチェック無しで書いてみてます
if(lpBufSize[0]=='\0')lstrcpy(lpBufSize,"5000000");
BufSize=(atol(lpBufSize))+1;
lpszBuf=(char *)GlobalAlloc(GMEM_FIXED,sizeof(char)*BufSize);
memset(lpszBuf,0x00,sizeof(char)*BufSize);
char *Buf=lpszBuf;
while(1){
InternetReadFile(hReq,Buf,BufSize,&dwSize);
Buf+=dwSize;
if(dwSize == 0)break;
}
0776デフォルトの名無しさん
2008/02/26(火) 20:35:230777デフォルトの名無しさん
2008/02/26(火) 20:36:00>To ensure all data is retrieved, an application must continue
>to call the InternetReadFile function until the function
>returns TRUE and the lpdwNumberOfBytesRead parameter equals zero.
0778デフォルトの名無しさん
2008/02/26(火) 21:33:00ありがとう。ループ1回目はエラー無しで2回目からエラーコードERROR_INVALID_PARAMETERがでて
調べると「パラメータが間違ってる」らしいけど何が間違ってるのかわからない…
現在のソースは>>767に>>775をくっつけてる状態です
>>777
完全にダウンロードするには、dwSizeが0かつ関数がTRUEを返すまでループさせないと
いけないってこと?
でもそれだと永遠ループしてしまう
0779デフォルトの名無しさん
2008/02/26(火) 21:35:22要するにBufSizeもちゃんと減らせと。
0780デフォルトの名無しさん
2008/02/26(火) 21:41:32ありがとう。そういうことっぽかったです
試しにInternetReadFileの3つ目の引数を1にしてみたらいけました。
ただこれだと効率悪そうなのでまた今度ちゃんと考えて計算してみます
インターネットに繋げるのに6時間以上かかってしまったけど上手くいってよかった
0781デフォルトの名無しさん
2008/02/26(火) 21:53:13「因数」のことか?代わりに突っ込んどくか。
引数(ひきすう)が正しい。
0782デフォルトの名無しさん
2008/02/26(火) 22:20:34BufSize=(atol(lpBufSize))+1;
とか
lpszBuf=(char *)GlobalAlloc(GMEM_FIXED,sizeof(char)*BufSize);
memset(lpszBuf,0x00,sizeof(char)*BufSize);
とか突っ込みどころ満載だな
0783デフォルトの名無しさん
2008/02/26(火) 22:36:560784デフォルトの名無しさん
2008/02/26(火) 22:50:34どう直すと良くなる?
0785デフォルトの名無しさん
2008/02/26(火) 22:52:300786デフォルトの名無しさん
2008/02/26(火) 22:52:31HeapAllocのがよろしいと思うんだけどね 0梅とかシングルスレッド用オプションとか多機能だし
0787デフォルトの名無しさん
2008/02/26(火) 22:58:160788デフォルトの名無しさん
2008/02/26(火) 23:01:08初めから整数型にしておけよ。特に関数の引数なら尚更。
0789デフォルトの名無しさん
2008/02/26(火) 23:05:120790デフォルトの名無しさん
2008/02/26(火) 23:06:540791デフォルトの名無しさん
2008/02/26(火) 23:07:03malloc/callocやnew使ったほうがデバッグビルドでメモリリーク検出できるし
0792デフォルトの名無しさん
2008/02/26(火) 23:08:470793デフォルトの名無しさん
2008/02/26(火) 23:11:290794デフォルトの名無しさん
2008/02/26(火) 23:12:04なんてこったいwww
0795デフォルトの名無しさん
2008/02/26(火) 23:21:44という読み方が気にならないならおk
0796デフォルトの名無しさん
2008/02/26(火) 23:25:480797デフォルトの名無しさん
2008/02/26(火) 23:27:300798デフォルトの名無しさん
2008/02/26(火) 23:31:420799デフォルトの名無しさん
2008/02/26(火) 23:32:060800デフォルトの名無しさん
2008/02/27(水) 00:41:28とか
0801デフォルトの名無しさん
2008/02/27(水) 05:31:21断片化が著しいですが、固定サイズに設定した時のWindowsの
ページファイル(意味伝わるでしょうか?)の様に、
ディスクの物理的な、ある領域区画だけしか使わないようにファイルを
更新する方法ってないでしょうか?
デバイスドライバを書かないとだめでしょうか?
0802デフォルトの名無しさん
2008/02/27(水) 07:02:080803デフォルトの名無しさん
2008/02/27(水) 07:08:16FDISKで小さい区画を作ってそこだけ使わせればいいじゃん
0804デフォルトの名無しさん
2008/02/27(水) 12:48:39プロシージャにはなんていうメッセージが送られるんでしょうか?
0805デフォルトの名無しさん
2008/02/27(水) 13:05:330806デフォルトの名無しさん
2008/02/27(水) 13:16:29クリップボードへのコピーが発生したとき、
それが自分のプロセスからかどうかを調べる
一般的な方法ってあるのでのしょうか?
お願いします。
0807デフォルトの名無しさん
2008/02/27(水) 16:06:08プロセスまではわかんなかった気が
SetClipboardData見てれば
0808卍凹
2008/02/27(水) 18:01:52ただいまゲーム作成中なのですが他のPCで実行したらバグが起こりました
環境
OS XP home
開発環境 VS 2005
Win32API
C言語で作成
何を書いていいかわからないのでほかいってくれればすぐに書きます
バグは自分の開発しているPCと他の自分のPCは実行できるが、
なぜか友人のPCでは途中で動きが遅くなりフリーズしてしまう…(;_:)こんな感じです。
0809デフォルトの名無しさん
2008/02/27(水) 18:25:350810デフォルトの名無しさん
2008/02/27(水) 18:29:510811デフォルトの名無しさん
2008/02/27(水) 18:34:301208行目のループ文が無限ループしてる
0812デフォルトの名無しさん
2008/02/27(水) 18:38:57メモリとかリソースの解放漏れ
0813卍凹
2008/02/27(水) 18:47:15自分のPCよりスペックの高いPCを友人が持っていたのでためしたが駄目だった
んでスペックが足りないってこともないと思います。
>>811 812
812だとすれば自分のPCでも症状は出ると思うのですけど、今のところはでていません
0814デフォルトの名無しさん
2008/02/27(水) 18:56:33歯痛制御って何ですか?
セマホって何ですか?
クリテカルスポットって何ですか?
0815デフォルトの名無しさん
2008/02/27(水) 19:32:430816デフォルトの名無しさん
2008/02/27(水) 20:13:54それはその友人の罠だな。すぐ逃げた方がいい
0817デフォルトの名無しさん
2008/02/27(水) 20:21:27会社の女のまんこに挿入したいのですが、
どうすればいいですか?
0818デフォルトの名無しさん
2008/02/27(水) 20:33:45リアルでも空気が読めずに相手にされないのがもろわかりな内容。
0819デフォルトの名無しさん
2008/02/27(水) 20:53:170820卍凹
2008/02/27(水) 20:53:52なぜ動かないのでしょうか?うpするからみてもらえませんか??
0821デフォルトの名無しさん
2008/02/27(水) 21:10:150822デフォルトの名無しさん
2008/02/27(水) 21:13:340823卍凹
2008/02/27(水) 21:15:390824卍凹
2008/02/27(水) 21:16:220825デフォルトの名無しさん
2008/02/27(水) 21:35:06うpロダにソース晒せ
0826デフォルトの名無しさん
2008/02/27(水) 21:47:260827デフォルトの名無しさん
2008/02/27(水) 22:03:140828デフォルトの名無しさん
2008/02/27(水) 23:57:470829デフォルトの名無しさん
2008/02/28(木) 00:04:250830デフォルトの名無しさん
2008/02/28(木) 00:07:08MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
0831デフォルトの名無しさん
2008/02/28(木) 00:30:14ありがとうございます。
そこらへんから調べてみます。感謝。
0833デフォルトの名無しさん
2008/02/28(木) 04:07:03AlphaBlendやTransparentBltにはそのような記述がないということは、
BitBlt等はデバイス(GPU?)が行い、AlphaBlend等は全てCPUが処理するということで合ってますか?
0834デフォルトの名無しさん
2008/02/28(木) 07:00:34GetDeviceCapsのSHADEBLENDCAPSで対応状況が解る。
0835デフォルトの名無しさん
2008/02/28(木) 07:01:100836デフォルトの名無しさん
2008/02/28(木) 10:40:58現時点でのコピーされたバイト数を取得する方法は無いでしょうか?
よろしくお願い致します。
0837デフォルトの名無しさん
2008/02/28(木) 10:49:500838デフォルトの名無しさん
2008/02/28(木) 22:22:29そんなのが実在するなんて恐ろしいわ。
0839デフォルトの名無しさん
2008/02/28(木) 22:41:33ドライバのまずい部分をつつく可能性はあるね
0840デフォルトの名無しさん
2008/02/29(金) 00:52:06「HDCは画面だけのものじゃない」ってのをよく考えれ。
>>836
アプリが動かしてるのを取得したいんならフックするのがベストかな。
自前ならどーとでもお好きなように。
0841デフォルトの名無しさん
2008/02/29(金) 18:38:33プログラム中で、マウスホイールを禁止したいと思ってます。
またはプログラム中でホイール動作時の移動量情報を自分で決めたいと思っています。
できれば、WM_CREATE内で。。
ホイール動作時にWM_MOUSEWHEELメッセージが来るのは分かったのですが。。
環境はVC.net + SDK です。よろしくお願いします
0842デフォルトの名無しさん
2008/02/29(金) 18:44:39出し入れ自由なコレクションって自作するしかない?
0843デフォルトの名無しさん
2008/02/29(金) 18:56:200844デフォルトの名無しさん
2008/02/29(金) 19:17:040845デフォルトの名無しさん
2008/02/29(金) 19:58:240846デフォルトの名無しさん
2008/02/29(金) 19:59:47どの言語?いずれにしてもその言語のスレ行きな、ここはスレ違いだから。
0847デフォルトの名無しさん
2008/02/29(金) 21:38:35Dynamic Pointer Arrayという物がある。
比較的最近のSDKでないと定義されてないけど実はWin95でも使える枯れたAPIだったりする。
0848デフォルトの名無しさん
2008/02/29(金) 22:09:33WM_MOUSEWHEELでdeltaを好きなようにしたらいかんべ
0849デフォルトの名無しさん
2008/02/29(金) 22:16:20内部処理のソースファイルで定義した関数から
SetWindowTextでEDITコントロールの内容を変更出来ないんですけど、原因分かりますか?
0850デフォルトの名無しさん
2008/02/29(金) 22:16:580851デフォルトの名無しさん
2008/02/29(金) 22:21:18テンプレの上記のサイトのメッセージボックス項の
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
CHAR chStr[128];
wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);
return 0;
}
上記のコードを実行しようとすると
error C2664: 'wsprintfW' : 1 番目の引数を 'CHAR [128]' から 'LPWSTR' に変換できません。
error C2664: 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。
このようなエラーが出ます
chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
これはどうすればいんでしょうか?コンパイラはVS2005です
0852デフォルトの名無しさん
2008/02/29(金) 22:23:54マルチバイト文字セットに変更汁
0853デフォルトの名無しさん
2008/02/29(金) 22:29:54CHAR→TCHAR
>chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
ってLPWSTR chStr[128]ってしたってこと?
0854デフォルトの名無しさん
2008/02/29(金) 22:36:590855デフォルトの名無しさん
2008/02/29(金) 22:39:24>>853
TCHARにすると
error C2664: 'wsprintfW' : 2 番目の引数を 'const char [26]' から 'LPCWSTR' に変換できません。
こんなエラーが出ます
このエラーからすると第一引数にはchar型が入るように見えるんですが、違う、のかなぁ
>>chStrをLPWSTR[128]で宣言してもエラーは相変わらずです。
>ってLPWSTR chStr[128]ってしたってこと?
です、エラーからしてそういうことかなぁと思いまして
0856デフォルトの名無しさん
2008/02/29(金) 22:40:49TCHAR chStr[128];
wsprintf(chStr , TEXT("インスタンスハンドル : %d") , hInstance);
0857デフォルトの名無しさん
2008/02/29(金) 22:41:54* TCHAR, CHAR, WCHAR 型
* TEXT, _T マクロ
この辺についてちゃんと調べるなりドキュメント読んだほうが良いと思う
0858デフォルトの名無しさん
2008/02/29(金) 22:48:20違うよ。>>852の意味は
[プロジェクト]-[プロパティ]-[構成プロパティ]-[全般]-[文字セット]をマルチ バイト文字セットを使用する
に変更するという意味だよ。
0859デフォルトの名無しさん
2008/02/29(金) 22:50:30※ABは char / wchar_t / LPSTR / LPWSTR / LPCSTR / LPCWSTR など
巷のサンプルコードがこのようなコンパイルエラーを発生させる場合、文字セットが適切ではないです。
開発環境の文字コードの設定をソースにあわせるか、ソースを開発環境の設定にあわせるかしましょう。
方法は各々の開発環境のスレへどうぞ。
この辺の文言がテンプレにあったほうがいいような気がするがお前らはどう思うか
0860デフォルトの名無しさん
2008/02/29(金) 22:50:41コード見ないとわかんね
ここエスパースレじゃねえし
0861デフォルトの名無しさん
2008/02/29(金) 22:52:53分からないなら無理に答えていただく必要はありません
0862デフォルトの名無しさん
2008/02/29(金) 22:55:44>>860エスパーレスが欲しかったんですけど、ダメですかねえ
0863デフォルトの名無しさん
2008/02/29(金) 22:58:310864デフォルトの名無しさん
2008/02/29(金) 22:58:370865デフォルトの名無しさん
2008/02/29(金) 23:36:24SetWindowText(WM_SETTEXT)は他プロセスでも平気じゃなかったか
0866デフォルトの名無しさん
2008/03/01(土) 00:04:58WM_SETTEXT は大丈夫だけど SetWindowText は駄目
http://msdn2.microsoft.com/en-us/library/ms633546.aspx
>To set the text of a control in another process,
>send the WM_SETTEXT message directly instead of calling SetWindowText.
0867デフォルトの名無しさん
2008/03/01(土) 00:15:11HWNDを間違えてる、とでますた。
0868855
2008/03/01(土) 00:27:560869デフォルトの名無しさん
2008/03/01(土) 00:47:180870デフォルトの名無しさん
2008/03/01(土) 00:59:55全国の初心者をドツボにハメた。
0871デフォルトの名無しさん
2008/03/01(土) 01:07:340872デフォルトの名無しさん
2008/03/01(土) 01:15:58で、油断してるとサロゲートペアとかにはまると。
0873デフォルトの名無しさん
2008/03/01(土) 01:19:470874デフォルトの名無しさん
2008/03/01(土) 01:32:530875デフォルトの名無しさん
2008/03/01(土) 01:34:54LANケーブル引っこ抜け
0876デフォルトの名無しさん
2008/03/01(土) 02:47:150877デフォルトの名無しさん
2008/03/01(土) 02:47:540878デフォルトの名無しさん
2008/03/01(土) 03:17:58VS2005インスコして確かめてみたら、マジだ
なんでデフォの動作をころころ変えるかねぇ・・・
つうかメモリ128MBでVS2005が予想以上に重いw
0879デフォルトの名無しさん
2008/03/01(土) 03:24:580880デフォルトの名無しさん
2008/03/01(土) 04:49:41どもでした。
0881デフォルトの名無しさん
2008/03/01(土) 04:58:540882デフォルトの名無しさん
2008/03/01(土) 07:44:23いままでずっとMBCSだったじゃないか。
というかおれとしては2002か2003の時点で変えてほしかった。
0883デフォルトの名無しさん
2008/03/01(土) 08:41:540884デフォルトの名無しさん
2008/03/01(土) 08:53:56あたりが定義されるだけだからなー。
だから、nmakeについてはMAKEFILEをどうやって作ったかにもよるんじゃね?
あと、環境変数CLとかw
0885デフォルトの名無しさん
2008/03/01(土) 10:35:160886デフォルトの名無しさん
2008/03/01(土) 11:23:20デバイスコンテキストに固定長フォントセットしてGetTextExtentPoint32()呼び出すしかないでしょうか?
0887デフォルトの名無しさん
2008/03/01(土) 11:36:01全角半角の扱いがちがったりするし。
UNIXなら、wcwidthでいけるんだけどね。
まー、64Kbit程度のテーブル一回作れば終わるわけだし作れば。
0888デフォルトの名無しさん
2008/03/01(土) 11:37:29BMP外にあるSJIS表現不能な連中はシラネ。
0889デフォルトの名無しさん
2008/03/01(土) 11:39:19エミュレータだよ
>>886
>>462
0890886
2008/03/01(土) 13:03:39ありがとうございます。
記号なんかを含めるとそっちのほうが手っ取り早い気もしますね。
>>889
同じスレ内に答えあったとは・・・
ありがとうございました&すいませんでしたszo
0891デフォルトの名無しさん
2008/03/01(土) 13:12:53エミュレータでしかもメモリ128KBなら、さくさく動くと思う方がおかしい。
0892デフォルトの名無しさん
2008/03/01(土) 13:52:39うむ、たしかにそれは桁違いにおかしいな。
0893デフォルトの名無しさん
2008/03/01(土) 14:05:190894デフォルトの名無しさん
2008/03/01(土) 14:08:470895デフォルトの名無しさん
2008/03/01(土) 14:41:47このスレのdatすら入らないんだぜ(現在194KB)
0896デフォルトの名無しさん
2008/03/01(土) 16:43:220897デフォルトの名無しさん
2008/03/01(土) 18:13:110898デフォルトの名無しさん
2008/03/01(土) 18:59:39オンメモリ前提なんてここ数年の出来事なんだぜ
もうちょっと前はオンディスクもほぼ不可能で人間様の手と手書きラベルが前提だったんだぜ
もちっとまえはきりが無いので止めとく
0899デフォルトの名無しさん
2008/03/01(土) 19:00:53第二引数に結果を受け取る構造体のポインタ
第三引数の第二引数が示す構造体のサイズ
戻り値はNTSTATUS
構造体と定数は目的によるのでぐぐる
0900デフォルトの名無しさん
2008/03/01(土) 19:02:570901デフォルトの名無しさん
2008/03/01(土) 19:30:010902デフォルトの名無しさん
2008/03/01(土) 19:38:13どうすればいいでしょうか?
0903デフォルトの名無しさん
2008/03/01(土) 20:23:340904デフォルトの名無しさん
2008/03/01(土) 22:26:34MSDNの説明では入力専用のはずなのに、LPCWSTRじゃなくてLPWSTRです。
これは間違いという事でconstな文字列渡してもいいんでしょうか?
0905デフォルトの名無しさん
2008/03/01(土) 23:54:43コンパイラに怒られたら、渡す以前の問題だわな
0906デフォルトの名無しさん
2008/03/02(日) 00:14:17CreateProcessみたいな例もあるし、
いまのMSDNでconstじゃないなら、一応従っておいたほうがいいんじゃない?
0907デフォルトの名無しさん
2008/03/02(日) 04:09:430908デフォルトの名無しさん
2008/03/02(日) 04:19:46自分で待ち構えてないとな
0909907
2008/03/02(日) 05:01:13ありがとうございます。
WM_で探してみたけどたしかにそれらしいものはありませんでした。
調べてみたところ、
RemoveDirectory()、CreateDirectory()はkernel32.dllの関数らしい
のですが、これをフックして、戻り値を調べればわかるような気がしました。
難しそうなので、まだ自分には早そうですね。
0910デフォルトの名無しさん
2008/03/02(日) 05:05:17そのディレクトリを作成したディレクトリをFindFirstChangeNotification()で監視しておけばいい。
どういうパラメータを設定すればいいかは忘れた。
0912デフォルトの名無しさん
2008/03/02(日) 06:15:29>>911
ReadDirectoryChangesW を使った方がいい
0913デフォルトの名無しさん
2008/03/02(日) 07:16:310915デフォルトの名無しさん
2008/03/02(日) 12:35:320916デフォルトの名無しさん
2008/03/02(日) 12:37:270917デフォルトの名無しさん
2008/03/02(日) 12:40:460918デフォルトの名無しさん
2008/03/02(日) 12:51:00typedef int BOOL;
と書いてあって鬱になった俺が通りますよ
0919デフォルトの名無しさん
2008/03/02(日) 12:55:13仕様としては TRUE/FALSE 返すから BOOL なはずではあるけど、
知らない間に仕様拡張されてたら知らん。
0920デフォルトの名無しさん
2008/03/02(日) 13:18:000921デフォルトの名無しさん
2008/03/02(日) 13:21:46>処理しなかった場合に 0(FALSE)を返すべきです。
>ダイアログボックスプロシージャが 0(FALSE)を返した場合、
>ダイアログマネージャはそのメッセージに応答して既定のダイアログ処理を実行します。
>
>ダイアログボックスプロシージャが、特定の戻り値を必要とするメッセージを処理する場合、
>ダイアログボックスプロシージャは 0 以外の値(TRUE)を返す直前に
>SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) を呼び出し、
>希望の戻り値を設定するべきです。
>0 以外の値(TRUE)を返す直前に、
>SetWindowLong を呼び出さなければならないことに注意してください。
>それより早く呼び出すと、ネストされたダイアログボックスメッセージが、
>DWL_MSGRESULT の値を上書きする可能性があります。
って書いてあるけど。
0922デフォルトの名無しさん
2008/03/02(日) 13:42:58MSDNにはINT_PTRと書いてある
0923デフォルトの名無しさん
2008/03/02(日) 13:46:120924デフォルトの名無しさん
2008/03/02(日) 13:50:110925デフォルトの名無しさん
2008/03/02(日) 14:07:04実は使えないとか?
0926デフォルトの名無しさん
2008/03/02(日) 14:14:50セットアップファイル群の中にそれらしいcabファイルがあるから、
VS2008が入ってない環境だと入るのかもしれない。
0927デフォルトの名無しさん
2008/03/02(日) 15:02:290928デフォルトの名無しさん
2008/03/02(日) 15:05:52typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
古いSDK (VC6付属)
typedef BOOL (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
0929デフォルトの名無しさん
2008/03/02(日) 15:25:55何で INT_PTR にしたんだろう?
0930デフォルトの名無しさん
2008/03/02(日) 15:31:10INT_PTRにかえた理由は、64bitコードでは64bitにしたかったんじゃない?
0931デフォルトの名無しさん
2008/03/02(日) 15:33:230932デフォルトの名無しさん
2008/03/02(日) 15:33:350933デフォルトの名無しさん
2008/03/02(日) 15:34:29GetMessage は別だが。
0934デフォルトの名無しさん
2008/03/02(日) 17:09:070935デフォルトの名無しさん
2008/03/02(日) 17:16:56>while (GetMessage(&msg, NULL, 0, 0))
吐き出すんだけど
0936デフォルトの名無しさん
2008/03/02(日) 17:30:220937デフォルトの名無しさん
2008/03/02(日) 17:31:300938デフォルトの名無しさん
2008/03/02(日) 18:09:39複数インスタンス立ち上げると
リソースがボロボロ欠けたウィンドウが開いて
そのうち黙り込んで応答もしなくなって
システム全体再起動しないといけなくなるのは
IEの中のひとがメモリ確保時にエラーチェック
してないからだと思うんだけどどう?
0939デフォルトの名無しさん
2008/03/02(日) 18:21:27環境になんかヘンなもん突っ込んでるんじゃねーの?
0940デフォルトの名無しさん
2008/03/02(日) 18:36:410941デフォルトの名無しさん
2008/03/02(日) 18:42:50とりあえずC言語の基本を学んだので、ゲーム作りをしてみたいと思った
のですが、Win32APIで1からゲーム作りをするのは効率が悪いのでしょうか?
DirectXから学んだ方がいいのでしょうか?
0942デフォルトの名無しさん
2008/03/02(日) 18:45:420943デフォルトの名無しさん
2008/03/02(日) 18:47:52ゲーム作りの本質と関係ないところは、既存のライブラリを利用するので充分。
俺に言わせて貰えば、ゲームみたいなシビアというか、ちょっと変わった処理が多いような場合は、
WinAPI直接叩く方が、やりたいことが直にやれるし、ベンキョにもなっていいと思う。
0944デフォルトの名無しさん
2008/03/02(日) 18:49:31自分で全部やってみるのも勉強になると思う。
0945デフォルトの名無しさん
2008/03/02(日) 18:51:55C++は使えないと困ることになる。
0946デフォルトの名無しさん
2008/03/02(日) 18:52:290947デフォルトの名無しさん
2008/03/02(日) 19:00:370948デフォルトの名無しさん
2008/03/02(日) 19:01:20C++ 使わないのはもったいなさ過ぎる。
0949デフォルトの名無しさん
2008/03/02(日) 19:06:08C++は現在勉強中です。APIでもいろいろ出来そうなのでこれも並行して
勉強しようと思います。
それと最後に、Win32APIでは、PS2レベルの滑らかな3D描写は出来ないのでしょうか?
0950デフォルトの名無しさん
2008/03/02(日) 19:10:15全部ソフト的に対処する必要があるぜ。
要するに 3D 描画エンジンを自作するという。
しかもハードウェアの助けが得られないから遅い。
まあ、DirectX を通さずにグラフィックボードを直接操作するんなら話は別だが、
あまり意味がないよね。
0951デフォルトの名無しさん
2008/03/02(日) 19:12:47http://www.geocities.jp/higuchuu4/index.htm
0952デフォルトの名無しさん
2008/03/02(日) 19:16:00OpenGLがあるじゃないか
微妙な所だがChoosePixelFormatなんかはgdi32にあるからWin32APIということにする
0953デフォルトの名無しさん
2008/03/02(日) 19:29:29というのをMSが肩代わりしてくれる仕組みだ
winAPIでは3Dは無理
0954デフォルトの名無しさん
2008/03/02(日) 19:45:52DarkGDK
http://www.microsoft.com/express/samples/GameCreators/
0955デフォルトの名無しさん
2008/03/02(日) 19:59:43全角厨キモイ
0956デフォルトの名無しさん
2008/03/02(日) 20:02:363 は半角で D が全角だったりも。
0957デフォルトの名無しさん
2008/03/02(日) 20:59:59どうやら GetMessage() で -1 が返るのは、引数が無効な値の場合に
限られるようです。つまり msg を MSG 構造体とすると、
(A) GetMessage(&msg, hWnd, 0, 0);
(B) GetMessage(&msg, NULL, 0, 0);
(A) では -1 かどうかのチェックをした方がいいですが、(B) のような
より一般的なケースではチェックは不要ということになります。
なお、MSDN に載っているのも (A) に対する警告と思われます。
0958デフォルトの名無しさん
2008/03/02(日) 21:01:040959デフォルトの名無しさん
2008/03/03(月) 00:30:44それ以外ないとは書かれていないわけで
0960デフォルトの名無しさん
2008/03/03(月) 01:15:16参考になったが
>>959
という意見もあるし結局どっちなんだろう
0961デフォルトの名無しさん
2008/03/03(月) 01:24:280962デフォルトの名無しさん
2008/03/03(月) 01:27:35問答無用でbreakするようなコードだとWM_DESTROYを通さないから色々リークするだろうし、
WTLはcontinueしてるけど、毎回-1が返ってくるような状況だとループから抜け出せないし
正直-1の場合は無視でいいとオモタ
0963デフォルトの名無しさん
2008/03/03(月) 01:31:290964デフォルトの名無しさん
2008/03/03(月) 01:35:230965デフォルトの名無しさん
2008/03/03(月) 12:59:40一例として、WM_CTLCOLOR*** は「HBRUSHを直接返さなければならない」(DWL_MSGRESULTは禁止)
だから64bitはINT_PTRじゃなきゃまずいんだよ。
HBRUSHの中身が64bitになる実装は存在しないとかいうのは無しね。
If the dialog box procedure processes a message that requires a
specific return value, the dialog box procedure should set the
desired return value by calling
SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) immediately before
returning TRUE. Note that you must call SetWindowLong immediately
before returning TRUE; doing so earlier may result in the
DWL_MSGRESULT value being overwritten by a nested dialog box
message.
The following messages are exceptions to the general rules stated
above. Consult the documentation for the specific message for
details on the semantics of the return value.
WM_CHARTOITEM
WM_COMPAREITEM
WM_CTLCOLORBTN
WM_CTLCOLORDLG
WM_CTLCOLOREDIT
WM_CTLCOLORLISTBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC
WM_INITDIALOG
WM_QUERYDRAGICON
WM_VKEYTOITEM
0966デフォルトの名無しさん
2008/03/03(月) 13:28:18わざわざ 64-bit 対応の為に関数宣言を書き換える必要があるなんて馬鹿げている
0967デフォルトの名無しさん
2008/03/03(月) 13:36:160968デフォルトの名無しさん
2008/03/03(月) 13:49:14VirtualAllocとかにも、大きさを指定する引数(今はSIZE_T)が
以前はDWORDだったとか似たような事例は他にもあるな。
0969デフォルトの名無しさん
2008/03/03(月) 14:00:34実行したんですが「ファイルマッピングのオープン失敗」のメッセージが出て
最後まで実行できませんでした。どこが悪いのでしょうか教えてください。
ソースのページは
http://www.kumei.ne.jp/c_lang/sdk2/sdk_123.htm
でコピペして実行したcppファイルもあげときます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6115.txt
すいませんが教えてください
0970デフォルトの名無しさん
2008/03/03(月) 14:04:350971デフォルトの名無しさん
2008/03/03(月) 14:53:13つ bool / BOOLEAN
0972デフォルトの名無しさん
2008/03/03(月) 15:05:23APIが使ってるBOOL書き換えてどうするんだよw
0973デフォルトの名無しさん
2008/03/03(月) 15:16:02何が言いたいのかよく分からん
そもそも引数や返値を int 型からポインタ型 (INT_PTR) に置き換えても何ら無駄にはならない
0974デフォルトの名無しさん
2008/03/03(月) 15:47:440975デフォルトの名無しさん
2008/03/03(月) 16:00:230976デフォルトの名無しさん
2008/03/03(月) 16:10:57何れにしろREXプレフィックスでコードサイズは変わるかも
0977デフォルトの名無しさん
2008/03/03(月) 16:48:390978デフォルトの名無しさん
2008/03/03(月) 16:51:15>>1-2にもリンクがあるMSDNライブラリがそれ。
0979デフォルトの名無しさん
2008/03/03(月) 17:27:32それを変数に格納するってことじゃない?
0980デフォルトの名無しさん
2008/03/03(月) 18:39:390981デフォルトの名無しさん
2008/03/03(月) 19:42:460982デフォルトの名無しさん
2008/03/03(月) 22:33:40ZeroMemory(&mii,sizeof(mii));
mii.cbSize=sizeof(MENUITEMINFO);
mii.fMask=MIIM_FTYPE;
mii.dwTypeData=L"ファイル";
HMENU menu=::CreateMenu();
::InsertMenuItem(menu,0,0,&mii);
::DrawMenuBar(hwnd);
ちゃんとウィンドウ表示してからこれしたらメニュー表示されない・・・なんで?
0983デフォルトの名無しさん
2008/03/03(月) 22:35:020984デフォルトの名無しさん
2008/03/03(月) 23:36:08教えてくだちい><
0985デフォルトの名無しさん
2008/03/03(月) 23:42:300986デフォルトの名無しさん
2008/03/04(火) 09:45:00メニューバーの高さが通常の半分くらいしかありませんでした。
調べてみますが他に何かあったら教えていただけないでしょうか
0987デフォルトの名無しさん
2008/03/04(火) 09:54:59入力コンテキストを取得するためにImmGetContext()に
コンソールのウィンドウハンドルを渡してもNULLが帰ってきます。
HWND hWnd = GetConsoleWindow();
HIMC hImc = ImmGetContext(hWnd); <- NULLが返る
どうしたらコンソールの入力コンテキストを取得できるでしょうか?
あるいは、入力コンテキストを得ずにIMEを制御する手段はないものでしょうか?
0988デフォルトの名無しさん
2008/03/04(火) 10:06:13CONIMEってのがあるくらいだし
0989デフォルトの名無しさん
2008/03/04(火) 12:07:43ウィンドウハンドルリストを列挙
プロセスIDを列挙−>メインのウィンドウハンドルを取得
つき合わせてプロセスIDを特定
プロセスIDからファイルパスを取得->Sh何たらでIcon取得
てな感じですかね。もっと手っ取り早いのはないんでしょうか。
0990デフォルトの名無しさん
2008/03/04(火) 12:22:14次スレ
テンプレのお陰で連投規制にかかっちまった
0991デフォルトの名無しさん
2008/03/04(火) 12:27:540992デフォルトの名無しさん
2008/03/04(火) 12:34:31乙。ゆっくり休むがいい。
0993デフォルトの名無しさん
2008/03/04(火) 12:39:31GetWindowLong
GWL_EXSTYLE
GetClassLongPtr
0994987
2008/03/04(火) 13:46:12ATOKを組み込むとコンソールでもATOKの辞書で入力されますから
CONIMEはIMEを使って漢字変換してるみたいですね。
でも、ウィンドウを列挙してもCONIMEのウィンドウ無いのにどうやってるんだろ?
今はキーストロークを送って入力モードを変えるのを試してるんですが、
IMEのON/OFFがトグルなので現在の状態が読めないからこれもだめそうです。
0995デフォルトの名無しさん
2008/03/04(火) 14:49:170996デフォルトの名無しさん
2008/03/04(火) 14:54:150997デフォルトの名無しさん
2008/03/04(火) 15:01:200998デフォルトの名無しさん
2008/03/04(火) 15:02:570999デフォルトの名無しさん
2008/03/04(火) 15:04:431000デフォルトの名無しさん
2008/03/04(火) 15:04:4910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。