Win32API質問箱 Build76
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/02/03(火) 09:56:18やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build75
http://pc11.2ch.net/test/read.cgi/tech/1231423602/
0002デフォルトの名無しさん
2009/02/03(火) 09:57:13- MSDN ホームページ
http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/
http://msdn.microsoft.com/en-us/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
書籍
- Advanced Windows 第5版
http://www.amazon.co.jp/dp/4891005920
0003デフォルトの名無しさん
2009/02/03(火) 09:57:4674 ttp://pc11.2ch.net/test/read.cgi/tech/1229239827/
73 ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/
72 ttp://pc11.2ch.net/test/read.cgi/tech/1226575789/
71 ttp://pc11.2ch.net/test/read.cgi/tech/1224745158/
70 ttp://pc11.2ch.net/test/read.cgi/tech/1221446107/
69 ttp://pc11.2ch.net/test/read.cgi/tech/1217687038/
68 ttp://pc11.2ch.net/test/read.cgi/tech/1215348804/
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/
51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/
0004デフォルトの名無しさん
2009/02/03(火) 09:57:5949 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/
38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
0005デフォルトの名無しさん
2009/02/03(火) 09:58:1024 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★
15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★
14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html
0006デフォルトの名無しさん
2009/02/03(火) 09:58:37http://www.google.com/
下記サイトは、違っている事もあるので参考程度にしよう!
流れを参考にしながら、APIの仕様を読めば使えるはず。
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
●Win32API(C言語)
http://www.geocities.jp/ky_webid/win32c/
0007デフォルトの名無しさん
2009/02/03(火) 09:59:40とりあえず今は驚いて振り返る前に、まずパスタをゆでようと思った。
そんな思いで立てましたわ。
0008デフォルトの名無しさん
2009/02/03(火) 10:28:09知らないならレスしないでください。
0009デフォルトの名無しさん
2009/02/03(火) 12:03:010010デフォルトの名無しさん
2009/02/03(火) 12:07:380011デフォルトの名無しさん
2009/02/03(火) 12:14:070012デフォルトの名無しさん
2009/02/03(火) 12:52:48http://support.microsoft.com/kb/q165721/
0013デフォルトの名無しさん
2009/02/03(火) 13:00:30ありがとうございます
0014デフォルトの名無しさん
2009/02/03(火) 14:08:090015デフォルトの名無しさん
2009/02/03(火) 14:23:380016デフォルトの名無しさん
2009/02/03(火) 14:25:100017デフォルトの名無しさん
2009/02/03(火) 14:32:550018デフォルトの名無しさん
2009/02/03(火) 14:37:360019デフォルトの名無しさん
2009/02/03(火) 15:55:27CreateProcess関数でwinmain.exeを起動するプログラムを追加したんだけど
当たり前だけど、新しいウィンドウが開いてマインスイーパーが起動しますよね
この際、最初に作ったウィンドウの子ウィンドウとしてマインスイーパーを起動することは出来ないのでしょうか
0020デフォルトの名無しさん
2009/02/03(火) 16:05:46最前面かどうかを判定しようとしましたが、
よく分からないハンドルしか返って来ません。
MDI子ウィンドウ等かと思いましたが違うようです。
一体何のハンドルが返ってきているのでしょうか?
g_hWndMain == GetWindow( g_hWndMain, GW_HWNDFIRST )
0021デフォルトの名無しさん
2009/02/03(火) 16:19:21それはMDIクライアントというウィンドウ。
http://wisdom.sakura.ne.jp/system/winapi/win32/win139.html
0022デフォルトの名無しさん
2009/02/03(火) 16:30:09そろそろ諦めて
0023デフォルトの名無しさん
2009/02/03(火) 16:31:060024デフォルトの名無しさん
2009/02/03(火) 16:33:340025デフォルトの名無しさん
2009/02/03(火) 16:34:240026デフォルトの名無しさん
2009/02/03(火) 16:34:50できるけど教えない。
0027デフォルトの名無しさん
2009/02/03(火) 16:36:00あきらめるって何を?
プログラム組むことあきらめて>>22みたいに、知識無いのに無駄口叩いて粘着する人間になれってこと?
0028デフォルトの名無しさん
2009/02/03(火) 16:37:13できるならそれはよかったと安心できたけど
なんで質問スレにいるの?
アホなの?
0029デフォルトの名無しさん
2009/02/03(火) 16:38:12やりたいこととしては、吉里吉里とDXライブラリを同ウィンドウで処理することなんですが
WinAPIでウィンドウ作って
その子ウィンドウとして、ある.exeファイルを起動(吉里吉里)
そして、通常は霧きりで進行、なんらかのフラグでDXライブラリに移行
みたいなのを創造しているのですが、これは可能なのでしょうか?
知識があまり無いので勘違いしまくりの発言だったらすいません
791 名前:デフォルトの名無しさん[sage] 投稿日:2009/01/31(土) 13:18:40
ああ、親ウィンドウのエディットボックス内の入力されている
ファイル名を子ウィンドウで取得させて処理させたいって事か・・・やっと意味がわかった
どのタイミングでさせたいの?場合によっては独自定義メッセージでさせちゃうとかすりゃいいのに
878 名前:デフォルトの名無しさん[] 投稿日:2009/02/01(日) 21:16:33
WinAPIでアプリAを作り、Aを起動すると
ウィンドウを作成し
次に予め作っておいたアプリBを起動し、それをアプリAの子ウィンドウにする
これってどうやればできますでしょうか
885 名前:デフォルトの名無しさん[] 投稿日:2009/02/01(日) 21:27:06
>>881
ハンドルから子ウィンドウは分かりましたがアプリAを起動するとアプリBの.exeを自動で起動する方法が分かりません
数日前からいるこいつだろ。
最初にできるって言った奴責任持って回答しろよw
0031デフォルトの名無しさん
2009/02/03(火) 16:42:31うんそうだけど、質問スレに粘着して質問に答えずに意味の分からない煽りをする必要性を教えて欲しいかな
暇なの?それとも、初心者が育つのが嫌なの?
0032デフォルトの名無しさん
2009/02/03(火) 16:43:35知識無いのに知ったかぶって粘着してる奴ばっかってのは知ってるけど
たまにちゃんと知ってる人も居るから聞いてます
CreateProcess教えてくれた人とかね
0033デフォルトの名無しさん
2009/02/03(火) 16:48:38普通にSetParentでできるかもしれない
ただし親ウインドウに指定できたからと言って期待通りに動くかどうかはまた別問題
0034デフォルトの名無しさん
2009/02/03(火) 16:52:38STARTUPINFO にそのステーション名渡す とかいう話になるのかね?
0035デフォルトの名無しさん
2009/02/03(火) 17:28:18ありがとうございます
既存のウィンドウのハンドルを取得するのはFindWindow関数で出来るみたいなのでちょっとまた試行錯誤してみます
0036デフォルトの名無しさん
2009/02/03(火) 17:35:410037デフォルトの名無しさん
2009/02/03(火) 17:36:35メッセージフック→フックプロシージャ( if(cwps->message==WM_KILLFOCUS)return true; )
とやり、しっかりif(cwps->message==WM_KILLFOCUS)return true;の所にも届いているのですが、
上手くカットできてないのか何故かそのフックを組み込んだソフトにもWM_KILLFOCUSが届いてしまいます。
一度、WM_KILLFOCUSをフックしたらメッセージボックスを出すようにして試してみてちゃんとWM_KILLFOCUS
が送られてくるタイミングでメッセージボックスがだされるのでフックはちゃんとできていると思うんですが
なぜでしょうか?
SetWindowsHookExの第一引数はWH_CALLWNDPROCにしています。
0038デフォルトの名無しさん
2009/02/03(火) 17:48:33It is highly recommended that you call CallNextHookEx and
return the value it returns; otherwise, other applications that
have installed WH_CALLWNDPROC hooks will not receive hook
notifications and may behave incorrectly as a result. If the hook
procedure does not call CallNextHookEx, the return value should be zero.
The CallWndProc hook procedure can examine the message, but it cannot modify it.
0039デフォルトの名無しさん
2009/02/03(火) 17:54:52CallNextHookEx呼ぶか、0返すかしろってことだよね?でもCallNextHookExまたは0
返すとメッセージカットできないし、要するにメッセージフックは来たメッセージ
が分かって勝手に処理を追加することはできても本来されるとされていた処理はカット
できないってこと?
0040デフォルトの名無しさん
2009/02/03(火) 18:07:280041デフォルトの名無しさん
2009/02/03(火) 18:08:19>38=ttp://msdn.microsoft.com/en-us/library/ms644975(VS.85).aspx
0042デフォルトの名無しさん
2009/02/03(火) 18:39:51"A" → VK_A
"Shift" → VK_SHIFT
みたいなの
0043デフォルトの名無しさん
2009/02/03(火) 18:44:12ではメッセージフックの他にメッセージをカットする方法ありますか?
0044デフォルトの名無しさん
2009/02/03(火) 18:50:01前スレかどっかで答えたのじゃだめなん?
CreateProcessで立ち上げたアプリのHINSTANCEから
メインウィンドウのハンドルを取得して
そのウィンドウハンドルを自分のウィンドウの子ウィンドウにするように
ウィンドウスタイル変更したらいいんじゃね?
0045デフォルトの名無しさん
2009/02/03(火) 19:17:57たしか、消し去りたいときはWM_NULLにしてしまうのではなかったかな?
0046デフォルトの名無しさん
2009/02/03(火) 19:25:20△WH_CALLWNDPROCではではメッセージをカットすることはできない
0047デフォルトの名無しさん
2009/02/03(火) 19:38:47あとローレベルフック。
0048デフォルトの名無しさん
2009/02/03(火) 20:43:04PNGの画像を読み込もうとすると0が返ってくるです。
どうすればいいですか?
0049デフォルトの名無しさん
2009/02/03(火) 21:02:54まずはMSDNを読め。
0050デフォルトの名無しさん
2009/02/03(火) 21:07:48今日はじめて知ったよ
0051デフォルトの名無しさん
2009/02/03(火) 21:10:01無理じゃないかなー。情報減ってるんで。
0052デフォルトの名無しさん
2009/02/03(火) 21:15:570053デフォルトの名無しさん
2009/02/03(火) 21:35:100054デフォルトの名無しさん
2009/02/03(火) 21:49:09ファイル名をVARIANT型で渡す必要があるので多少面倒だが。
……PGNという画像形式は流石に無いと信じたい。
0055デフォルトの名無しさん
2009/02/03(火) 21:56:190056デフォルトの名無しさん
2009/02/03(火) 22:11:100057デフォルトの名無しさん
2009/02/03(火) 22:23:420058デフォルトの名無しさん
2009/02/03(火) 22:27:480059デフォルトの名無しさん
2009/02/03(火) 22:31:350060デフォルトの名無しさん
2009/02/03(火) 22:36:11そうかーありがとう
0061デフォルトの名無しさん
2009/02/03(火) 22:40:06YSrcを0,Xsrcを0以外に設定すると
Yの座標がおかしくなるんだけど,そういうもの?
0062デフォルトの名無しさん
2009/02/04(水) 00:18:410063デフォルトの名無しさん
2009/02/04(水) 00:23:050064デフォルトの名無しさん
2009/02/04(水) 00:24:350065デフォルトの名無しさん
2009/02/04(水) 00:30:48変換テーブルを自前で用意すりゃいいじゃん。
0066デフォルトの名無しさん
2009/02/04(水) 00:33:380067名無し募集中。。。
2009/02/04(水) 00:46:400068デフォルトの名無しさん
2009/02/04(水) 01:02:450069デフォルトの名無しさん
2009/02/04(水) 01:09:28BMPならともかく、PNGとかTIFFは相当手間かかると思うんだぜ
0070デフォルトの名無しさん
2009/02/04(水) 01:18:13画像のデコード自体が目的なら止めはしないけど。
0071デフォルトの名無しさん
2009/02/04(水) 02:23:53めんどいやん・・
0072デフォルトの名無しさん
2009/02/04(水) 02:36:15PrtScrとかキーボードによって表記違うやつがどうなるか知らんけど
0073デフォルトの名無しさん
2009/02/04(水) 02:39:42ガンマとか色空間を捨てればpngは比較的簡単だぞ
0074デフォルトの名無しさん
2009/02/04(水) 07:27:160075デフォルトの名無しさん
2009/02/04(水) 07:28:23!!↓png以外の話題でお願いします!!
0076デフォルトの名無しさん
2009/02/04(水) 09:12:570077デフォルトの名無しさん
2009/02/04(水) 11:30:51http://www.geocities.jp/katayama_hirofumi_mz/win32/loadpng.htm
0078デフォルトの名無しさん
2009/02/04(水) 11:39:460079デフォルトの名無しさん
2009/02/04(水) 11:57:150080デフォルトの名無しさん
2009/02/04(水) 13:27:050081デフォルトの名無しさん
2009/02/04(水) 13:28:040082デフォルトの名無しさん
2009/02/04(水) 14:24:100083デフォルトの名無しさん
2009/02/04(水) 14:26:08変になるのはどっちが悪いんですか?
0084デフォルトの名無しさん
2009/02/04(水) 14:27:200086デフォルトの名無しさん
2009/02/04(水) 15:04:250087デフォルトの名無しさん
2009/02/04(水) 15:21:330088デフォルトの名無しさん
2009/02/04(水) 16:12:44ありがとうございます。
とりあえずやってみたのですがうまくいきません。。
dwBufferに入ってるデータを縮小してまたdwBufferに戻したいのですが・・・
1440x1080のDIBデータ(dwBuffer)を1280x720に縮小
dwBuffer = new DWORD[1440*1080];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateCompatibleBitmap( NULL, 1280, 720 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );
突っ込み所満載かもしれませんがどこが悪いのでしょうか・・・
0089デフォルトの名無しさん
2009/02/04(水) 16:41:380090デフォルトの名無しさん
2009/02/04(水) 16:47:36知らないならレスしないで下さい。ウザイだけです。
0091デフォルトの名無しさん
2009/02/04(水) 16:49:17知らないならレスしないで下さい。ウザイだけです。
0092デフォルトの名無しさん
2009/02/04(水) 16:52:570093デフォルトの名無しさん
2009/02/04(水) 16:53:430094デフォルトの名無しさん
2009/02/04(水) 17:05:260095デフォルトの名無しさん
2009/02/04(水) 17:07:020096デフォルトの名無しさん
2009/02/04(水) 18:17:10>>94
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );
で試してみると先ほどは真っ黒だったのが今度は画面半分下から縮小された画像が表示されました。
(CreateCompatibleBitmapでhdcを指定しても真っ黒でした)
ちなみに、StretchDIBitsはhdcにイメージのハンドルを与えてやると
イメージには正常に縮小された画像が表示されていましたので
怪しい部分はそれ以外だとおもいますが・・・
また何処が間違っているかご指摘お願いします
0097デフォルトの名無しさん
2009/02/04(水) 18:19:44bi.bmiHeader.biHeight = 720;
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );
009886
2009/02/04(水) 18:24:11早速のお答え有難うございます!!
確かにそれでちゃんと画面の上から書き出しましたが・・・
今度は画像が崩れてしまいました><
でもこれで更に近いところまでくることがでいました!
009986
2009/02/04(水) 18:32:43bi.bmiHeader.biWidth = 1280;
bi.bmiHeader.biHeight = 720;
をしたから画像がくずれたのではなくてその前から崩れた状態でした。。
くずれた状態というのは同じパターンを繰り返してるみたいな・・・
StretchDIBits自体はうまくいってるので他に怪しい所は
CreateDIBSectionとGetDIBitsでしょうか?
0100デフォルトの名無しさん
2009/02/04(水) 18:35:05AABB -> CD
CCDD
CCDD
AABB AB■■
AABB -> CD■■
CCDD ■■■■
CCDD ■■■■
ビットマップごと小さくしたいのか、ビットマップの大きさは同じで
画像だけ小さくしたいのか
010186
2009/02/04(水) 18:39:19>>97
神様ありがとう!
おもいっきり勘違いしてましたすみません><
GetDIBitsの直前でそれをやればよかったんですね。
ちゃんと表示できました。ありがとうございます。
>>100
いやすみません。
1440x1080のDIBデータだけある状態で
それを1280x720のサイズのDIBデータにしたかったんです><
0102デフォルトの名無しさん
2009/02/04(水) 21:16:17DWORDLONG という訳の分からないものだった衝撃
0103デフォルトの名無しさん
2009/02/04(水) 21:50:180104デフォルトの名無しさん
2009/02/04(水) 21:52:46((⊂ ヽ ( ゚ω゚ ) / ⊃))
| L | '⌒V /
ヽ,_,/ ヽ_./ お断りします
__,,/,, i お断りします
( _ |
\\_  ̄`'\ \
ヽ ) > )
(_/´ / /
( ヽ
ヽ_)
0105デフォルトの名無しさん
2009/02/04(水) 22:41:00DWORDの次はDWORD64と決まっておるのだ。
0106デフォルトの名無しさん
2009/02/04(水) 22:49:00google検索したところ、case WM_TRAYICONMESSAGE: case WM_TRAYICONMESSAGE:
を使うサンプルが出てきました。
Borland C++ Compiler 5.5 で書いてるんですが未定義のシンボルと出て使えませんでした。
Borland C++ Compiler 5.5 での書き方って別にあるんですか?
0107デフォルトの名無しさん
2009/02/04(水) 22:51:37勝手に定義してるだけだろ。
0108デフォルトの名無しさん
2009/02/04(水) 22:52:35ウィンドウにツールチップを設定したいのですがうまくいきません。
GetLastErrorは0でした。
主なコードは以下の通りです。
case WM_CREATE:
GetClientRect(hWnd, &ClientRect);
InitCommonControls();
hTool = CreateWindowEx
(
WS_EX_LEFT, TOOLTIPS_CLASS, NULL, TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, hInst, NULL
);
ToolInfo.cbSize = sizeof(TOOLINFO);
ToolInfo.hinst = NULL;
ToolInfo.hwnd = hWnd;
ToolInfo.lParam = NULL;
ToolInfo.lpReserved = NULL;
ToolInfo.lpszText = L"テスト";
ToolInfo.rect = ClientRect;
ToolInfo.uFlags = TTF_SUBCLASS;
ToolInfo.uId = 1;
SendMessage(hTool, TTM_ADDTOOL, NULL, (LPARAM)&ToolInfo);
SendMessageの戻り値がFALSEでうまくいきません。
どこが悪いのでしょうか?
VC++を始めて2ヶ月ちょっとの超初心者なので、調べ方が悪いのか解決方法が分りません。
誰かわかる人がいたら教えてください。お願いします。
0109デフォルトの名無しさん
2009/02/04(水) 22:53:100110デフォルトの名無しさん
2009/02/04(水) 22:56:000111デフォルトの名無しさん
2009/02/04(水) 23:02:03ああ、わかりました。ありがとうございました。
0112デフォルトの名無しさん
2009/02/04(水) 23:02:45アプリケーション定義のメッセージだもの、自分で定義しなきゃ使えんよ。
#define WM_TRAYICONMESSAGE WM_APP + 1
とでもしておけ。
0113デフォルトの名無しさん
2009/02/04(水) 23:11:44なんで QWORD にしないんだろうか・・・
5ワードと区別がつかないからか?
0114名無し募集中。。。
2009/02/04(水) 23:19:450115デフォルトの名無しさん
2009/02/04(水) 23:21:370116デフォルトの名無しさん
2009/02/04(水) 23:34:58WORDLONGなんてあったんだね
0117デフォルトの名無しさん
2009/02/04(水) 23:45:520118デフォルトの名無しさん
2009/02/04(水) 23:49:18DIBは通常BottomToTopなので……まあ、色々あるんだわ、これが。
とりあえず、昔のDIB系のAPI使うより、
CreateDIBSectionから始めたほうが幸せになれる、とだけは言っとく。
0119デフォルトの名無しさん
2009/02/04(水) 23:52:40thx,幸せになるため変更してみる
0120デフォルトの名無しさん
2009/02/05(木) 00:44:50GDIとかで描いてる以上チラつきをDirectX並に減らすことは無理です?
0121デフォルトの名無しさん
2009/02/05(木) 01:04:280122デフォルトの名無しさん
2009/02/05(木) 03:49:12そのままプライマリの右に設定されてるときはプライマリの解像度を得たら分かるけど
左,上,下とか微妙にずらして斜め上とかにも設定できちゃうので困ってます。
0123デフォルトの名無しさん
2009/02/05(木) 04:10:470124デフォルトの名無しさん
2009/02/05(木) 09:32:41GDIで50fpsとか、馬鹿ですか?
0125デフォルトの名無しさん
2009/02/05(木) 14:27:250126デフォルトの名無しさん
2009/02/05(木) 14:33:08面白くない。
もっとがんばりましょう。
0127デフォルトの名無しさん
2009/02/05(木) 14:35:49ワロタwww腹痛ぇwwwww
0128デフォルトの名無しさん
2009/02/05(木) 14:50:56{
return TRUE;
}
0129デフォルトの名無しさん
2009/02/05(木) 14:52:070130デフォルトの名無しさん
2009/02/05(木) 14:52:570131デフォルトの名無しさん
2009/02/05(木) 15:20:090132デフォルトの名無しさん
2009/02/05(木) 15:31:080133デフォルトの名無しさん
2009/02/05(木) 15:35:23笑わせてもらいました。
0134129
2009/02/05(木) 16:02:300135129
2009/02/05(木) 16:05:190136129
2009/02/05(木) 16:05:240137129
2009/02/05(木) 16:11:160138129 ◆TTLQTUMllo
2009/02/05(木) 16:15:000139129
2009/02/05(木) 16:20:270141129
2009/02/05(木) 16:42:150142129
2009/02/05(木) 16:43:080145129 ◆TTLQTUMllo
2009/02/05(木) 16:48:140146129
2009/02/05(木) 16:49:200147129 ◆TTLQTUMllo
2009/02/05(木) 16:49:250148129
2009/02/05(木) 16:50:210149デフォルトの名無しさん
2009/02/05(木) 16:55:090150デフォルトの名無しさん
2009/02/05(木) 16:57:050151129
2009/02/05(木) 16:59:240152デフォルトの名無しさん
2009/02/05(木) 17:08:32The copied line does not contain a terminating null character.
これ作ったやつマジで氏ね!!
0153デフォルトの名無しさん
2009/02/05(木) 17:31:32荒らすの止めろクズが
0154デフォルトの名無しさん
2009/02/05(木) 18:45:300155デフォルトの名無しさん
2009/02/05(木) 18:48:400156デフォルトの名無しさん
2009/02/05(木) 19:19:320157デフォルトの名無しさん
2009/02/05(木) 19:22:210158デフォルトの名無しさん
2009/02/05(木) 19:24:48ここら辺が見所ですかね。
0159デフォルトの名無しさん
2009/02/05(木) 19:56:03Win16時代のAPIに今更ケチ付けてもねえ
0160デフォルトの名無しさん
2009/02/05(木) 19:56:390161デフォルトの名無しさん
2009/02/05(木) 19:58:250162デフォルトの名無しさん
2009/02/05(木) 20:03:42理由になってない。
0163129 ◆kwai5Y6kNk
2009/02/05(木) 20:04:370164デフォルトの名無しさん
2009/02/05(木) 20:14:37さすがにプログラマーからの苦情が多かったためWin32ではNULLをつけるよう仕様変更した。
しかしEM_GETLINEなど一部は後方互換性を重視して、敢えてNULLをつけていない。
少しはググレカス
0165デフォルトの名無しさん
2009/02/05(木) 22:46:07付けているのが多いのですが、付けると何か良いことがあるのでしょうか?
::MessageBox(〜);
0166デフォルトの名無しさん
2009/02/05(木) 22:47:140167デフォルトの名無しさん
2009/02/05(木) 22:47:55または、インテリセンスを効かせようとした跡。
0169デフォルトの名無しさん
2009/02/05(木) 23:10:56すっごい綺麗にいけました!ありがとうございます。
0170デフォルトの名無しさん
2009/02/05(木) 23:31:07Post先で参照後に勝手に消えてくれるので便利な気がするのですが。
0171デフォルトの名無しさん
2009/02/05(木) 23:39:07Post先にメッセージが届く前に shared_ptr が破棄されているかもしれないので危険
0172デフォルトの名無しさん
2009/02/06(金) 00:02:240173デフォルトの名無しさん
2009/02/06(金) 00:02:460174デフォルトの名無しさん
2009/02/06(金) 00:10:23問題は幸せにしてやれるかどうかだ
0175デフォルトの名無しさん
2009/02/06(金) 00:28:010176デフォルトの名無しさん
2009/02/06(金) 00:30:000177デフォルトの名無しさん
2009/02/06(金) 10:18:260178デフォルトの名無しさん
2009/02/06(金) 10:20:14017986
2009/02/06(金) 10:57:15数日前色々教えてもらって縮小はうまくいったのですが今度は拡大がうまくいきません><
1440x1080を1980x1080に拡大
dwBuffer = new DWORD[2048*2048];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1980, 1080, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
bi.bmiHeader.biWidth = 1980;
bi.bmiHeader.biHeight = 1080;
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
出力サイズの1280x720を1980x1080に変更しただけなんですが・・・
どうも出力先のサイズが1440で切られてるみたいです。。。
何処が間違ってますか?
0180デフォルトの名無しさん
2009/02/06(金) 11:00:35次いってみよー
0181デフォルトの名無しさん
2009/02/06(金) 11:03:50CreateDIBSectionを元画像と同じ大きさで呼んでるからだろ
てか、お前プログラムやめたら?
018286
2009/02/06(金) 11:17:21::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
1980じゃなくて1080ですね。
>>181
そう思って出力先と同じサイズにしたんですが画像がくずれてしまって・・・
018386
2009/02/06(金) 11:21:32僕が馬鹿でした。
言葉は悪いけど>>181が参考になりました。
0184デフォルトの名無しさん
2009/02/06(金) 11:43:141980×1080は1920×1080では?
018586
2009/02/06(金) 12:03:21いや1980なんですよねこれが。
おかげで拡大もばっちりいったのですが・・・
グラデーションがかかった画像を縮小すると汚さが目立ちます
オリジナルの1440x1080を1280x720にすると目立つとおもって
1440x1080→1980x1080→1280x720でやっても一緒だったのですが
同じ流れでC++BuilderのTBitmapで行うと綺麗に行くのですが
これなんかパラ指定があるんでしょうか?
ちなみにStretchDIBitsのHDCにTBitmapのハンドルを与えてから拡大縮小してます
0186デフォルトの名無しさん
2009/02/06(金) 12:05:510187デフォルトの名無しさん
2009/02/06(金) 12:07:08SetStretchBltModeじゃね?
018986
2009/02/06(金) 13:37:18>>187
神様ありがとう!
すげえええええええええです!
一発で綺麗に縮小できました!!
ありがとうありがとう
0190デフォルトの名無しさん
2009/02/06(金) 13:54:300191デフォルトの名無しさん
2009/02/06(金) 15:29:07bf.BlendFlags = 0;
bf.AlphaFormat = true;
bf.SourceConstantAlpha = 255;
AlphaBlend関数でBLENDFUNCTIONを上記のように設定すると、画像の完全な透明以外の部分はちゃんと
半透明に表示されますが、完全に透明な部分は何故か白で塗りつぶされてしまいます。これはどう設定しても無理ですか?
0192デフォルトの名無しさん
2009/02/06(金) 15:45:06計算式がおかしいのは有名な話
0193デフォルトの名無しさん
2009/02/06(金) 15:48:33反論したい人は穏便にお願いします
Win32API質問箱 Build73
ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/23-76
参考
0194デフォルトの名無しさん
2009/02/06(金) 16:34:340195デフォルトの名無しさん
2009/02/06(金) 16:44:55MSは糞。
0196デフォルトの名無しさん
2009/02/06(金) 18:41:13自分が幸せになれんのに
他人が幸せになれるわけないじゃないか・・・・
チクショー
0197デフォルトの名無しさん
2009/02/06(金) 19:28:250198デフォルトの名無しさん
2009/02/06(金) 20:27:36あるdllをLoadLibrary()したらエラーリターンしてエラーコードが998(ERROR_NOACCESS)でした。
なのでdll作成側にDllMainのDLL_PROCESS_ATTACHでメモリ破壊してると、このエラーコードになると報告したのですが
こっちでも呼び出し元に不備がないか調査して日々報告するように言われております。
呼び出し元の不備でこのエラーになるケースはどのようなものが考えらるでしょうか?
動作環境はXPのSP2です
エラーになるdllがなにしてるかは不明で、そのdllをもらうこともできません
0199デフォルトの名無しさん
2009/02/06(金) 20:28:30しているんですが、pt.x,pt.yにでたらめな座標が入ってしまいます。何故でしょうか?
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam){
CWPSTRUCT *cwps;
cwps=(CWPSTRUCT *)lParam;
if(nCode<0)
return CallNextHookEx(hMyHook,nCode,wParam,lParam);;
if( nCode == HC_ACTION ){
if(cwps->message==WM_MOVE){
POINT pt;
pt.x=LOWORD(cwps->lParam);
pt.y=HIWORD(cwps->lParam);
}
}
return CallNextHookEx(hMyHook,nCode,wParam,lParam);
}
あと同じようなので
if(cwps->message==WM_WINDOWPOSCHANGED)LPWINDOWPOS pos=(LPWINDOWPOS)cwps->lParam;
もpos->xとかにもでたらめな数字入ってしまう。
MSDNも何度も調べたし、色々な組み合わせを何時間もトライ&エラー繰り返してたんですが
やっぱり分かりません。教えてください
0200デフォルトの名無しさん
2009/02/06(金) 20:31:28LoadLibraryするだけの単純なプログラムを書いて渡すっていうのじゃダメなの?
それともそれだけでは再現しないの?
0201デフォルトの名無しさん
2009/02/06(金) 20:35:32マウス座標が cwps->hwnd が示す
ウィンドウ相対だからとか?
0202デフォルトの名無しさん
2009/02/06(金) 20:37:210203デフォルトの名無しさん
2009/02/06(金) 20:45:14WH_GETMESSAGEでかけたフックのコールバックのlParamはMSG構造体なんだが
0204198
2009/02/06(金) 20:47:13>>198です。
エラーが発生する条件が不明でエラーの発生頻度もあまり多くないんです
LoadLibrary()するだけのプログラムでも環境しだいでは再現するかもしれないんですが
再現するかもしれないから、ちょっと試してみてください、って言える関係じゃないんです
0205デフォルトの名無しさん
2009/02/06(金) 20:50:200206デフォルトの名無しさん
2009/02/06(金) 21:45:10ありがとうございます。まったくその通りでした。
MSDNに「1 個の 構造体へのポインタ」としか書いてなかったからCWPSTRUCTでいいと思ってた
今後のために教えてください。そういうのってどこに書いてます?
でも、これだとWM_MOVEが引っかからないから他のフックタイプ使うべきなのね
0207デフォルトの名無しさん
2009/02/06(金) 21:48:01http://msdn.microsoft.com/en-us/library/ms644981(VS.85).aspx
確かに日本語ソースには「1 個の 構造体へのポインタを指定します。」とあるのなww
こやつめハハハ
0208デフォルトの名無しさん
2009/02/06(金) 22:05:21やっぱり英語の方も見たほうがいいですね
0209デフォルトの名無しさん
2009/02/06(金) 22:17:05このまま教えてもらわなかったらまた何時間も悩み続けるところだったよ。ありがとう
0210デフォルトの名無しさん
2009/02/07(土) 01:18:37ありがとうございました
0211デフォルトの名無しさん
2009/02/07(土) 04:18:340212211
2009/02/07(土) 04:20:050213デフォルトの名無しさん
2009/02/07(土) 07:18:02ヾヽヽ
(´▽`) おっさんチュンチュン
ミ_ノ
″″
0214デフォルトの名無しさん
2009/02/07(土) 07:28:09なんでアホはあるもの全部使わなきゃ気がすまねーの?
0215デフォルトの名無しさん
2009/02/07(土) 08:58:01ttp://admins.fxdm.net/cmsware/resource/img/h000/h22/img200608041621414.jpg
After:
ttp://art3.photozou.jp/pub/921/204921/photo/14320292.png
0216デフォルトの名無しさん
2009/02/07(土) 09:27:24(A)
ツリービューで↓を書くと
TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
BorlandC++ が
”警告 W8019 : コードは効果を持たない”と
と吐くのですが、どういう意味なんでしょうか?
(B) また、
SendMessage(hwndPB, PBM_SETRANGE, 0, MAKELPARAM(0,files_read));
と書くと
”警告 W8084 : 優先順位を明確にするためにカッコの使用を推奨”
と吐きます。どう括弧をつければいいのでしょうか?
0217デフォルトの名無しさん
2009/02/07(土) 09:46:22ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devwin32/compile_wrnprecedence_xml.html
あとはbccスレで聞け
0218デフォルトの名無しさん
2009/02/07(土) 10:48:40TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
↓
TreeView_InsertItem(hwndTV, lpis);
ってことじゃないよなw
0219デフォルトの名無しさん
2009/02/07(土) 11:27:08で得たhdcの値は変わることってありますか?
あるとするならどんな時に変わりますか?
0220デフォルトの名無しさん
2009/02/07(土) 11:31:57その使い方が間違い
0221デフォルトの名無しさん
2009/02/07(土) 12:37:17毎回設定がリセットされるのはそのため。
Windows9x系だと、スレッド辺り5つまでしか貰えないから持ちっぱなしはあり得ない。
だがNT系なら多少メモリ喰う程度だけで済むので、今の時代なら構わないのかも。
まあ、CS_OWNDC付けとけばReleaseDCしても設定内容は維持されるから、
そっちを検討した方が良いとは思う。
0222デフォルトの名無しさん
2009/02/07(土) 13:18:49記述文の中の構造体名ごと一斉に消しちゃってるというやっつけ仕事
文中に「構造体」とあればその前に構造体名が省略されてると見るのが吉
0223デフォルトの名無しさん
2009/02/07(土) 14:26:040225デフォルトの名無しさん
2009/02/07(土) 15:04:400226デフォルトの名無しさん
2009/02/07(土) 15:05:110227デフォルトの名無しさん
2009/02/07(土) 15:11:540228デフォルトの名無しさん
2009/02/07(土) 15:54:59お!だからいちいち開放しなきゃいけなかったのか
今更だけど理解した
0229デフォルトの名無しさん
2009/02/07(土) 18:11:32別のチェックボックスのチェックを外すにはどうしたらいいですか?
0230デフォルトの名無しさん
2009/02/07(土) 18:14:290231デフォルトの名無しさん
2009/02/07(土) 18:17:470232デフォルトの名無しさん
2009/02/07(土) 19:09:57(常に1個または0個選択)
0233デフォルトの名無しさん
2009/02/07(土) 19:14:41チェックするボタンの ID として -1 を指定すれば
全部チェックが外れるよ。
0234デフォルトの名無しさん
2009/02/07(土) 19:34:450235デフォルトの名無しさん
2009/02/07(土) 20:22:02ラジオボタンに期待されてるような処理ではないので
チェックボックスにした方がいいかもね。
チェックボックスにも CheckRadioButton 関数って使えるんだっけ?
0236デフォルトの名無しさん
2009/02/07(土) 20:47:330237デフォルトの名無しさん
2009/02/07(土) 21:39:59Windows7のエクスプローラ、
とうとうSysListView32じゃなくなったな
0238デフォルトの名無しさん
2009/02/08(日) 00:34:39匹数に幼虫異です
0239デフォルトの名無しさん
2009/02/08(日) 03:32:09な、なんだってー
0240デフォルトの名無しさん
2009/02/08(日) 08:40:47Mouseを使います。
0241デフォルトの名無しさん
2009/02/08(日) 10:35:060242デフォルトの名無しさん
2009/02/08(日) 14:04:06タスクバーがTabやToolbarじゃなくなってたのは確認した
そろそろカスタマイズ系の常駐ソフトもお終いか?
0243デフォルトの名無しさん
2009/02/08(日) 14:30:08byteOutPut=(BYTE)GetPrivateProfileInt(_T("test"),_T("valuets"),1,_T("test.ini"));
wsprintf(tt,"%d",byteOutPut);
MessageBox(NULL,tt,"チェック",MB_RTLREADING);
test.ini
[test]
valuets = 7
としても、値が常に「1」がかえってしまいます。
test.iniに記載されている「7」を取得したいんですが・・。
0244デフォルトの名無しさん
2009/02/08(日) 14:33:190245デフォルトの名無しさん
2009/02/08(日) 14:34:14説明は省くけどtest.iniをフルパス(C:\...\test.ini)で指定しても駄目かな?
0246デフォルトの名無しさん
2009/02/08(日) 14:36:14ttp://msdn.microsoft.com/en-us/library/ms724345(VS.85).aspx
>If this parameter does not contain a full path to the file,
>the system searches for the file in the Windows directory.
0247デフォルトの名無しさん
2009/02/08(日) 15:36:42こういう奴は大人しくレジストリ使っとけばいいのに……
0248デフォルトの名無しさん
2009/02/08(日) 19:50:43フルパスで指定してもダメです。
_Tをなくしてもダメです。。
0249デフォルトの名無しさん
2009/02/08(日) 20:09:46>>245が解決法書いてるのに……
>>247が代替案まで出してるのに……
なにこの子?
0250デフォルトの名無しさん
2009/02/08(日) 20:11:540251デフォルトの名無しさん
2009/02/08(日) 20:14:110252デフォルトの名無しさん
2009/02/08(日) 20:37:04事故解決の変換ミス?
0253デフォルトの名無しさん
2009/02/08(日) 21:37:270254デフォルトの名無しさん
2009/02/08(日) 21:41:030255デフォルトの名無しさん
2009/02/08(日) 21:54:20○自己を解決
0256デフォルトの名無しさん
2009/02/08(日) 22:19:400257デフォルトの名無しさん
2009/02/08(日) 22:33:13例えばどのレス?
多すぎってからには10レスくらいすぐに安価出せるな?
0258デフォルトの名無しさん
2009/02/08(日) 22:42:450259デフォルトの名無しさん
2009/02/08(日) 22:45:14どう検出するのでしょうか?
ラン内・ネットのロード量など。
また、よく、ダウンロードのインジケータなど
不思議に感じます。
APIで解決できるのでしょうか?
0260デフォルトの名無しさん
2009/02/08(日) 22:59:47お前のような奴の事だよ。
0261デフォルトの名無しさん
2009/02/08(日) 23:03:01速度=単位時間に流れるデータ量
0262デフォルトの名無しさん
2009/02/08(日) 23:05:10パフォーマンスカウンタ
カテゴリ名:Network Interface
インスタンス名:有効なNIC
カウンタ名:Received Bytes/Sec
とか見れば
0263デフォルトの名無しさん
2009/02/08(日) 23:15:58APIにこだわるなら
IP Helper Functions
あたり
0264デフォルトの名無しさん
2009/02/08(日) 23:17:17予想の範疇のレスすんな。
そう突っ込まれるだろうから10レスくらい挙げてみろって加えたんだよ。
0265デフォルトの名無しさん
2009/02/08(日) 23:36:28いきなりハンドルの値が変わってHeapAllocで落ちました。
この現象に心当たりある方はいませんか?
0266265
2009/02/08(日) 23:41:06にらんだとおりオーバーフローだったみたいです
0267デフォルトの名無しさん
2009/02/08(日) 23:45:34>>262
>>263
ありがとうございます。
0268デフォルトの名無しさん
2009/02/09(月) 10:20:410269デフォルトの名無しさん
2009/02/09(月) 11:03:210270デフォルトの名無しさん
2009/02/09(月) 11:23:020271デフォルトの名無しさん
2009/02/09(月) 11:39:380272デフォルトの名無しさん
2009/02/09(月) 11:46:030273デフォルトの名無しさん
2009/02/09(月) 12:03:550274デフォルトの名無しさん
2009/02/09(月) 12:06:060275デフォルトの名無しさん
2009/02/09(月) 12:07:390276デフォルトの名無しさん
2009/02/09(月) 12:54:49ありがとうございました。
0277デフォルトの名無しさん
2009/02/09(月) 13:01:460278デフォルトの名無しさん
2009/02/09(月) 13:05:490279デフォルトの名無しさん
2009/02/09(月) 22:02:44の様に「→」が表示されるようになってしまったんですが
これをなおすにはどうしたらいいですか?「→」は青っぽいやじるしです
0280デフォルトの名無しさん
2009/02/09(月) 22:05:35そのコードを書いているソフトのスレで聞きなさい。
0281デフォルトの名無しさん
2009/02/09(月) 22:06:090282デフォルトの名無しさん
2009/02/09(月) 22:06:360283デフォルトの名無しさん
2009/02/09(月) 22:12:06→は改行文字が文字化けしてるんだろうね
だとしたら文字コードの問題
0284デフォルトの名無しさん
2009/02/09(月) 22:14:48>>280だな
0285デフォルトの名無しさん
2009/02/09(月) 22:46:470286デフォルトの名無しさん
2009/02/09(月) 23:31:530287デフォルトの名無しさん
2009/02/09(月) 23:36:180288デフォルトの名無しさん
2009/02/10(火) 01:09:47特に初心者の釣り師にオススメ
0289デフォルトの名無しさん
2009/02/10(火) 01:13:17釣りの意味分かってないんだろうね
「ぷろぐらみんぐ」は小学生にはまだむずかしいから、おとなしくおうちでかめんらいだーごっこやってな?
0290デフォルトの名無しさん
2009/02/10(火) 01:41:240291デフォルトの名無しさん
2009/02/10(火) 02:52:50どんな糞にも丁寧に罵声を浴びせた結果がこれだ
0292デフォルトの名無しさん
2009/02/10(火) 03:42:520293デフォルトの名無しさん
2009/02/10(火) 10:21:37WM_CHAR.WM_IME_CHAR
↓
文字コード変換
↓
☆配列等へ保持
↓
☆から文字コード変換
↓
ウィンドウ内に描画
しか方法はありませんか?
0294デフォルトの名無しさん
2009/02/10(火) 10:25:420295デフォルトの名無しさん
2009/02/10(火) 12:45:229xを捨ててUNICODEにしても良ければ、
WM_IMECHAR無視してWM_CHAR 1つでも困らないと思う。
もっと言えば、中でUTF-8にして保持するなら、WM_CHARよりも
UTF-32でやってくるWM_UNICHAR 1つのほうがやりやすいはず。ただしXPからだけど。
それとIMM API関数などを使って変換文字列を取得するのとどっちがいいかは微妙なとこだが。
0296デフォルトの名無しさん
2009/02/10(火) 14:17:39GetActiveWindow()、GetForegroundWindow()的なのがあるとありがたいのですが…
0297デフォルトの名無しさん
2009/02/10(火) 14:23:54WM_MDIGETACTIVE
0298デフォルトの名無しさん
2009/02/10(火) 14:32:53どうもです。
ついでにお願いします。そのメッセージの結果をAPIで取りたいのですがどう呼べばよいでしょうか。
プラグイン的なものからなのでAPIを呼ぶしかできないのです。
0299デフォルトの名無しさん
2009/02/10(火) 14:34:25SendMessage
0300デフォルトの名無しさん
2009/02/10(火) 14:49:380301デフォルトの名無しさん
2009/02/10(火) 14:54:00___ ━┓
/ ― \ ┏┛
/ (●) \ヽ ・
/ (⌒ (●) /
/  ̄ヽ__) /
/´ ___/
| \
| |
0302デフォルトの名無しさん
2009/02/10(火) 18:38:01HWND hActiveWnd;
// hClient を Client Window Handle として、
hActiveWnd = (HWND)SendMessage( hClient, WM_MDIGETACTIVE, 0, 0);
で、自分は使っている。hClient の意味が分からないなら、「猫でも
分かるプログラミング」を見るように。コードは古いが、意味合いは
分かるでしょう。
0303デフォルトの名無しさん
2009/02/10(火) 18:54:26どーしても保持する必要があるなら仕方ないが、オレなら必要になった時にUTF-8に変換する
0304デフォルトの名無しさん
2009/02/10(火) 22:57:38それがダメでも、ピクセル単位で完全透過部分と半透過部分を共存させた1つのウィンドウを作る方法ってありますか?
0305デフォルトの名無しさん
2009/02/10(火) 23:03:46何のためにHDCとBLENDFUNCTIONが引数にあるのかを考えれば判るだろ
0306デフォルトの名無しさん
2009/02/10(火) 23:28:51アルファ値が0のピクセルはリージョンのように完全に透過するが。
0307デフォルトの名無しさん
2009/02/10(火) 23:36:000308デフォルトの名無しさん
2009/02/11(水) 00:06:040309デフォルトの名無しさん
2009/02/11(水) 00:59:16見せてもらえませんか?家のではどう見ても透過してないんですが・・・
ちなみにこうやってます。
WS_EX_LAYEREDスタイルを追加;
HDC hdc = ::GetDC(NULL);
my_hdc bmpdc = ビットマップのDC;
POINT zero = {0,0};
SIZE bsize = {画像の幅,高さ};
DWORD flags = ULW_COLORKEY|ULW_ALPHA;
COLORREF colkey = RGB(255,255,255);
BLENDFUNCTION bf;
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = AC_SRC_ALPHA;
bf.SourceConstantAlpha = 255;
::UpdateLayeredWindow(ウィンドウハンドル,hdc,ウィンドウの左上のPOINT*,&bsize,bmpdc,&zero,colkey,&bf,flags);
::ReleaseDC(NULL,hdc);
0310デフォルトの名無しさん
2009/02/11(水) 01:25:290311デフォルトの名無しさん
2009/02/11(水) 01:28:28UpdateLayeredWindow は obsolete
SetLayeredWindowAttributes を使おう
0312デフォルトの名無しさん
2009/02/11(水) 01:30:21ttp://msdn.microsoft.com/ja-jp/library/ms997507.aspx
0313デフォルトの名無しさん
2009/02/11(水) 01:45:21(゚Д゚)ハァ?
0314デフォルトの名無しさん
2009/02/11(水) 01:58:38それっぽい情報というとこれくらいかなあ
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/5cc9a772-5174-4180-a1ca-173dc81886d9/
結局原因はよくわからないみたいだけど、
もし、同じ現象なら、文字セットをマルチバイト文字セットにするか、
targetver.h 内の _WIN32_WINNT の定義を
#define _WIN32_WINNT 0x0500
にしてやると回避できるみたいだけど
0315デフォルトの名無しさん
2009/02/11(水) 02:04:060316デフォルトの名無しさん
2009/02/11(水) 02:13:490317デフォルトの名無しさん
2009/02/11(水) 02:21:560318デフォルトの名無しさん
2009/02/11(水) 02:33:220319デフォルトの名無しさん
2009/02/11(水) 02:54:120320デフォルトの名無しさん
2009/02/11(水) 08:55:22メモ帳で開いて確認しる
終わったら上書き保存をお忘れなく\(^o^)/
0321デフォルトの名無しさん
2009/02/11(水) 10:17:23最近、ANSIビルドのソフトをいじって、キー入力・表示・コピペはUnicodeに
対応させたものを作った。Unicodeなファイル名は扱えないが、これって
何ビルドだろうね。
0322デフォルトの名無しさん
2009/02/11(水) 10:29:00ANSIビルドでかまわない。
__wargv
0323デフォルトの名無しさん
2009/02/11(水) 10:37:04>>311実際にどうなります?画像に合わせてウィンドウの形を変えたいんですが・・・?
>>312それらはもう見てその通りにやってるつもりだったんですが・・・うーん
0324デフォルトの名無しさん
2009/02/11(水) 10:52:54「プログラムは、間違いなく自分がコーディングした通りに動く。
しかし、それが自分が想定した通りであるとは限らない。」
0325デフォルトの名無しさん
2009/02/11(水) 10:54:00それが判断基準?
あ、もちろんIsWindowUnicodeはTRUE返すから。じゃないとWM_CHARで
Unicodeが受け取れない。APIもA/W両方インポートしてる。(が、Win9xでも動く。)
0326デフォルトの名無しさん
2009/02/11(水) 11:11:560327デフォルトの名無しさん
2009/02/11(水) 11:23:270328デフォルトの名無しさん
2009/02/11(水) 11:54:210329デフォルトの名無しさん
2009/02/11(水) 13:37:29お前それ言いたかっただけちゃうんかと
0330デフォルトの名無しさん
2009/02/11(水) 13:46:050331デフォルトの名無しさん
2009/02/11(水) 14:32:40例の基地害だろ、もう構うな
0332デフォルトの名無しさん
2009/02/11(水) 14:48:10ハイブリッド、でいいんじゃね?まあ俺もそういうの作ったことあるけど。
例えばXPのEditコントロールはANSIでもUnicodeの動作をするバグがあるので
Win9xでも動くように作ろうとすると、全体的にはANSIだけど部分的にA/W切り替える必要性が出てくるんだよな。
というかこのバグを無視してANSIアプリのくせにVisualStyle対応してるソフトが多すぎ。
0333デフォルトの名無しさん
2009/02/11(水) 16:01:14バグについて詳しく
0334デフォルトの名無しさん
2009/02/11(水) 16:14:020335カイロ
2009/02/11(水) 16:24:29<やりたいこと>
COM3:送信側で、Tera Termで、文字を送信
COM4:受信側 コマンドプロンプトで、作ったプログラムを動かして受信し、受信した文字を表示する。
<受信プログラムの流れ>
�@COM4をオープン
�A通信設定
�B受信するまで、待つ
�C受信したら、文字を表示。
●受信するまで、待つことが出来ず、フフフ・・・といった文字列が
表示されてしまいます。
どうしたら、受信するまで待つように出来るのでしょうか?
0336デフォルトの名無しさん
2009/02/11(水) 16:57:44フフフ・・・
0337デフォルトの名無しさん
2009/02/11(水) 17:00:410338デフォルトの名無しさん
2009/02/11(水) 17:00:44コードさらせないのか、待ってるとこだけでも。
フフフ・・はデバッグ環境での未初期化のバッファ
0339カイロ
2009/02/11(水) 17:11:00以下コードの抜粋です。
ReadFileの第5引数(最後の引数)にNULLを入れると、受信するまで待つんだと思ったんですが、
送信していないのに、受信した文字列が表示されます。
☆ポートを開いているところ
int errorCode;
HANDLE handle;
handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_FLAG_OVERLAPPED, // 非同期 I/O を許す//☆同期にしてみるFILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);
☆通信設定するところ。(省略)
☆受信するところ。
char data[14];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;
ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
printf("受信した文字列%s", &data);
0340デフォルトの名無しさん
2009/02/11(水) 17:12:28どんな関数を使えばいいですか?IPは入力欄が4つあるので、どうやって
取得するんですか?
0341デフォルトの名無しさん
2009/02/11(水) 17:15:12dwReadを確認してないみたいだけど?
0342デフォルトの名無しさん
2009/02/11(水) 17:15:33エラーチェックぐらいしろよ
0343デフォルトの名無しさん
2009/02/11(水) 17:15:500344デフォルトの名無しさん
2009/02/11(水) 17:16:140345デフォルトの名無しさん
2009/02/11(水) 17:17:12Win32 and COM Development - User Interface
- Windows Controls - Control Library
とりあえず、WindowsSDKのドキュメントの上記辺りを一通り目を通しておけ。
0346デフォルトの名無しさん
2009/02/11(水) 17:20:44面倒だから教えてよ
0347デフォルトの名無しさん
2009/02/11(水) 17:22:540348デフォルトの名無しさん
2009/02/11(水) 17:26:28待機とは関係ないんだが
FILE_FLAG_OVERLAPPEDを指定したら
ReadFileの最後はNULLじゃ駄目なんじゃないか
0349カイロ
2009/02/11(水) 17:28:52>dwReadを確認してないみたいだけど?
dwReadは、読み取ったバイト数が入るんですよね。
どうやって確認すればいいのでしょうか?
聞いてばかりで、すみません。
0350デフォルトの名無しさん
2009/02/11(水) 17:29:010351デフォルトの名無しさん
2009/02/11(水) 17:29:35つかGetLastErrorぐらいしろ
0352デフォルトの名無しさん
2009/02/11(水) 17:32:440353デフォルトの名無しさん
2009/02/11(水) 17:38:10dwReadが0だったらどうなると思う?
0354カイロ
2009/02/11(水) 17:46:09>待機とは関係ないんだが
>FILE_FLAG_OVERLAPPEDを指定したら
>ReadFileの最後はNULLじゃ駄目なんじゃないか
調べてみたら、通信プログラムでは、
FILE_FLAG_OVERLAPPEDではなく、
属性なしの FILE_ATTRIBUTE_NORMALを指定するのが正しいようですね。
>>353
>dwReadが0だったらどうなると思う?
0だったら、まだ、受信してない状態ってことですか?
0355デフォルトの名無しさん
2009/02/11(水) 18:01:040356デフォルトの名無しさん
2009/02/11(水) 18:08:16dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?
0357カイロ
2009/02/11(水) 18:49:06>dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?
やってみました。
以下、修正後のソースの一部です。
☆ポートを開いているところ
handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);
☆受信するところ。
char data[1];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;
while(1) {
ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
if(dwRead != 0) {
printf("%c", data[0]);
}
}
0358カイロ
2009/02/11(水) 18:49:39なんとか、待機するところまでは、うまくいきました。
Tera Termで入力した文字が、表示されました。
ありがとうございます。
ですが、表示された文字が文字化けしていて、以下のような感じで、表示されます。
解決方法をどなたか、教えてください。
Bャツ・・・・・
0359デフォルトの名無しさん
2009/02/11(水) 18:55:070360デフォルトの名無しさん
2009/02/11(水) 18:57:560361デフォルトの名無しさん
2009/02/11(水) 18:59:05受信したバイトの最後にゼロ入れとけ
0362360
2009/02/11(水) 19:01:200363カイロ
2009/02/11(水) 19:15:15テラターム側のボーレートの値が受信プログラムで設定した値と違っていたので、
文字化けしていたようです。
同じ値にしたら、ちゃんとした文字が出るようになりました!!
これで、すべて解決しました!!
みなさま、どうもありがとうございました。
数ヶ月前から、出来ずに困っていたのですが、
なんとか、動くものが出来ました。
よかったです。(TーT)
0364デフォルトの名無しさん
2009/02/11(水) 19:16:25そして死ね
0365デフォルトの名無しさん
2009/02/11(水) 19:22:47死ねは酷くね?
せめて成仏しろとか永眠しなさいと地獄に落ちろ、位にしといてやれよ。
0366デフォルトの名無しさん
2009/02/11(水) 19:34:180367デフォルトの名無しさん
2009/02/11(水) 19:34:440368デフォルトの名無しさん
2009/02/11(水) 19:49:070369デフォルトの名無しさん
2009/02/11(水) 19:56:01ありがとうございます!、出来ました。
#define _WIN32_WINNT 0x0500に変更で解決しました。
本当にありがとうございました。
0370デフォルトの名無しさん
2009/02/11(水) 20:27:20合ってるかどうかってどうやって判断してるんだろう
0371デフォルトの名無しさん
2009/02/11(水) 20:31:04拾うルーチンを書きました。が、XP や Vista + ATOK なら期待通り動作するのですが、
Vista + MS-IME では全く機能しません。
TSF 絡みっぽいところまでは推測がつくのですが、その先がさっぱりです。
そのあたりの仕組みについて記述している資料があれば、教えてください。
0372デフォルトの名無しさん
2009/02/11(水) 21:11:37分からんけど。
例えば、相手が送ってくるデータが分かっていれば、
ボーレートを色々変えてみて正しく読めるのを探すとか?
0373デフォルトの名無しさん
2009/02/11(水) 21:17:10それで解決したなら、後からメンバが増えたせいだな。
http://msdn.microsoft.com/en-us/library/bb760256.aspx
_WIN32_NTが0x501以上だとlpReservedメンバが追加されるが、
これはNULLじゃないといけないと書いてある。
ところが、108のコードではそれが欠けていたのでうまくいかなかった。
まあ、良くある話だ。_WIN32_NTほかバージョン定義をきちんと定義して自己防衛するしかない。
0374デフォルトの名無しさん
2009/02/11(水) 21:20:27MSが何をしたいのかさっぱり分からん
0375デフォルトの名無しさん
2009/02/11(水) 21:34:31IMR_DOCUMENTFEED固有の話はないけれど。
http://d.hatena.ne.jp/NyaRuRu/20070308
http://d.hatena.ne.jp/NyaRuRu/20070309
0376デフォルトの名無しさん
2009/02/11(水) 21:53:34そんな単純な話でもない
もともと>>314の参照先はちゃんと0初期化してて
マルチバイトでは動作するのに、Unicode では
動作しないって質問だし、自分でやってみても
うまくいかなかった
OSはVistaなのでOS側の問題とかはないはずなんだけど
0377デフォルトの名無しさん
2009/02/11(水) 22:03:12ありがとうございます。なるほど、テキストストアっぽい単語が関係ありそうですね。
0378デフォルトの名無しさん
2009/02/11(水) 22:07:09うおすまん、リンク先まで読んでいなかった。
0379デフォルトの名無しさん
2009/02/11(水) 22:13:08manifestが無くてcomctl32.dll ver5系を使ってたってオチだろ
多分ver5系はcbSizeにTOOLINFO::lpReservedのサイズを含めてはいけない
0380デフォルトの名無しさん
2009/02/11(水) 22:30:45まさにそのとおりでした
なんか昨日から気になってたんだけど、ようやくスッキリした
ありがとう
0381デフォルトの名無しさん
2009/02/11(水) 22:33:44NULL以外の適当な値を入れても動くみたいだし
0382デフォルトの名無しさん
2009/02/11(水) 22:37:470383デフォルトの名無しさん
2009/02/11(水) 22:41:18D:\> E:
と入力する。
0384デフォルトの名無しさん
2009/02/11(水) 22:42:300385デフォルトの名無しさん
2009/02/11(水) 22:42:46char path[MAX_PATH] = "D:\dokoka";
char drive[MAX_PATH];
char dir[MAX_PATH];
char name[MAX_PATH];
char exp[MAX_PATH];
_splitpath( path, drive, dir, name, exp);
drive[0] = 'E';
_makepath( path, drive, dir, name, exp);
ネタなので反論は許さない。
0386デフォルトの名無しさん
2009/02/11(水) 22:47:14expって何だよw
エクスプローラの略か?
0387デフォルトの名無しさん
2009/02/11(水) 22:53:01うっせw 突っ込むなって言ったろw pじゃなくてtだったよ、うろ覚えすぎたw
よく考えたら拡張子だからエクステンションの略なのか。
0388デフォルトの名無しさん
2009/02/11(水) 22:55:09MSDN Library
↓
Win32 and COM Development
↓
System Services
↓
File Services
↓
File Systems
↓
Volume Management
↓
Volume Management Reference
↓
Volume Management Functions
にお探しのAPIがあると思うよ
0389デフォルトの名無しさん
2009/02/11(水) 22:59:420390デフォルトの名無しさん
2009/02/11(水) 23:18:480391デフォルトの名無しさん
2009/02/11(水) 23:20:41_splitpath, _makepath
こんなのあったんか、知らんかったぽ
0392デフォルトの名無しさん
2009/02/11(水) 23:22:54まず質問者が最低限自分で調べてから質問する人かどうかを見極めるために
>ドライブレターを変更するにはどうしたらいいんでしょうか?
という質問から「api ドライブレターを変更」でググったら上位3件(1件重複あり)全てにAPI名が出てきたんだぞ
ここでイジワル心が働いた
今度はそのAPI名でまたググって英語版MSDN Libraryに飛んで
ツリー形式になってる項目を一つ一つコピペしてrootへ向かってだなあ・・・
0393デフォルトの名無しさん
2009/02/11(水) 23:28:16お前のツンデレっぷりに感動したので、付き合ってください
0394デフォルトの名無しさん
2009/02/11(水) 23:29:41( ゚ω゚ ) お断りします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
0395デフォルトの名無しさん
2009/02/11(水) 23:35:540396デフォルトの名無しさん
2009/02/11(水) 23:38:050397デフォルトの名無しさん
2009/02/11(水) 23:38:09ツンデレならWine使いかもしれないし。
0398デフォルトの名無しさん
2009/02/11(水) 23:40:35>ツンデレならWine使いかもしれないし
詳しく
0399デフォルトの名無しさん
2009/02/11(水) 23:47:00LinuxでWinAPIを実装してWindowsアプリケーションが動くというやつ。
使ったことないから出来は知らないけど。
0400デフォルトの名無しさん
2009/02/11(水) 23:54:22使ったこともないのにググった知識で答えるのは無駄だろ。
質問者が一番知識があるという状態をよく目にする。
0401デフォルトの名無しさん
2009/02/11(水) 23:56:160402デフォルトの名無しさん
2009/02/11(水) 23:59:283人家族月10万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて
0403デフォルトの名無しさん
2009/02/12(木) 00:01:463人家族月0.1万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて
0404デフォルトの名無しさん
2009/02/12(木) 00:02:460405402
2009/02/12(木) 00:02:550406デフォルトの名無しさん
2009/02/12(木) 00:35:45うわあ…
0407108
2009/02/12(木) 00:43:34出力ウィンドウのデバック表示で
C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\comctl32.dll' を読み込みました
C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll' を読み込みました
と2種類のバージョンのcomctl32.dllを読み込んだように表示されているんですが、これは関係あるのでしょうか?
最近Win32APIプログラミング始めた素人なので変な質問だったらすいません。
0408デフォルトの名無しさん
2009/02/12(木) 01:03:24Side-by-Sideでググっとけ
てか、内部or外部のXMLで、同名DLLのバージョンを切り替えるなんてアホだろ
誰が考えたんだよ全く・・・
0409デフォルトの名無しさん
2009/02/12(木) 01:26:10CommonControl 6.0を使用するための具体的な対処ということなら、
以下をstdafx.hあたりに記載しとけばいけるばず
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
0410デフォルトの名無しさん
2009/02/12(木) 01:38:01ちなみにお前だったらどういうのがいいと思うのか聞きたい。
0411デフォルトの名無しさん
2009/02/12(木) 02:05:230412デフォルトの名無しさん
2009/02/12(木) 10:45:470413デフォルトの名無しさん
2009/02/12(木) 13:07:34それともWIn32API?
0414デフォルトの名無しさん
2009/02/12(木) 14:51:53またその他に適した関数はありますか?
0415デフォルトの名無しさん
2009/02/12(木) 14:57:590416デフォルトの名無しさん
2009/02/12(木) 15:01:48ありがとうございます〜
さっそく調べてみます!
0417デフォルトの名無しさん
2009/02/12(木) 15:02:220418デフォルトの名無しさん
2009/02/12(木) 15:24:14それにスワップ無しでランダムアクセスするようなアプリを
動作させることが出来る商用パッケージOSは今のところ無い。
(近い将来出るかも知れないが)
Windowsの場合VirtualAllocとか使って、シリコンメモリに
領域を確保したつもりになってももどうせディスクにスワップ
されるので、1Gバイトのファイルを作成し、それにランダム
アクセスするコードと速度面では大差が無い。
0419デフォルトの名無しさん
2009/02/12(木) 15:37:20使ったこと無いから詳しくは知らんがAWE APIは?
0420デフォルトの名無しさん
2009/02/12(木) 15:45:32そうなんですか><
すみません。GlobalAllocもVirtualAllocも500Mくらいを超えたらエラーになってしまうんですが
一度に取ってもダメで500Mを2回に分けても2回目のVirtualAllocでエラーになります。
ちなみにVirtualAllocで1回で取れる最大サイズってなんぼなんですか?
0421デフォルトの名無しさん
2009/02/12(木) 15:54:29本当に欲しければ、VirtualLockがあるよ。Unix系だってmlockがあるだろう。
果たして使いこなせるかどうかはともかく。
0422デフォルトの名無しさん
2009/02/12(木) 16:27:46環境によるし、その時のアドレス空間の空き状況にもよる。
0423デフォルトの名無しさん
2009/02/12(木) 16:35:09そうみたいですね・・・
いちおうメモリは4GBあるのですが、1MBづつ取ると970MBの所でエラーになりました
タスクマネージャの利用可能メモリは3.4GBあるのですが
2GBくらい取れないんですか?
0424デフォルトの名無しさん
2009/02/12(木) 16:37:58もうちょっと大きくとれないか?
0425デフォルトの名無しさん
2009/02/12(木) 16:38:48環境によるし、その時のアドレス空間の空き状況にもよる。
0426デフォルトの名無しさん
2009/02/12(木) 17:03:25そこをプログラムで使用中の上、連続したエリアを取りたいんだろうからそんなもんだな
0427デフォルトの名無しさん
2009/02/12(木) 18:40:030428デフォルトの名無しさん
2009/02/12(木) 18:43:400429デフォルトの名無しさん
2009/02/12(木) 18:45:440430デフォルトの名無しさん
2009/02/12(木) 18:57:290431デフォルトの名無しさん
2009/02/12(木) 19:00:540432デフォルトの名無しさん
2009/02/12(木) 19:02:39これタスクマネージャのコミットチャージの最大値までしか取れないみたいですが
物理メモリが少ない方のPCはここの値がちょっと大きいのですが
これってどこで調整できますか?まあAPIとは関係ないっぽい話になっちゃいますが・・・
0433デフォルトの名無しさん
2009/02/12(木) 19:03:090434デフォルトの名無しさん
2009/02/12(木) 19:06:560435デフォルトの名無しさん
2009/02/12(木) 19:12:15強制的にramdiskとしてメインメモリより1GB搾取して
それをおれおれ専用メモリにしたら?
でも、どうやればよいのしらん
0436デフォルトの名無しさん
2009/02/12(木) 19:14:13しばらくお待ちください
0437デフォルトの名無しさん
2009/02/12(木) 19:15:02合計はスワップファイル+物理メモリでしょ。
0438デフォルトの名無しさん
2009/02/12(木) 19:21:46そもそもDirectX自体、広義にはWin32 APIの一部分ということはともかく、
DirectXの一部みたいだけど、GDI/GDI+の置き換えとか言っているし、
どっちで質問するのがふさわしいかまだよく分かんないね。
0439デフォルトの名無しさん
2009/02/12(木) 19:31:47DirectXスレ → Win32APIスレへ行け
って言われるんですね、分かります
0440デフォルトの名無しさん
2009/02/12(木) 19:34:340441デフォルトの名無しさん
2009/02/12(木) 19:38:200442デフォルトの名無しさん
2009/02/12(木) 19:38:32スレ立てできないくせにレスしないで下さい。ウザいだけです。
0443デフォルトの名無しさん
2009/02/12(木) 19:42:29(´,_ゝ`)プッ
0444108
2009/02/12(木) 20:16:11ありがとうございます、勉強になりました。
>>409
ありがとうございます。
CommonControl 6.0を使用出来るようになりました。
0445デフォルトの名無しさん
2009/02/12(木) 20:21:02てかIUIFrameworkでググっても日本語のサイトが1件も出ねぇw
0446デフォルトの名無しさん
2009/02/12(木) 20:26:02考えていると脳みそが沸騰して訳が分からなくなったので質問させていただきます。
質問
・VISTAのAero ON でウィンドウを作成する前にそのサイズを知る方法。
開発環境 SDK/VC++ 2005
問題の解決には、通常GetSystemMetrics()かAdjustWindowRectEx()を使うと思います。
ところが、VISTAのAeroが有効なときは奇妙な現象が起こります。
そこで実験してみました。
dwStyleA = (WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CLIPCHILDREN);
dwStyleB = dwStyleA | WS_THICKFRAME;
の設定で、100,100 (800x600)をAdjustWindowRectEx すると
dwStyleA: 97,76 806x627
border w,h: 3,3
dwStyleB: 92,71 816x637
border w,h: 8,8
という結果が返ります。各borderは、次の式で求めています。
横は(ウィンドウ幅-クライアント幅)/2
縦は(ウィンドウ高-クライアント高-::GetSystemMetrics(SM_CYSMCAPTION))/2
一見して当たり前で、作成されたウィンドウをキャプチャしてサイズを確認した
ところ、確かに2000/Xp/VISTA aero off の時は見た目もこの通りになります。
しかし、VISTAのaeroが有効な環境では、dwStyleAでもdwStyleBでも、
見た目はdwStyleBと同じ(!)になるのです。
しかも、GetSystemMetricsもAdjustWindowRectExもAero on/off で同じ値を返します。
もちろん作成後に GetWindowRect()した場合、AdjustWindowRectEx()と
整合性のある値(つまり見た目とは違った値)を返します。
これがAPIのバグでないとしたら、dwm.exeが独自にウィンドウを装飾している
ものと思われますが、その値を取得する方法がわかりません。
1.Aero on時に見た目通りのウィンドウサイズを取得する方法は?
2.Aero on時のウィンドウサイズは常に thickframeと同じと見なしていいの?
3.2が良いとした場合、Aero on を手軽に知る方法は?
0447デフォルトの名無しさん
2009/02/12(木) 20:54:38あまりに面倒臭そうで試す気にもならんが。
ちなみに、AdjustWindowRectExは
必要なクライアント領域を確保するのに指定すべきウィンドウサイズを求めるAPIだから、
その周りのフレームについては何の保証もしていないと思う。
0448デフォルトの名無しさん
2009/02/12(木) 20:57:200449デフォルトの名無しさん
2009/02/12(木) 21:06:00theme系APIというと、uxtheme.dll のあれですね?
チェックしてみます。ありがとうございました。
例えば>>446は、800x600のクライアント領域を指定して、AdjustWindowRect を呼び出すことで
作成されるはずのウィンドウの大きさを取得してチェックしたものですが、問題なのはそれが見た目の
サイズと異なってしまうことなのです。
見た目だけの問題なので、だれも気にしないのかな・・・
0450デフォルトの名無しさん
2009/02/12(木) 21:56:02必死で買ったエロ本を母親に捨てられた
恥ずかしいから怒る事もできず
できるだけゴミ箱から回収するように頑張っていた
しかし母親が何度も何度も捨てるもんだから
ついに親父がブチ切れた
切れた親父は母親に
「これは!この本は!」とエロ本をゴミ箱からすくい上げ
見せながら力説してくれた
「これはな!このくらいの年のガキにとっちゃ!
金払えば買えるもんじゃないんだ!お前はなぜこれを捨てるんだ!」
俺は感動した
親父はエロ本を俺に投げつけて
「もう絶対捨てさせないし隠す必要もないからな!」
と言ってくれた
俺は泣いた
でも次の日にエロ本は親父の部屋にあった
何か複雑な気持ちだった
0451デフォルトの名無しさん
2009/02/12(木) 22:13:29COMだとネイティブだけでホストするのめっさめんどくせぇじゃねぇか・・・
0452デフォルトの名無しさん
2009/02/12(木) 22:29:42WindowProc書いてSendMessage連発する方が面倒
0453デフォルトの名無しさん
2009/02/12(木) 22:30:29今日VIPでできたコピペじゃないか
0454デフォルトの名無しさん
2009/02/12(木) 22:33:19はいはい良かったね
さっさとVIPへ帰れ
0455デフォルトの名無しさん
2009/02/13(金) 00:29:230456デフォルトの名無しさん
2009/02/13(金) 00:37:530457デフォルトの名無しさん
2009/02/13(金) 00:55:290458デフォルトの名無しさん
2009/02/13(金) 17:59:290459デフォルトの名無しさん
2009/02/14(土) 16:14:290460デフォルトの名無しさん
2009/02/14(土) 16:19:570461デフォルトの名無しさん
2009/02/14(土) 16:42:540462デフォルトの名無しさん
2009/02/14(土) 17:20:300463デフォルトの名無しさん
2009/02/15(日) 00:25:44http://circus.main.jp/next.html
2ちゃんにもスレがあるよ。
http://gimpo.2ch.net/test/read.cgi/drama/1098881123/901-1000
0464デフォルトの名無しさん
2009/02/15(日) 01:47:50http://pc11.2ch.net/test/read.cgi/tech/1234626656/
0465デフォルトの名無しさん
2009/02/15(日) 05:07:590466デフォルトの名無しさん
2009/02/15(日) 05:30:18WM_SYSCOMMANDのように最大化動作の直前に知りたいのですが.
0467デフォルトの名無しさん
2009/02/15(日) 07:03:310468デフォルトの名無しさん
2009/02/15(日) 09:28:320469デフォルトの名無しさん
2009/02/15(日) 11:44:50かつ DefWindowProc にデフォルト処理をさせなけりゃおk
0470デフォルトの名無しさん
2009/02/15(日) 11:47:26×0xF012
○0xF032
0471デフォルトの名無しさん
2009/02/15(日) 12:10:42/// Sent when form maximizes because of doubcle click on caption
///</summary>
SC_MAXIMIZE2 = 0xF032,
これですね、ありがとうございます。
膨大で、やりたいことやろうと思うとすごく難しい
0472デフォルトの名無しさん
2009/02/15(日) 12:18:12///</summary>
SC_RESTORE2 = 0xF122,
これも忘れずになー
0473デフォルトの名無しさん
2009/02/15(日) 12:20:52ウィンドウシェードでも実装したいのか?
0474デフォルトの名無しさん
2009/02/15(日) 12:30:370475デフォルトの名無しさん
2009/02/15(日) 12:35:30当時最大化ボタンにマウスカーソルを合わせた時ツールチップで「フルスクリーン」と出るようにもしたかったけどそっちは挫折した
0476デフォルトの名無しさん
2009/02/15(日) 12:41:130477デフォルトの名無しさん
2009/02/15(日) 13:32:27普通にWM_SYSCOMMAND/SC_MAXIMIZEが飛んでくるのを処理すればいいし自ら答え出してるだろ
で、SC_MAXIMIZE2とか定義してる馬鹿がいるみたいだけどMSDNをしっかり読もうな
> In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system.
> To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0
> with the wParam value by using the bitwise AND operator.
0478デフォルトの名無しさん
2009/02/15(日) 13:54:51最大化ボタンもタイトルバーダブルクリックもmsgはWM_SYSCOMMANDだが
前者のwParamはSC_MAXIMIZE(0xF030)で後者のwParamは0xF032なんだよ
0480デフォルトの名無しさん
2009/02/15(日) 14:34:57hFile = CreateFile();
hMap = CreateFileMapping( hFile, ... );
mptr = MapViewOfFile()
mptrへのアクセス
UnmapViewOfFile( mptr );
CloseHandle( hMap );
CloseHandle( hFile );
となると思いますが、↓のように先にファイルハンドルをcloseしても
よいのでしょうか?
CreateFileMappingではhFileの参照カウントをincrementすると思って
いるので、実際にはcloseされないと期待しています。また、実際に試
してみたところ正常に処理できました。
ただ、たまたまうまくいったのか、保証されている動作なのか分からな
いのですが...どうなんでしょうか?
hFile = CreateFile();
hMap = CreateFileMapping( hFile, ... );
mptr = MapViewOfFile()
CloseHandle( hFile );
mptrへのアクセス
UnmapViewOfFile( mptr );
CloseHandle( hMap );
0481デフォルトの名無しさん
2009/02/15(日) 14:45:04hMap = CreateFileMapping( hFile, ... );
CloseHandle( hFile );
mptr = MapViewOfFile()
CloseHandle( hMap );
mptrへのアクセス
UnmapViewOfFile( mptr );
でおk
0482デフォルトの名無しさん
2009/02/15(日) 14:48:160483デフォルトの名無しさん
2009/02/15(日) 14:55:06その共有メモリって本当にメモリと同等の速度なの?
ページングファイル(pagefile.sys)に作るなら速度はファイル並み
なんじゃないかと思えてしまうんだけど。
あとページファイル無しに設定したWindows上だと動かないのかな?
0484デフォルトの名無しさん
2009/02/15(日) 15:02:140485デフォルトの名無しさん
2009/02/15(日) 15:05:44hFile パラメータで INVALID_HANDLE_VALUE を指定した場合、呼び出し側プロセスは
dwMaximumSizeHigh と dwMaximumSizeLow の各パラメータを使ってマッピングオブ
ジェクトのサイズも指定しなければなりません。この場合、CreateFileMapping は指定
されたサイズのファイルマッピングオブジェクトを作成しますが、ファイルシステム内の
名前付きファイルではなく、オペレーティングシステムのページングファイルに関連付
けます。
ページングファイルが無くても関連付けられるんだろうか。
0486デフォルトの名無しさん
2009/02/15(日) 15:07:33mallocなんかで確保したメモリも、ページアウトされればファイル並みの遅さだ。
ナ、ナンダッテー(AAry
さらに逆を言えばくメモリマップドファイルだって、
物理メモリが開いていれば、そこですべて済ませる。
0487デフォルトの名無しさん
2009/02/15(日) 15:09:13安心しますた
0488デフォルトの名無しさん
2009/02/15(日) 19:14:58>>485のINVALID_HANDLE_VALUE を指定して使う時ってどういう場合なの?
単に使用後は不要の要高速アクセスのテンポラリファイルが欲しい時?
0489デフォルトの名無しさん
2009/02/15(日) 19:16:490490デフォルトの名無しさん
2009/02/15(日) 19:25:43ググって出てくるのも大概これだろ
0491デフォルトの名無しさん
2009/02/15(日) 20:57:470492デフォルトの名無しさん
2009/02/15(日) 21:11:40どうすればカラフルになるの?
ttp://www-higashi.ist.osaka-u.ac.jp/~k-maeda/vcpp/sec4-1bmpfile.html
0493デフォルトの名無しさん
2009/02/15(日) 21:12:560494デフォルトの名無しさん
2009/02/15(日) 22:14:090495デフォルトの名無しさん
2009/02/15(日) 23:12:22LoadCursorでカスタムカーソルを読み込んでいるのですが
64x64等のサイズで作成したカーソルも32x32のサイズで表示されてしまいます
GetSystemMetricsでマウスサイズを取得すると32x32になってるのですが
どこか別の場所でマウスサイズを設定しないといけないのでしょうか?
0496デフォルトの名無しさん
2009/02/15(日) 23:17:30Win32でメインウィンドウをクラス化してサブクラスで使用していますが、WM_CREATEがサブクラスに届きません。
構築方法は、スーパークラスでWindow作成後にthisをSetPropしておき、
static WndProcでGetPropして、スーパー or サブクラスのウィンドウメッセージを振り分けています。
動かない理由は、ウィンドウ作成時にthisが関連付けられないため、
サブクラスのメッセージ処理が行われないためです。
ここまでは分かりました・・・
これを回避する方法の参考サイト等を教えていただけないでしょうか?
どうぞよろしくお願いします。
0497デフォルトの名無しさん
2009/02/15(日) 23:23:170498デフォルトの名無しさん
2009/02/15(日) 23:28:30CreateWindow(Ex)の最後のほうの引数にvoid*のがあるだろ。そこでthis渡せ。
すると、WM_CRAETEもしくはWM_NCCREATEで
reinterpret_cast<const CREATESTRUCT*>(lParam)->lpCreateParamsとすればそいつが取り出せる。
0499デフォルトの名無しさん
2009/02/15(日) 23:29:22フルカラービットマップはパレットがないだろ
DIBをごにょごにょしろ
0500デフォルトの名無しさん
2009/02/15(日) 23:31:07・WM_CREATE時の((LPCREATESTRUCT)lParam)->lpCreateParams
0501デフォルトの名無しさん
2009/02/15(日) 23:31:530502デフォルトの名無しさん
2009/02/15(日) 23:33:000503デフォルトの名無しさん
2009/02/15(日) 23:36:25標準と違う大きさのカーソルを扱ったことがないから上手くいくか知らないけど、
まずは大きさを指定する引数があるLoadImageを試してみたらどう?
0504デフォルトの名無しさん
2009/02/15(日) 23:38:420505デフォルトの名無しさん
2009/02/15(日) 23:45:59SXGA+とかUXGAが当たり前の時代なのに、いい加減もっと大きくしろと思うのだが。
0506デフォルトの名無しさん
2009/02/15(日) 23:47:0699%アクセス違反で止まると思うけど
0507496
2009/02/15(日) 23:49:51レスありがとうございます。やってみます!
0508デフォルトの名無しさん
2009/02/15(日) 23:54:50ありがとうございます。カーソルサイズの変更できました。
0509デフォルトの名無しさん
2009/02/15(日) 23:58:1416色以上表示可能なモニターに買い換える
494 名前:デフォルトの名無しさん[sage] 投稿日:2009/02/15(日) 22:14:09
ここはカラーセロハンの出番だな。
0510デフォルトの名無しさん
2009/02/16(月) 06:34:440511デフォルトの名無しさん
2009/02/16(月) 10:45:57書き込みできません。アドイン自身で自分自身を検知して、Connect=Falseまではできました。
それでも書き込みできないときがあります。アドインマネージャでいちいちやればできるので、
アンロードする手段があると思います。それが何かと。
0512496
2009/02/16(月) 16:23:05遅ればせながら、処理が完成しました。
WM_CREATE時とそれ以降の処理がちょいと面倒でしたが・・・
また、同じくDialogのテンプレートクラスも完成しました!
本当にありがとうございます。
0513デフォルトの名無しさん
2009/02/16(月) 17:01:30いたかもしれないけどわかんないから自分でやったよ。そういう個人ライブラリのまとめサイトとかあればいいのに
0514デフォルトの名無しさん
2009/02/16(月) 17:10:12知らないならレスしないで下さい。ウザいだけです。
0515デフォルトの名無しさん
2009/02/16(月) 20:02:03「最終的に表示する画面」を先に作る方法を、
どなたか教えていただけないでしょうか。
BitBltひとつに二つの画像を処理させたいんです。
0516デフォルトの名無しさん
2009/02/16(月) 20:08:17>BitBltひとつに二つの画像を処理
たぶん、なにか誤解している
やりたいことはダブルバッファリングのことだと思うので、ググって
調べてみるのが早い
0517デフォルトの名無しさん
2009/02/16(月) 20:12:20ありがとうございます。
調べてみます
0518デフォルトの名無しさん
2009/02/16(月) 20:57:27SetupDi系かCM_系ででできるんでしょうか?
0519デフォルトの名無しさん
2009/02/16(月) 21:34:03PCI/PCI-Eの判別方法は、WDKのpciprop.h辺りを見れば良いんじゃないかな。
0520デフォルトの名無しさん
2009/02/16(月) 21:41:12エディット・ボックスの文字列を
GetWindowText(hEdBox,strbuf,len);
snprintf(msgbuf,msgbuflen-1,_T("%s"),strbuf);
SetWindowText(hEdBox,msgbuf);
のようにすると、hEdBox に再表示される文字列の最後の1バイトが
失われるのですが、思い当たることはないでしょうか?
ちなみにパッファ・サイズは十分あり、改行文字は含まれていません。
0521デフォルトの名無しさん
2009/02/16(月) 21:46:590522デフォルトの名無しさん
2009/02/16(月) 21:47:580523デフォルトの名無しさん
2009/02/16(月) 21:48:140524デフォルトの名無しさん
2009/02/16(月) 22:07:32関連付けを元に戻すくらいの余裕は確保できないか?
まあ、アプリが落ちる以前にログオフとかにきちんと対応しないといけないけどな。
WM_ENDSESSIONを最後にプロセス終了、って事もあるぜ。
0525デフォルトの名無しさん
2009/02/16(月) 23:12:43r::':´:::::;、_;;::::::::::::::::‐-....、_
r'´:::::::::::::::'ヘ!::::::::::::::::::::::::::::::::::、
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
,!:::::::::;:- '´  ̄ ̄ ̄` ‐-::、::::::::::::::::i
ヽ::::;r' _,_,,,,,_ ヾ::::::::::::::::l
./::'':! ,;illliiiiiiiiii;、ヽillll仙lllllllllli;.::::::::::::::::;!
ノ::::::::l ィ''ヾフヾ :. ;::'` `"`'':ミ';:::::::::::::ヾメ
-='r´:::::::::::l ;:::. .:::::::::::::::::::ミヽ
ヾツ::::::::::::i:, ( =ー⊃;:. ...:::::::::::::::::::::::::::i`
l::::::::::::::::i;; ,,.:;:' ミ;;;-,,,, .:::::::::::::::::::::::::::::l
.i'__ノ:::::::::::::::::i;;, ;il'' -―ー''''''';::::::::::::::::::::::::::::::::;!
/´`〉::::::::::::::'';, " --‐‐ .::::;::::::::::::::::::::::::::::;ィ!
ヾヾ:::::::::::::::::::::ツ::、,_ ,.,,.;::::::::::::::::::::::::::::::::::r'
ーッ;:::::::::::::::::::::::::::::::"::::::::::::::::::::::::::::::::::;rヶノ
'"ヽ:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::i'
チョ・プゲラ[Cho Puguera]
(1928〜1967 アルゼンチン)
0526521
2009/02/16(月) 23:13:31ちょっとやってみます。
0527デフォルトの名無しさん
2009/02/16(月) 23:14:390528デフォルトの名無しさん
2009/02/16(月) 23:22:430529デフォルトの名無しさん
2009/02/16(月) 23:23:32( ゚ω゚ ) お断りします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
0530デフォルトの名無しさん
2009/02/17(火) 00:18:26マウスが止まってる間だけしか絵が変わらない。移動中はノーマルカーソルになってるんですけど、何故でかわかりまっしゅ?
0531デフォルトの名無しさん
2009/02/17(火) 00:26:02ありがとうございました
無事ちらつきガなくなりました
ありがとうございました
0532デフォルトの名無しさん
2009/02/17(火) 00:28:16WM_SETCURSOR
0533デフォルトの名無しさん
2009/02/17(火) 00:33:27動き出したら、マウスカーソルの背後にあるウィンドウに関連付けられたカーソルに変更される。
(正確には、そのウィンドウのクラスの、だが)
ただし、NULLが関連付けられていたら、元に戻らない。
選択肢は2つ。
1. SetCursorではなく、WNDCLASS(EX)もしくはSetClassLongPtrで設定する。
2. 同じ手順でNULLに設定しておき、SetCursorする。
http://msdn.microsoft.com/en-us/library/ms648393.aspx
0534デフォルトの名無しさん
2009/02/17(火) 00:34:520535デフォルトの名無しさん
2009/02/17(火) 00:44:36世界で戦えるくらいのがいいです。
0536デフォルトの名無しさん
2009/02/17(火) 00:46:56>・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
0537デフォルトの名無しさん
2009/02/17(火) 00:48:41そのままなのね。ゲゲェーッ!
0538デフォルトの名無しさん
2009/02/17(火) 01:11:14・高度なことは判らないので質問しないでください。
0539デフォルトの名無しさん
2009/02/17(火) 01:12:550540デフォルトの名無しさん
2009/02/17(火) 10:04:21宣言した変数は、そのスレッドが終わると自動的に開放される・・・
という解釈でいい?
0541デフォルトの名無しさん
2009/02/17(火) 10:16:15クリティカルセクションとかミューテックスとかセマフォとか、
情報処理試験的に考えたら由来や違いはありますけど
Win32APIだとみんな似たようなソースになりますよね?
Windows環境では、多プロセス間で使えるかとか、実行速度が速いか遅いかとか、
そういうことを知っておく方が大事なんでしょうか
0542デフォルトの名無しさん
2009/02/17(火) 10:27:46よくない。
0543デフォルトの名無しさん
2009/02/17(火) 10:36:390544デフォルトの名無しさん
2009/02/17(火) 10:43:430545デフォルトの名無しさん
2009/02/17(火) 16:13:18ホイールパットではWM_MOUSEWHEELが来るのに、
マウスのホイールではキャッチできません。
ブラウザなどでは普通にスクロールできる(ホイールとして機能する)のですが、
こういう場合どんなメッセージが送られてきているのですか?
0546デフォルトの名無しさん
2009/02/17(火) 16:18:340547デフォルトの名無しさん
2009/02/17(火) 16:23:03例えば、リストボックスに入っている複数行のテキストを取得したい時とかは、
どうすればいいんでしょうか。
教えてください。
0548デフォルトの名無しさん
2009/02/17(火) 16:30:080549デフォルトの名無しさん
2009/02/17(火) 16:37:04存在忘れてました。
そして、何もメッセージが来ていませんでした。
親ウィンドウには来ているようなので、
むしろホイールパットの方が余計にメッセージ送っているようです。
スタティックコントロール(使っているのはピクチャボックスですが)で、
マウスホイールのメッセージを得るにはどのようにすればよいのでしょうか…
NotifyをTrueにしているのですが…
0550デフォルトの名無しさん
2009/02/17(火) 16:41:060551547
2009/02/17(火) 16:43:42リストボックスのハンドルは取得できています。
ハンドルが取れればGetWindowTextで複数行のテキストを
取れるってことでしょうか?
だとしたら、も少し自分で調べますのでヒントください。
お願いします。
0552デフォルトの名無しさん
2009/02/17(火) 17:05:15今までキーボードでスクロールするついでにホイール対応することしかやってなかったから気がつかなかった。
0553デフォルトの名無しさん
2009/02/17(火) 17:15:45マウスでWindows使ってれば常識だが
なんか理由あった気がしたけど忘れた
0554デフォルトの名無しさん
2009/02/17(火) 17:34:53そもそもCの文字処理分かってるのか?
0555デフォルトの名無しさん
2009/02/17(火) 17:39:320556デフォルトの名無しさん
2009/02/17(火) 17:41:01ListBoxのLB_GETSELITEMSとかLB_GETTEXTは別プロセスではうまくいかん。
0557デフォルトの名無しさん
2009/02/17(火) 17:48:19WM_MOUSEMOVE と同じで (PeekMessage で言う)PM_QS_INPUT系に纏める為?
0558557
2009/02/17(火) 17:52:080559デフォルトの名無しさん
2009/02/17(火) 18:01:00わからないならレスするなクズ
0560551
2009/02/17(火) 18:06:08レスくれた方ありがとうございました。
出直してきます。
0561デフォルトの名無しさん
2009/02/17(火) 18:14:44・外部アプリのコントロールのテキストを取り込みたい
・具体的なコントロールの対象は ListBox で、item のテキスト
自分自身のアプリ内であれば LB_GETSELITEMS とか LB_GETTEXT を使えば可能である
が、"外部アプリ" ではその手法は使えない。
結論あきらめれ
# スクリーンショットとって OCR するぜ とか DLLインジェクションして云々とか 高級杉
0562560
2009/02/17(火) 18:17:59すっきりしました。
0563545
2009/02/17(火) 18:23:24最近ブラウザの表示領域やタブにフォーカス無くても、ブラウザ自体にフォーカスあれば
マウスの位置によってちゃんとホイールする機能が主流になって、
フォーカス必要なことすっかり忘れてました…
えーっとフォーカスってどうやっ(ry
フォーカスなんて全然意識したことないわ…
0564デフォルトの名無しさん
2009/02/17(火) 18:51:28MapViewOfFileをすると1GBちょいしか取れません。
1つのプロセスで2GBまででなんやかんやでそれくらいになるとおもうのですが
CreateFileMappingをした時点でPF使用量が3GB取られてるので
何とかマッピングできないもんですか?
0565デフォルトの名無しさん
2009/02/17(火) 19:05:110566デフォルトの名無しさん
2009/02/17(火) 19:10:2132ビット環境ではかなり難しいかと
0567デフォルトの名無しさん
2009/02/17(火) 19:12:34WM_CREATEで
hVScrollWnd = CreateWindowEx(
0, "SCROLLBAR", NULL, WS_CHILD | WS_VISIBLE | SBS_VERT,
rcWrapR.right, 0, 16, rcWrapR.bottom,
hWnd, (HMENU)ID_VIEW_VSCROLLBAR, appInstance, NULL );
siView.cbSize = sizeof(SCROLLINFO);
siView.fMask = SIF_POS | SIF_RANGE | SIF_PAGE | SIF_DISABLENOSCROLL;
siView.nMin = 0;
siView.nMax = 0; // ここに siView.nPage - 1 までの値を入れてもだめでした。
siView.nPage = rcView.bottom / 16; //適当な段数(現在は50付近の値)
siView.nPos = 0;
SetScrollInfo( hVScrollWnd, SB_CTL, &siView, TRUE );
上記の通りスクロールバーの設定をして使用不能にしたいのですがスクロールバー全域につまみが表示されます。
このあと別ルーチンで siView.nMax++ したのち SetScrollInfo()を実行すると使用不能になります。
もちろん siView.nMax < siView.nPage を満たさなくなればつまみも出てきます。
1回の操作だけで使用不能にするには上記の手順では何か足りてないのでしょうか?
OS XP 64bit / 32bitコンパイル / PSDK 2003 R2 / VCEE2005
0568デフォルトの名無しさん
2009/02/17(火) 19:14:53Cの文字列は文字の配列
0569デフォルトの名無しさん
2009/02/17(火) 19:15:13どうやって書き込めばいいですかね?
>>566
はいリニアに取りたいです。
CreateFileMappingで確保済みなので(ちゃんとPF使用量は3G分増えてる)
何とかなりそうが気がするんですが・・・
CreateFileMappingを10MBづつforでぐるぐる回して取っても、やはり1Gちょいでエラーになりました
0570デフォルトの名無しさん
2009/02/17(火) 19:15:48マップ開始位置を変更して何度もマップし直す。
あるいは64ビット化する。
0571デフォルトの名無しさん
2009/02/17(火) 19:23:18>1つのプロセスで2GBまででなんやかんやでそれくらいになるとおもうのですが
これがわかってるのに。
0572デフォルトの名無しさん
2009/02/17(火) 19:29:54開始位置の計算てGetSystemInfoであれした値の倍数でしたっけ?
それと実際に確保するサイズはちゃんとGetSystemInfoのアレの倍数に収まってないとダメですよね?
>>571
だから実際にPF量はその分とられてるから。
別に3Gの連続エリアが欲しいわけじゃないし
0573デフォルトの名無しさん
2009/02/17(火) 19:32:57脳内でだろ
0574デフォルトの名無しさん
2009/02/17(火) 19:38:260575デフォルトの名無しさん
2009/02/17(火) 19:39:27お前もっと大人になれよ?な?
0576デフォルトの名無しさん
2009/02/17(火) 19:40:130577デフォルトの名無しさん
2009/02/17(火) 19:44:320578デフォルトの名無しさん
2009/02/17(火) 19:45:360579デフォルトの名無しさん
2009/02/17(火) 19:49:50だから>>578が流行ったんだろうけどw
0580デフォルトの名無しさん
2009/02/17(火) 19:52:430581デフォルトの名無しさん
2009/02/17(火) 20:10:090582デフォルトの名無しさん
2009/02/17(火) 20:19:22まあ1GBとか512MBくらいずつ大きくマップすることにすれば、
まず間違いなくその値の倍数になっているだろうと思う。
0583デフォルトの名無しさん
2009/02/17(火) 20:36:27インパクトあるからなw
0584デフォルトの名無しさん
2009/02/17(火) 20:40:35お前はメモリ3GB以上使うようなことしてんの?
メモリ3GB使う使い方を言って見なさい。
ただし、大幅にメモリを使うものではなく、3GBギリギリ使い方を言うように。
つまりだ、この使い方を下回れば3GBで十分とわかるようにってことだよ。
0585デフォルトの名無しさん
2009/02/17(火) 21:09:300586567
2009/02/17(火) 21:27:49親ウィンドウのShowWindow()以後でないと反映されないみたいです。
申し訳ありませんでした。失礼します。
0587デフォルトの名無しさん
2009/02/17(火) 21:41:390588デフォルトの名無しさん
2009/02/17(火) 21:45:42何かうまくいかないんです。
ちなみにマウスはWirelessOpticalMouse2000というのを使ってるんですけど
そんなの関係ないですよね・・・
0589デフォルトの名無しさん
2009/02/17(火) 21:47:020590デフォルトの名無しさん
2009/02/17(火) 21:51:17>>550
0591デフォルトの名無しさん
2009/02/17(火) 22:05:00PEイメージのLargeAddressAwareが有効で、かつ/3GBスイッチでOSが起動されている。
というのが一応条件だったと思う。
ちなみに、/3GBスイッチは 4-Gigabyte Tuning (4GT) と呼ぶらしい。
PAEはx86の機能で、64GBまでの物理メモリにアクセスできる等の拡張。
AWEは、アドレス空間内に窓を確保して、
4GBオーバーの物理メモリ等をそこにマッピングして扱うための仕組み。
0592デフォルトの名無しさん
2009/02/17(火) 22:43:42スタック・ヒープがあるからまるまる3GB使えるわけではないぞ。
一応念のため。
0593デフォルトの名無しさん
2009/02/18(水) 00:28:100594デフォルトの名無しさん
2009/02/18(水) 06:39:27隠れてしまいます
どうすればオンラインゲームの表示より手前に表示できるようになりますか?
0595デフォルトの名無しさん
2009/02/18(水) 06:47:29ビデオメモリに直接描画すればいい
0596デフォルトの名無しさん
2009/02/18(水) 06:49:29>>594
ウィンドウを常に最前列に表示したいんだろ?
文房具屋で「マッキーペン」ってのを買ってこい
……あとは分かるな?
欠点は、再描画が不可能なところだけだしな
マジおすすめ
0597デフォルトの名無しさん
2009/02/18(水) 06:58:130598デフォルトの名無しさん
2009/02/18(水) 07:06:37シンナー使えば再描画が可能になる
0599デフォルトの名無しさん
2009/02/18(水) 07:23:150600デフォルトの名無しさん
2009/02/18(水) 07:24:53適切なウィンドウスタイルを設定する
0601デフォルトの名無しさん
2009/02/18(水) 07:33:10具体的に
0602デフォルトの名無しさん
2009/02/18(水) 07:47:410603デフォルトの名無しさん
2009/02/18(水) 07:59:010604デフォルトの名無しさん
2009/02/18(水) 08:28:290605デフォルトの名無しさん
2009/02/18(水) 08:32:49ちょっと上みりゃ書いてあんだろクズが
>>595-596,598
その答えを得るために何の情報を自分が公開しなきゃいけないかすらわからないならググってろボケ
0606デフォルトの名無しさん
2009/02/18(水) 08:42:17グラボは nVidia GeForce 9500GT
>>605 知らないならレスしないでください、うざいだけです
0607デフォルトの名無しさん
2009/02/18(水) 08:42:400608デフォルトの名無しさん
2009/02/18(水) 08:43:06チートツールのウィンドウをゲーム画面より常に前面に表示しておくにはどうすればいいですか?
0609デフォルトの名無しさん
2009/02/18(水) 08:45:16中学生?
>ゲーム画面よりも前面に表示するにはどうすればいいですか?
一体何を?
あほなの?
優しいエスパー待つ暇あったらググれゴミ
0610デフォルトの名無しさん
2009/02/18(水) 08:46:05時間がないので早く教えてください!!
0611デフォルトの名無しさん
2009/02/18(水) 08:48:51窓(window)あけるだろ
そこからPCを飛ばす(fly)
この意味すら分からないならPC壊せ
分かったなら即行動しろ
0612デフォルトの名無しさん
2009/02/18(水) 08:49:140613デフォルトの名無しさん
2009/02/18(水) 08:51:15スレ違いの小学生にまともな答えは必要ないだろ
0614デフォルトの名無しさん
2009/02/18(水) 09:08:55topmostしてもゲームより背面になってしまいます
0615デフォルトの名無しさん
2009/02/18(水) 09:10:4445を指定しても90を指定しても同じになります
0616デフォルトの名無しさん
2009/02/18(水) 09:24:350617デフォルトの名無しさん
2009/02/18(水) 09:31:31ありがとうございます
0618デフォルトの名無しさん
2009/02/18(水) 09:50:090619デフォルトの名無しさん
2009/02/18(水) 09:58:09その後すぐゲーム画面に上書きされる
TimerProcで0ミリ秒指定したら一応見えるけどチカチカする
これ回避できませんか?
0620デフォルトの名無しさん
2009/02/18(水) 09:58:310621デフォルトの名無しさん
2009/02/18(水) 10:14:39何度も言わせないでください
0622デフォルトの名無しさん
2009/02/18(水) 10:18:270623デフォルトの名無しさん
2009/02/18(水) 10:32:37自作でチートするやつがこんな質問するかよw
0624デフォルトの名無しさん
2009/02/18(水) 10:45:20のチート(笑)
でも、ネットで買った(笑)
んじゃないの?
0625デフォルトの名無しさん
2009/02/18(水) 10:46:170626デフォルトの名無しさん
2009/02/18(水) 11:05:34/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
0627デフォルトの名無しさん
2009/02/18(水) 12:09:30というお決まりのパターンか
0628デフォルトの名無しさん
2009/02/18(水) 12:18:15かまかけて引き出そうとしても無駄だよ
知ってても教えない奴はこの時間帯にはいない
知らずに叩いてる奴は知らないから答えられない
わかったらさっさとググれ
0629デフォルトの名無しさん
2009/02/18(水) 12:23:490630デフォルトの名無しさん
2009/02/18(水) 12:39:450631デフォルトの名無しさん
2009/02/18(水) 13:09:23>>612ですでに答えが出ているだろ。
0632デフォルトの名無しさん
2009/02/18(水) 13:17:07屁理屈やら揚げ足取りみたいなしょうもない事する奴多いな
0633デフォルトの名無しさん
2009/02/18(水) 13:21:16DirectX9ならプロセスに侵入したうえでIDirect3DDevice9::SetDialogBoxModeを呼び出し
0634デフォルトの名無しさん
2009/02/18(水) 13:33:31ありがとうございました
0635デフォルトの名無しさん
2009/02/18(水) 16:23:16/;:`丶、、_;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;l;:;:;l
,ィヽ /、;:;:;:;:;:;:;:;:;:``;:ー‐--;、、;:;:;:;:;|;:;:;l
. / / /:::::`::`::―--:::z、、;:;:;:;:;:;`'ー-+-┤
/ / /:::::::::::::::::::::::::::::::ミミ' ` ‐- 、_/_l
. / / {::r=、:::::,,ッ' ヾ三) r-、 リ
/ / ,ィヽ | / ! ゞツヽ / /_`" リ
,ィ≦´ ̄ ̄ ` V / l〈__ j. ,.' l ムツ` ,'
|  ̄ ̄ ̄ `V / ヽ‐' / l l ,' YES WE ZIP !
|  ̄ ̄ ̄Vリ Y _ リ `ー 、__,、) / YOU MUST UP!
| ´ l ̄ハ l /_,x</l /__,,....、__ l ./
____j .j 'ー' ン::::::::::::j .ヘ / |‐'‐‐- -''リ/ ,.'
:::::::::::::リ /:::::::::::::::| .ヘ l ヽュェェェン /
::::::/! ./ :::::::::::::::::::| ヘ ヽ ヽ ー‐‐"/
/:::::| ,ィ':::::::::::::::::::::::::∧ ヽ \ ン'
::::::::::lヽ__/ l::V:::::::::::::::::::::::::∧ /\ >ー "|、
::::::::::l /:::lハ::::::::::::::::ヽ::::::::l-‐' ハ _/___|ハ
::::::::::`ー'---.':/:::::::::::::::::::::l::::::l l / l /:::::\
0636デフォルトの名無しさん
2009/02/18(水) 18:26:15プロセス侵入なんて楽勝だよねw
あとはどうpgrするか
0637デフォルトの名無しさん
2009/02/18(水) 19:09:42消えろクズ
0638デフォルトの名無しさん
2009/02/18(水) 19:36:59また、.NETでは出来るけどWinAPIでは出来ないことは、あるんでしょうか?
0639デフォルトの名無しさん
2009/02/18(水) 19:41:18まずは具体例を挙げろ
質問するのに質問内容まで他人に丸投げするな
どれだけ横着者なんだよ、お前は?
0640デフォルトの名無しさん
2009/02/18(水) 19:52:29わからないならレスしないでください、気持ち悪いです><
>>639
あなたも偉そうなので気持ち悪いです消えてください><
0641638
2009/02/18(水) 20:03:40このスレはいつからか、こうなってしまいました。
ちょっとまともな回答くるかどうか、適当な質問投下したが、やっぱこのスレはもうダメだな
まぁ、WinAPIなんて、歴史長いしグーグルで9割5部は解決するからいいんだけど
0642デフォルトの名無しさん
2009/02/18(水) 20:08:10…
0643デフォルトの名無しさん
2009/02/18(水) 20:15:170644デフォルトの名無しさん
2009/02/18(水) 20:15:22>>615
WM_GETMINMAXINFOでどうにかならないかな?
0645デフォルトの名無しさん
2009/02/18(水) 20:16:55WM_WINDOWPOSCHANGING
で変えられないこともないけど
他にもなんかしないとだめだと思う
0646デフォルトの名無しさん
2009/02/18(水) 21:40:58暇だから適当にあげつらってみた。
.NETでは無理・困難・実質的に不可: フック、DirectX、シェル拡張
Win32では無理: WPF
0647デフォルトの名無しさん
2009/02/18(水) 21:42:58長い間ご利用ありがとうございました
Win32API質問箱は閉鎖になりました
グーグル先生がこのスレの役割を引き継ぐそうですので
今後はグーグル先生に聞いてください
0648デフォルトの名無しさん
2009/02/18(水) 21:53:50LL ならOK
Managed DirectX
シェル拡張も可能
ぜんぜんダメじゃん・・・
0649デフォルトの名無しさん
2009/02/18(水) 22:07:46LLしか出来ないともいえるだろw
シェル拡張はマネージコード使うなって言われるし
0650デフォルトの名無しさん
2009/02/18(水) 22:13:260651デフォルトの名無しさん
2009/02/18(水) 22:16:130652デフォルトの名無しさん
2009/02/18(水) 22:18:400653デフォルトの名無しさん
2009/02/18(水) 22:33:17The Oldとか
ttp://blogs.msdn.com/oldnewthing/archive/2006/12/18/1317290.aspx
0654デフォルトの名無しさん
2009/02/18(水) 22:50:410655デフォルトの名無しさん
2009/02/18(水) 22:53:150656デフォルトの名無しさん
2009/02/18(水) 22:53:18移そうとすると警告音が鳴りますが、これを鳴らなくすることは
出来ないでしょうか?
モーダルダイアログを表示し親ウインドウクリックでダイアログを
閉じたいので、WM_NCACTIVATE(wParam==FALSE)で閉じるように
しているのですが警告音が鳴ってしまいます
0657デフォルトの名無しさん
2009/02/18(水) 22:57:160658デフォルトの名無しさん
2009/02/18(水) 23:06:49Managed DirectXはおしまいの方向みたいだ。
シェル拡張を挙げたのは1プロセスに1バージョンのCLRしか読み込めない制限からだが……、
みんなCLR 2.0使えば解決って流れなのか?
0660デフォルトの名無しさん
2009/02/18(水) 23:31:480661デフォルトの名無しさん
2009/02/18(水) 23:41:22「モーダルっぽく作りこむ」必要性もなく、単にモードレスでいいだろw
0662デフォルトの名無しさん
2009/02/19(木) 00:35:24ありがとう それで調べてみる
0663デフォルトの名無しさん
2009/02/19(木) 01:03:130664デフォルトの名無しさん
2009/02/19(木) 01:04:52いつの間にかDirectX SDKにManaged DirectX関連のものが収録されなくなった。
0665デフォルトの名無しさん
2009/02/19(木) 08:49:350666デフォルトの名無しさん
2009/02/19(木) 09:31:34相
0667デフォルトの名無しさん
2009/02/19(木) 10:09:07木目
0668デフォルトの名無しさん
2009/02/19(木) 10:10:290669デフォルトの名無しさん
2009/02/19(木) 19:55:540670デフォルトの名無しさん
2009/02/19(木) 20:09:03∧_∧ 何でもかんでも人のせいにしないの!
∩`iWi´∩
ヽ |m| .ノ
|. ̄|
U⌒U
0671デフォルトの名無しさん
2009/02/19(木) 20:18:00ここはWin32APIのスレだぜ?w
0672デフォルトの名無しさん
2009/02/19(木) 20:41:010673デフォルトの名無しさん
2009/02/19(木) 20:52:390674デフォルトの名無しさん
2009/02/19(木) 21:06:49中身は32ビット用だけど。
0675デフォルトの名無しさん
2009/02/19(木) 21:13:470676デフォルトの名無しさん
2009/02/19(木) 21:17:140677デフォルトの名無しさん
2009/02/19(木) 21:21:59MSは自分自身では.NET単体もXNAを利用したゲームも作らない。
つまり売り物にならないことはMS自体がよくわかっている。
0678デフォルトの名無しさん
2009/02/19(木) 21:37:32一応気にしているように思える。
Overview of the Windows API
http://msdn.microsoft.com/en-us/library/aa383723(VS.85).aspx
> (Note that this was formerly called the Win32 API.
> The name Windows API more accurately reflects its roots in 16-bit Windows and its support on 64-bit Windows.)
0679デフォルトの名無しさん
2009/02/19(木) 21:57:080680デフォルトの名無しさん
2009/02/19(木) 22:30:400681デフォルトの名無しさん
2009/02/19(木) 22:41:520682デフォルトの名無しさん
2009/02/19(木) 22:52:240683デフォルトの名無しさん
2009/02/19(木) 22:56:22ゲームを作るならMSが使わせたい環境ではなく、MS自身が使っている環境を選べ。
0684デフォルトの名無しさん
2009/02/20(金) 02:50:42全然新しく感じないのはなぜですか
0685デフォルトの名無しさん
2009/02/20(金) 03:10:050686デフォルトの名無しさん
2009/02/20(金) 03:15:080687デフォルトの名無しさん
2009/02/20(金) 03:29:33エロゲーのFateのことならDirectXは表示には使用されてないぞ。
0688デフォルトの名無しさん
2009/02/20(金) 04:09:22System32が64ビットなんだね。
0689デフォルトの名無しさん
2009/02/20(金) 09:05:59客層が糞スペック揃いらしいぞ
楽したいなら汎用紙芝居エンジンでも使った方が無難だろう
0690デフォルトの名無しさん
2009/02/20(金) 12:01:11コードページ番号でロケール変えた後にフォント作成でテキスト出力が反映される?
でもロケールの影響を受けるのは一部のCRT関数のみとか・・・
0691デフォルトの名無しさん
2009/02/20(金) 12:26:370692デフォルトの名無しさん
2009/02/20(金) 13:07:38ロケールなど無関係に目的の言語のフォントを選べばいいだけだろ。
いったい何を言っているんだ?
0693デフォルトの名無しさん
2009/02/20(金) 13:30:390694デフォルトの名無しさん
2009/02/20(金) 20:13:02C++の標準ライブラリもこれに含まれるのでしょうか。
0695デフォルトの名無しさん
2009/02/20(金) 20:13:490696デフォルトの名無しさん
2009/02/20(金) 20:23:07助かりました。
0697デフォルトの名無しさん
2009/02/21(土) 00:04:19新しいといったって、ほとんどはIE 4/5やWindows 98/2000/XPの出た頃だ。
その中で一番新しいXPでさえもう7年前。
新しいと感じなくても仕方ないかもしれない。
というわけで、Vistaや7からのものならもう少し新しく感じるかも。
0698デフォルトの名無しさん
2009/02/21(土) 01:40:34Win32 APIのとCRTのとは別関係。
setlocaleしてもこっちに影響は及ばないし、逆もまた然り。
GDIのテキスト出力がどうなるかは、A関数で出力するなら
フォントを作るときの文字集合の指定(LOGFONT::lfCharSetなど)が重要。
W関数を使うなら関係ない。
コンソールならSetConsoleCP。ANSIではなくOEMコードページという罠に注意。
これもW版なら関係ない話だ。
0699デフォルトの名無しさん
2009/02/21(土) 07:55:55Windows7のリボンコントロールが最も新しい
が、IUIFrameworkで日本語サイトに絞ってググってもまだこのスレだけ
MFCのCMFCRibbonBarでググってもMSサイトと2chのスレ等が数件見つかる程度
何だかなあ・・・
0700デフォルトの名無しさん
2009/02/21(土) 08:43:430701デフォルトの名無しさん
2009/02/21(土) 09:28:350702デフォルトの名無しさん
2009/02/21(土) 11:20:20void InitGraphics(Graphics* g, Bitmap* bmp,int width, int height, Color color)
{
bmp = new Bitmap(width,height);
g = new Graphics(bmp);
g->Clear(color);
}
というGraphicsの初期化用関数を作って
static Graphics* screen;
static Bitmap* screenbitmap;
static pen* pen;
InitGraphics(screen, screenbitmap, 800, 600, Color::White);
pen = new Pen(Color::Black, 1);
screen->DrawLine(pen,0,0,100,100); //座標は適当
というような感じで呼び出しても実行時にDrawLineでエラーが発生してしまいます。
どう書いたらいいのでしょうか?
0703デフォルトの名無しさん
2009/02/21(土) 11:21:48C++の基礎から勉強しろ
0704デフォルトの名無しさん
2009/02/21(土) 11:27:54可愛いなぁ
void InitGraphics(Graphics* &g, Bitmap* &bmp,int width, int height, Color color)
{
bmp = new Bitmap(width,height);
g = new Graphics(bmp);
g->Clear(color);
}
0705デフォルトの名無しさん
2009/02/21(土) 11:52:41具体的にいうと、sp 最小値のアドレスを取得したいんです。
0706デフォルトの名無しさん
2009/02/21(土) 12:00:110707デフォルトの名無しさん
2009/02/21(土) 12:02:59__try〜__exceptした上で例外が飛んでくるまで_allocaを呼びまくる
0708デフォルトの名無しさん
2009/02/21(土) 12:29:21DLL から拾いたいんだよね。
>>707
その方法も考えたんだけど、最終的な方法かな・・・とw
でもスタックの先頭アドレスと最終アドレスを取得して、みたいな方法よりも
よっぽど簡単なのかな。
Win32API で ESP の範囲を取得できるものないですか><
0709デフォルトの名無しさん
2009/02/21(土) 12:34:100710デフォルトの名無しさん
2009/02/21(土) 12:38:58話を理解してない馬鹿はレスしないで下さい
0711デフォルトの名無しさん
2009/02/21(土) 12:41:16ごめん、表現が悪かった。
esp 値がほしいのではなく、esp の範囲が知りたい。
常にスタックフレーム(ebp)が最大値ではないし、
単純に PE ヘッダのスタックサイズを ebp から引いても最小の esp 値が
取得できないので、何かほかの方法を探しています。
0712デフォルトの名無しさん
2009/02/21(土) 12:52:20自分のコンパイラのスタックチェックの方法みれば
最終アドレスの参照方法とか分からないの?
0713デフォルトの名無しさん
2009/02/21(土) 13:08:38それは>>707の方法だから質問者は分かってるだろ。
0714デフォルトの名無しさん
2009/02/21(土) 13:14:22・回答者のスキルが質問者よりずっと低い
最近ってホントこの2つのパターンだなw
0715デフォルトの名無しさん
2009/02/21(土) 13:16:44NT_TIB::StackTop
NtCurrentTeb()
Win32スレなのに何故誰も出さないんだ?
0716デフォルトの名無しさん
2009/02/21(土) 13:18:58スタックチェック処理って自分の exe に含まれる??
それならアウトプットで見れるけど、_alloca ならデバッガで追わないといかんね。
ちょっとデバッガで追ってエラーチェックしているところを探してみるけど、
カーネルAPIだったらどうしよう…orz
ドライバなんて作れないYO><
0717デフォルトの名無しさん
2009/02/21(土) 13:21:32キター!!!!!
ちょっとやってみる!!
みんなthx!!
0718デフォルトの名無しさん
2009/02/21(土) 13:31:48NT_TIBにStackTopなんてあるか?
0719デフォルトの名無しさん
2009/02/21(土) 13:33:36スレッドのNT_TIBを調べればいい
任意のスレッドのスタックアドレスとサイズを取得するコード
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200503/05030004.txt
0720デフォルトの名無しさん
2009/02/21(土) 13:36:030721デフォルトの名無しさん
2009/02/21(土) 13:41:040722デフォルトの名無しさん
2009/02/21(土) 13:46:55すまん、思いっきりStackLimitと書き間違えた。
0723デフォルトの名無しさん
2009/02/21(土) 13:55:14>>719
NT_TIB に確かに StackLimit があったんだが、
void a(){
__asm{
mov dwLastESP,esp
}
a();
}
を呼び出したとき、
StackLimit : 0x00226000
StackBase : 0x00230000
dwLastESP : 0x001330c8
になっていた。スタック拡張をすっかり忘れていたああああorz
この拡張も含めたリミットはさすがに計算しないと出ませんか?
Windows のバージョンにも依存すると思いますが・・・
0724デフォルトの名無しさん
2009/02/21(土) 13:57:28とか見ると
スタックは自動拡張されるので
TIB#StackLimit
自体、値が随時変化していくみたいだけど
0725デフォルトの名無しさん
2009/02/21(土) 14:07:590726デフォルトの名無しさん
2009/02/21(土) 14:34:120727デフォルトの名無しさん
2009/02/21(土) 14:39:290728デフォルトの名無しさん
2009/02/21(土) 16:14:30他所の掲示板ならポイント稼ぎが目的でそういう奴が多いのは分かるけど
2chにはそんなシステム無いんだし
0729デフォルトの名無しさん
2009/02/21(土) 16:39:560730デフォルトの名無しさん
2009/02/21(土) 18:54:23>ロクに調べもしないで
ここで調べて回答しているすごいのいるのか
じゃね、程度だろ
>>705のあげ基地は自分で調べるか、ちゃんと調べて回答してくれる回答者がいっぱいいる掲示板で
聞くように。そんな掲示板ではちゃんと質問しろよ。
0731デフォルトの名無しさん
2009/02/21(土) 18:56:070732デフォルトの名無しさん
2009/02/21(土) 18:59:310733デフォルトの名無しさん
2009/02/21(土) 19:06:36ロクに調べもしないで質問する基地と戯れたり、そのネタでワイワイするスレ
だからいいんだよーーーー
だから、だめなことはない。超有意義に機能しているすばらしいスレだ。
そして、ここはおっさん憩いのスレでもある。
だろ?
0734デフォルトの名無しさん
2009/02/21(土) 19:12:55わからないならレスしないで下さい気持ち悪いです
0735デフォルトの名無しさん
2009/02/21(土) 19:15:08こいつらが無知を晒した馬鹿共ですね、わかります
0736デフォルトの名無しさん
2009/02/21(土) 19:20:43「単なる興味本位です」みたいな
0737デフォルトの名無しさん
2009/02/21(土) 19:36:15lParam(4つ目の引数)に、
幅(下位16ビット)+高さ(上位16ビット)
という形で入ってるのですか?なので、幅と高さをとろうとすると、
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
としないとだめですか?
0738デフォルトの名無しさん
2009/02/21(土) 19:46:17こういう馬鹿を見るとわざとやってるんじゃないかって思う
0739737
2009/02/21(土) 19:49:49分かってません。どうかよろしくお願いします。
0740デフォルトの名無しさん
2009/02/21(土) 19:52:07例えばこの場合はGetWindowRectを使った方がいいよ。
窓のサイズが16bit以上になることはまずないだろうけど。
0741デフォルトの名無しさん
2009/02/21(土) 20:00:01出ました!無知の恥晒し
WM_SIZEのlParamに相当するのはGetClientRectだよ
0742デフォルトの名無しさん
2009/02/21(土) 20:03:47君が分かってないのはC++やWindowsではなくて、インターネットの使い方(=検索して調べる)
0743デフォルトの名無しさん
2009/02/21(土) 20:25:48>C++は使い始めてちょっと(1年くらい)経ったんですが
1年も経験あるのに、経験のないwinプログラムとは言えwinプログラム1週間レベルの
質問するようじゃマとしての適正ないから、もっと適正のある別なことをやったほうがい良いよ
プログラム開発10年やってもマとして伸びそうにないね
趣味なら下手の横好きでも良いが、職業マになったら人生を後悔をする。
0744デフォルトの名無しさん
2009/02/21(土) 20:29:250745デフォルトの名無しさん
2009/02/21(土) 20:37:110746デフォルトの名無しさん
2009/02/21(土) 20:42:24「君はプログラマとして入ったんだよね?」とか上司には言われましたが、、、
WM_SIZEの時はlParamに縦横のサイズが入ってるというのは正しいですよね?
最近入った後輩は、自分が苦労してようやくちょっと分かりつつあるソースを与えられて、
構造体同士の関係とかもう自分より把握してます。自分はソースをプリントして時間かけて
最初から読んだのに、後輩はエディタでじっと読むだけなんです。あと、自分は時間がかかるので、
まだソースのアプリが起動する所までしか追えてないのですが、後輩はそのあとの重要そうな処理
まで結構見てるみたいです。周りから見ると進捗の違いがはっきりしてると思うので、
つらいです。
0747デフォルトの名無しさん
2009/02/21(土) 20:44:29まずはそれからだ。
0748デフォルトの名無しさん
2009/02/21(土) 20:46:41天職について考えても良いと思う。
0749デフォルトの名無しさん
2009/02/21(土) 20:47:25向いている人間、向いていない人間がいる、ただそれだけの話。
0750デフォルトの名無しさん
2009/02/21(土) 20:59:14>lParam(4つ目の引数)に、
>幅(下位16ビット)+高さ(上位16ビット)
>という形で入ってるのですか?
という疑問を仮に俺が持った場合
まずはMSDNへ
↓
「WM_SIZE Notification」のページへ
↓
ParametersのlParamの項目を読む
↓
>The low-order word of lParam specifies the new width of the client area.
>The high-order word of lParam specifies the new height of the client area.
↓
なるほどThe low-order word of lParam specifies the new width of the client area.なんだな
なるほどThe high-order word of lParam specifies the new height of the client area. なんだな
↓
解決
0751デフォルトの名無しさん
2009/02/21(土) 21:03:57とりあえずMSDN読んでみます。
でも、自分は上司と頻繁に会議とかやって10時とか11時とかまで会社にいるのに、
後輩は8時9時にはいなくなるし、進捗は向こうのほうがいいし、結構難しめの部分を
任せられたりして、上司の進捗管理も彼に対しては緩めだし。。。
とりあえず彼はC++はあまり使ったことないみたいなので(Cは得意で組み込み系が好きらしい)、
自分はC++を使えるようになろうとしてます。
なんだか長く書いてしまいました。
すいません。
0752デフォルトの名無しさん
2009/02/21(土) 21:06:51とりあえずPezoldでも読めば幸せになれるんじゃないかな…
C++だったらそこからMFCか。試練の道だ
0753デフォルトの名無しさん
2009/02/21(土) 21:54:07・ 理解しようとする能力
・ 本質を探ろうとする能力
これが重要だな。
一挙手一投足にいたるまで、
この3点を意識しながら行動するといい。
例えば
・ MSDN 読むのは最低限やらなくてはいけないこと。
・ 検索するにしても、検索語の選択を吟味する。
どうすれば目的の結果が得やすいか考える。
・ エラーメッセージをあまり文字通りに受け取ってばかりいてはいけない。
なぜそのエラーメッセージが出るのか、その裏を考えること。
など。
0754デフォルトの名無しさん
2009/02/21(土) 22:10:49GET_X_LPARAM/GET_Y_LPARAMおすすめ。
まあ、>>740-741のいうとおりGetClientRectもありだけど。
0755デフォルトの名無しさん
2009/02/21(土) 22:17:33以下の方法を試してみたのですが、何処が良くないのでしょうか・・・orz
1. Bitmap::FromResource(hinstance, IDI_TEST); -> InvalidParameter
2. Bitmap::FromHICON(LoadIcon(hinstance, MAKEINTRESOURCE(IDI_TEST))); -> Okとなるものの、DrawImageなどしても何も表示されない
誰かお助けください・・・
0756デフォルトの名無しさん
2009/02/21(土) 22:19:412. の方法で読めていたみたいです。
0757デフォルトの名無しさん
2009/02/21(土) 23:08:49WM_SIZEのlParamの意味を知ってなくても、全然気にする必要なんてない。
本当のことを言おう。みんなそんなもんなんだ。
たとえば、これは俺の学生時代にあった話だが、教師がWM_CLOSEで
メッセージボックスを出すプログラムについて説明していた。
その教師はメッセージボックスに応答した後にウインドウが破棄され
ずに、学生の前で必死になって試行錯誤していた。そして、ある生徒が
「return 0じゃなくてbreakですよ」と言ったら、問題は解決された。
先生(会社の上司とかも含めて)ならそれくらい知っておけよと思うが、
やっぱりそいつは知らないし、他にも知らないことは一杯ある。
これが真実だ。
じゃあ、実力を判断する基準というのは一体何なんだ。
企業の場合であれば、それは経験(実務経験)だ。
年数を経てば、そいつは上司からも外部からも多少はできると思われる。
ただし、後輩からみればそいつは本当に実力があるのかと思うし、
実際のところ実力はない。これも真実だ。
多分あなたもこういう経験あるだろう。
分らないところがある→上司や先輩に聞こうと思う→聞いても
答えられないだろうと予測→相手に恥を欠かせないために自分で
調べる→そしてこうした掲示板にたどりつく。
0758デフォルトの名無しさん
2009/02/21(土) 23:25:12>>757 なんか、PG(技術屋)っぽい文
>>751 なんか、小説っぽい文
0759デフォルトの名無しさん
2009/02/21(土) 23:48:57.NETのIsControl()とかJavaのCharactor.isISOControl()みたいな感じでつかえるやつ。
やっぱcharにしてiscntrl()するしかない?
0760デフォルトの名無しさん
2009/02/21(土) 23:51:01<tchar.h>の_istcntrl
0761デフォルトの名無しさん
2009/02/22(日) 02:28:57これってどういう風に実装されてるんでしょうか?
どんな API を使ってるかご存じのかたがいらしたら教えてください。
0762デフォルトの名無しさん
2009/02/22(日) 03:23:15表示すると背景はただの白くなります。
どうするですか?
0763デフォルトの名無しさん
2009/02/22(日) 03:34:530764デフォルトの名無しさん
2009/02/22(日) 03:40:040765デフォルトの名無しさん
2009/02/22(日) 04:04:330766デフォルトの名無しさん
2009/02/22(日) 08:50:43そんなあなたにはコレをおすすめ
#include <windows.h>
#define GET_KEY_STATE(a,b) Beep(a,b)
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
int key[3]={5,6,7};
for(int kb=0;kb<2;kb++)
{
for(int i=0;i<3;i++)
{
GET_KEY_STATE(key[i]*100,i==3?i*10:10);
}
GET_KEY_STATE(key[1]*100,10);
GET_KEY_STATE(key[0]*100,kb==0?30:10);
}
GET_KEY_STATE(key[1]*100,40);
return 0;
}
0767デフォルトの名無しさん
2009/02/22(日) 11:27:09GET_X_LPARAM/GET_Y_LPARAMを使うのは負の値になり得る場合。(WM_LBUTTONDOWNなど)
クライアント領域が負の値になる可能性は無いのでWM_SIZEの場合はHIWORD/LOWORDを使う。
0768デフォルトの名無しさん
2009/02/22(日) 11:32:50とかわざわざ書いてあるところをみると、
一応GetClientRectが推奨なのかなあ。
0769デフォルトの名無しさん
2009/02/22(日) 11:55:00Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
を使用してメッセージを監視してるんですが
他のウィンドウをアクティブにするとメッセージを取得してくれなくなってしまいます。
他のウィンドウがアクティブになっていてもメッセージを取得できるようにするには
どうしたらいいですか?
0770デフォルトの名無しさん
2009/02/22(日) 11:56:220771デフォルトの名無しさん
2009/02/22(日) 12:05:07ブレークポイントを打っても
他のウィンドウがアクティブだと反応しません
0772デフォルトの名無しさん
2009/02/22(日) 12:14:54スレ違い
VBスレ若しくは.NETスレヘどうぞ
0773デフォルトの名無しさん
2009/02/22(日) 12:15:43すいません
0774デフォルトの名無しさん
2009/02/22(日) 12:36:44SendMessage、EM_REPLACESELをするとうまく文字列を
挿入することが出来るんですが、エクセルやワードではうまくいきません。
エクセルやワードのシートに文字列を送るにはどうやったらいいのでしょうか?
クリップボードを利用して、keybd_event、SendInputで「cntrl + v」等するとうまくいくんですが
できればクリップボードは使いたくありません。
0775デフォルトの名無しさん
2009/02/22(日) 12:39:48各アプリの仕様に沿って作るしかない。
Office用のSDKを使う話なので、そもそもスレ違い。
0776デフォルトの名無しさん
2009/02/22(日) 14:50:51MSDNにも載ってませんが、ひょっとして「何も指定しない」状態になるの?
0777デフォルトの名無しさん
2009/02/22(日) 15:00:35GetCurrentObjectで調べよ
0778デフォルトの名無しさん
2009/02/22(日) 15:29:03の、載ってません・・・
0779デフォルトの名無しさん
2009/02/22(日) 15:31:28文献を探すんじゃなくて、SelectObjectでNULLを指定してGetCurrentObjectで調べてみる、
という意味じゃないの?
0780デフォルトの名無しさん
2009/02/22(日) 15:42:24そういう意味ですか
でも今度はGetCurrentObjectの第2引数に指定する引数がわかりません・・・
0781デフォルトの名無しさん
2009/02/22(日) 15:44:09ttp://msdn.microsoft.com/ja-jp/library/cc428662.aspx
0782デフォルトの名無しさん
2009/02/22(日) 15:44:37と思っとけ
0783デフォルトの名無しさん
2009/02/22(日) 15:44:400784デフォルトの名無しさん
2009/02/22(日) 15:48:150785デフォルトの名無しさん
2009/02/22(日) 15:54:29すみませんレス見る前にレスしてました
不定と思っておきます
0786デフォルトの名無しさん
2009/02/22(日) 15:57:33http://msdn.microsoft.com/en-us/library/aa932923.aspx
> If an error occurs and the selected object is not a region, the return value is NULL. Otherwise, it is HGDI_ERROR.
つまりエラーとして扱われたようだ。
個人的には、9xでやったら死ねそうだと思う。
0787デフォルトの名無しさん
2009/02/22(日) 16:05:22つまりNULLはWinDef.hで0として定義されてるからUINT型の0が渡され
更にWinGDI.hで定義されているOBJで始まる定数名の一覧には
定数として0が含まれていないから
関数は失敗してNULLが返る
と動作が予測される
0788デフォルトの名無しさん
2009/02/22(日) 16:05:369xと言えどその程度(NULLを渡す)では死なない
0789デフォルトの名無しさん
2009/02/22(日) 16:06:43久々に 話を全く理解してない馬鹿 を見たw
0790デフォルトの名無しさん
2009/02/22(日) 16:07:260791デフォルトの名無しさん
2009/02/22(日) 16:11:42人の話を聞かない上に偉そうに薀蓄語るタイプか
迷惑な人間の教科書みたいな奴だな
どこをどう読めばGetCurrentObjectの第2引数にNULLを指定するなんて話になるのやら
0792デフォルトの名無しさん
2009/02/22(日) 16:13:41Select
0793デフォルトの名無しさん
2009/02/22(日) 16:14:38SelectObjectか
読み間違えた
0794デフォルトの名無しさん
2009/02/22(日) 16:15:310795デフォルトの名無しさん
2009/02/22(日) 16:17:08またしばらくROMることにするよ
みんなすまんかった
0796デフォルトの名無しさん
2009/02/22(日) 16:20:410797デフォルトの名無しさん
2009/02/22(日) 18:03:43二枚のDIBの計算に使う方法はないの?
0798デフォルトの名無しさん
2009/02/22(日) 18:23:510799デフォルトの名無しさん
2009/02/22(日) 18:33:080800デフォルトの名無しさん
2009/02/22(日) 18:50:08くらいに考えてました。すいません。
0801デフォルトの名無しさん
2009/02/22(日) 18:59:020802デフォルトの名無しさん
2009/02/22(日) 19:10:410803デフォルトの名無しさん
2009/02/22(日) 20:25:00Direct3D
0804デフォルトの名無しさん
2009/02/22(日) 20:45:39むしろDirect4D
0805デフォルトの名無しさん
2009/02/22(日) 20:50:33あえてDirect1D
0806デフォルトの名無しさん
2009/02/22(日) 21:35:350807デフォルトの名無しさん
2009/02/23(月) 01:58:33よく見かけるのですが、MSDNやgoogle で検索しても
情報がみつかりません。
このウインドウについて詳しい情報が載っている 書籍やサイトなどありますでしょうか?
0808デフォルトの名無しさん
2009/02/23(月) 02:00:510809デフォルトの名無しさん
2009/02/23(月) 02:02:210810デフォルトの名無しさん
2009/02/23(月) 02:15:220811デフォルトの名無しさん
2009/02/23(月) 05:38:51wc.lpszClassName=゙DirectUIHWND゙; :
:
:
RegisterWndClass(&wc);
0812デフォルトの名無しさん
2009/02/23(月) 13:51:520813デフォルトの名無しさん
2009/02/23(月) 13:57:47sizeof(LPARAM)
0814デフォルトの名無しさん
2009/02/23(月) 14:02:560815デフォルトの名無しさん
2009/02/23(月) 14:28:44関連情報がたくさんあるよ調べてみたらDO
http://www.google.co.jp/search?hl=ja&q=%E3%83%90%E3%82%A4%E3%83%88%E6%83%85%E5%A0%B1&meta=lr%3D&aq=f
0816デフォルトの名無しさん
2009/02/23(月) 14:31:060817デフォルトの名無しさん
2009/02/23(月) 14:34:02↓
0818デフォルトの名無しさん
2009/02/23(月) 14:42:35└┘
0819デフォルトの名無しさん
2009/02/23(月) 16:22:260820デフォルトの名無しさん
2009/02/23(月) 18:22:470821デフォルトの名無しさん
2009/02/23(月) 18:30:08なにか思いつくことはないでしょうか??
__declspec(dllexport) int __stdcall isBinary(FILE *f_in)
{
int c;
while((c=fgetc(f_in))!=EOF){
if(0x00==c||0x0e==c||0x0f==c
||0x11==c||0x12==c||0x13==c||0x14==c
||0x18==c||0x19==c||0x1a==c||0x1b==c)
{
return 1;
}
}
return 0;
}
コンパイルも成功し、エラーメッセージも表示されません。
DLL化する前は動作したんですが .....
0822デフォルトの名無しさん
2009/02/23(月) 18:41:320823デフォルトの名無しさん
2009/02/23(月) 18:43:10常に0が返るとか?
0824デフォルトの名無しさん
2009/02/23(月) 19:00:37思いつくことはないですか?って聞いてるの。
そんな余計なレスはいらない
0825デフォルトの名無しさん
2009/02/23(月) 19:17:06バカのくせに何で偉そうなの?
0826デフォルトの名無しさん
2009/02/23(月) 19:19:020827デフォルトの名無しさん
2009/02/23(月) 19:19:11プログラムは貴方の書いたとおりに動作します。
まずは、貴方自身の頭脳レベルをどうかしたほうが良いなと
思いつきました。
0828デフォルトの名無しさん
2009/02/23(月) 19:22:25思いつくことで良いんだぞ
0829デフォルトの名無しさん
2009/02/23(月) 19:24:090830デフォルトの名無しさん
2009/02/23(月) 19:25:40DLLと呼び出し側でFILE*をやりとりしてるのが悪い
0831デフォルトの名無しさん
2009/02/23(月) 19:27:49FILE *f
これは自分のヒープ領域に取るんだろ?
それをDLLに渡して見えるんだっけ。
32ビットならフラットだから見えるんだっけ?
取り合えずDLLをデバッグモードで動かしてみろよ
0832デフォルトの名無しさん
2009/02/23(月) 19:39:43呼び出し側もちゃんと __stdcall になってる?
EXEとDLLで共通の msvcrt を使っているのか、スタティックリンクして
いるのか、とか。
ビルド方法や現象をちゃんと書いてくれたらもっとましなアドバイスが
できるんだけどねえ。
0833デフォルトの名無しさん
2009/02/23(月) 20:00:160834デフォルトの名無しさん
2009/02/23(月) 20:11:250835デフォルトの名無しさん
2009/02/23(月) 20:13:220836デフォルトの名無しさん
2009/02/23(月) 20:13:29全く同じCRT DLLに動的リンクしている場合を除いて駄目
http://support.microsoft.com/kb/190799/ja
http://msdn.microsoft.com/ja-jp/library/ms235460.aspx
>>834
それは本気で言っているのか
0837デフォルトの名無しさん
2009/02/23(月) 20:15:420838デフォルトの名無しさん
2009/02/23(月) 20:17:11システムDLL だからといって、Win32 API に含まれる訳じゃありません。
0839デフォルトの名無しさん
2009/02/23(月) 20:17:420840デフォルトの名無しさん
2009/02/23(月) 20:23:10システム DLL ではない、というなら、msvcrt も同様です。
0841デフォルトの名無しさん
2009/02/23(月) 20:23:450842デフォルトの名無しさん
2009/02/23(月) 20:25:340843デフォルトの名無しさん
2009/02/23(月) 20:28:13msvbvm60.dll○
VB6JP.DLL×
で中途半端だよね。Windows7ではどうなるんだろ。
0844デフォルトの名無しさん
2009/02/23(月) 20:38:25一般のアプリケーションはmsvcrXX.dllを使えと言われるようになった。
http://msdn.microsoft.com/ja-jp/library/abx4dbyh.aspx
にもかかわらずmsvcrt.dllを使い続けるのは、
非公開APIやネイティブAPIを使うのと似たような感じではないかと思う。
0845デフォルトの名無しさん
2009/02/23(月) 20:39:56VC6以下やgccだと普通にmsvcrt使えるからな
0846デフォルトの名無しさん
2009/02/23(月) 20:45:23でも、msvcrt でエクスポートされてる関数を Win32 API と呼ぶのは違和感あるな。
ドキュメントの区分も違うし。
0847デフォルトの名無しさん
2009/02/23(月) 20:51:532000 → VC6
XPSP1以下 → VC7.0
XPSP2以降 → VC7.1
Vista → VC8
まあ今でもVC6使ってるならがんがん使っていいと思うがw
0848デフォルトの名無しさん
2009/02/23(月) 21:17:08人に勧めるのは違う
0849デフォルトの名無しさん
2009/02/23(月) 21:25:570850デフォルトの名無しさん
2009/02/23(月) 21:26:52C言語真っ向から否定
0851デフォルトの名無しさん
2009/02/24(火) 07:35:520852デフォルトの名無しさん
2009/02/24(火) 09:43:36今もVC6がメインなのにどうすればいいんだ
0853デフォルトの名無しさん
2009/02/24(火) 11:34:17イベントログを使う方法だと復帰の時タイムラグが3秒ぐらいあるし、eventtriggers.exeはXPHOMEだから付いてない。
なんかない?
0854デフォルトの名無しさん
2009/02/24(火) 11:45:09使うなとは書かれていない
つまり>>844は馬鹿
0855デフォルトの名無しさん
2009/02/24(火) 12:03:020856デフォルトの名無しさん
2009/02/24(火) 12:11:010857デフォルトの名無しさん
2009/02/24(火) 12:11:54でもあそこ、濃厚な豚骨がまったりねっとりと舌に絡んできて、
絶妙な味加減なんだよね。
叉焼がすっげー分厚いのも嬉しい。
酒が程良く入ったところに、ガッツりいきたいね。
0858デフォルトの名無しさん
2009/02/24(火) 12:12:41喧嘩すんなよ
叩くなら俺にしとけ
0859デフォルトの名無しさん
2009/02/24(火) 12:18:23絶妙な味加減なんだよね。
○○がすっげー分厚いのも嬉しい。
酒が程良く入ったところに、ガッツりいきたいね。
エロい奴だな
0860デフォルトの名無しさん
2009/02/24(火) 12:19:540861デフォルトの名無しさん
2009/02/24(火) 13:06:440862デフォルトの名無しさん
2009/02/24(火) 14:06:120863デフォルトの名無しさん
2009/02/24(火) 15:40:38変換がおかしいがマいいや
0864デフォルトの名無しさん
2009/02/24(火) 16:11:34ものが見当たりませんが、入手先あるでしょうか?
0865デフォルトの名無しさん
2009/02/24(火) 16:24:45お前の脳内にしか存在しない物の入手先なんて知らねーよ
0866デフォルトの名無しさん
2009/02/24(火) 16:27:35誰でもいいので入手先をお願いします
0867デフォルトの名無しさん
2009/02/24(火) 16:30:58それにも答えられない >>865 に、人生のすべての災いが乗り移りますように. (−人−)ナムナム
0868デフォルトの名無しさん
2009/02/24(火) 16:31:540869デフォルトの名無しさん
2009/02/24(火) 16:34:10早く答えてよ〜
どうせ答えられないんでしょ?www
0872デフォルトの名無しさん
2009/02/24(火) 16:41:080874デフォルトの名無しさん
2009/02/24(火) 16:41:340875デフォルトの名無しさん
2009/02/24(火) 16:48:270876デフォルトの名無しさん
2009/02/24(火) 16:50:020877デフォルトの名無しさん
2009/02/24(火) 16:50:380878デフォルトの名無しさん
2009/02/24(火) 17:02:08本人は遊びのつもりかもしれませんが、早めの通院をお勧めします。
0879デフォルトの名無しさん
2009/02/24(火) 17:15:030880デフォルトの名無しさん
2009/02/24(火) 17:15:250881デフォルトの名無しさん
2009/02/24(火) 17:17:150882デフォルトの名無しさん
2009/02/24(火) 17:19:50このプログラムがどの様な挙動をするか分かる方居たら教えていただけませんか?
DWORD WINAPI OutputToSocket(Lunatia lpvoid)
{
LuDATA pthData = (LuDATA)lpvoid;
DWORD dwLen;
char szBuf[1024];
while(pthData->bThreadFlag){
Sleep(100);
BOOL bret = ReadFile(pthData->fd_write,
&szBuf, sizeof(szBuf), &dwLen, NULL);
if(bret == FALSE)
continue;
if(dwLen > 0)
send(pthData->sock, szBuf, dwLen, 0);
}
return 0;
}
0883デフォルトの名無しさん
2009/02/24(火) 17:20:160884デフォルトの名無しさん
2009/02/24(火) 17:21:08ウィルスを方々に撒き散らす
0886デフォルトの名無しさん
2009/02/24(火) 17:30:330887デフォルトの名無しさん
2009/02/24(火) 17:36:59いいや、目覚まし付きMP3プレイヤー(おまけのMP3ネットラジオも付)をC++とAPIで作った
と自慢してた子。.netじゃないぞ、APIだ
0888デフォルトの名無しさん
2009/02/24(火) 17:40:080889デフォルトの名無しさん
2009/02/24(火) 17:41:26本人乙
0890デフォルトの名無しさん
2009/02/24(火) 17:42:17なんだ、やっぱり本人いるじゃんw
0891デフォルトの名無しさん
2009/02/24(火) 17:43:350892デフォルトの名無しさん
2009/02/24(火) 17:45:24「.net」で「MP3を再生する目覚ましと時計」を作ったんでしょ?
C++とAPIで作ったなんて見栄を張らなくていいよw
0893デフォルトの名無しさん
2009/02/24(火) 17:51:20へーネットラジオまで付いてるのか
そんなの書いてなかったのにどうしてそんな事まで知ってるのかなwww
> 231 :221[sage]:2008/11/18(火) 00:11:20
> あるよ。
> 時間も指定できるし。
>
> あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
> フリーソフトにすら公開してねーけどw
0894デフォルトの名無しさん
2009/02/24(火) 17:52:19APIで目覚まし付MP3プレイヤー(ネットラジオ付)でしたか
これはどうも失礼しました
0895デフォルトの名無しさん
2009/02/24(火) 17:52:25お前ほんとにキモい奴だな・・・
0896デフォルトの名無しさん
2009/02/24(火) 17:53:21レベルの低さがよくわかる文章だな
さっさとうpしてみろよw 本当はそんなの無いんでしょ?w
0897デフォルトの名無しさん
2009/02/24(火) 17:54:530899デフォルトの名無しさん
2009/02/24(火) 18:01:42言っとくが目覚まし付きMP3プレイヤー(ネットラジオ付) は5,000円のシェアウェアだ。
そしてレジストした正規ユーザーは一万人にも及ぶ。
碌なソフトも作れず他人を煽るだけの似非プログラマーのクズ共とは違うんだよ。
0900デフォルトの名無しさん
2009/02/24(火) 18:03:46若いっていいのう
俺は簡単には出来ないが、でもよ、お前らだったら>>887程度だったらAPIで簡単に出来るんだろ
0901デフォルトの名無しさん
2009/02/24(火) 18:05:550902デフォルトの名無しさん
2009/02/24(火) 18:06:010903デフォルトの名無しさん
2009/02/24(火) 18:06:150904デフォルトの名無しさん
2009/02/24(火) 18:07:540905デフォルトの名無しさん
2009/02/24(火) 18:13:150906デフォルトの名無しさん
2009/02/24(火) 18:15:450907デフォルトの名無しさん
2009/02/24(火) 18:16:05すげーな、去年の11月末ごろに.NET目覚まし時計をバカにされて奮起して
APIで目覚まし付MP3プレイヤーを作ってシェアウェアで売って
それで今まで5000万円稼いだのかよ
たった3ヶ月で開発して売り出して5000万円稼ぐとは…、おまえ天才だよ
0908デフォルトの名無しさん
2009/02/24(火) 18:20:160909デフォルトの名無しさん
2009/02/24(火) 18:22:580910デフォルトの名無しさん
2009/02/24(火) 18:23:110911デフォルトの名無しさん
2009/02/24(火) 18:25:030912デフォルトの名無しさん
2009/02/24(火) 18:25:480913デフォルトの名無しさん
2009/02/24(火) 18:26:470914デフォルトの名無しさん
2009/02/24(火) 18:32:130915デフォルトの名無しさん
2009/02/24(火) 18:33:110916デフォルトの名無しさん
2009/02/24(火) 18:33:32もう天才プログラマーに向かって君付けできないね
これからは目覚まし様と呼ぼう
0917デフォルトの名無しさん
2009/02/24(火) 18:34:48妙なこだわりを持ってるんだな
どの辺があなたの琴線に触れたのか詳しく知りたいものだ
0918デフォルトの名無しさん
2009/02/24(火) 18:39:18お前らの仕事からすれば目覚ましが作ったソフトって全然たいしたことないだろ?
それに火病反応するなんて...
0919デフォルトの名無しさん
2009/02/24(火) 18:48:20目覚ましの反応が面白いからでしょうかね
てか、みんな目覚ましにまんまと釣られただけじゃねーの
0920デフォルトの名無しさん
2009/02/24(火) 18:48:23ヒント:ここには煽るだけの馬鹿しかいない
0921デフォルトの名無しさん
2009/02/24(火) 18:51:18まずそのシェアウェアを見てみよう
URLは?
0922デフォルトの名無しさん
2009/02/24(火) 18:54:140923デフォルトの名無しさん
2009/02/24(火) 18:56:360924デフォルトの名無しさん
2009/02/24(火) 18:57:280925デフォルトの名無しさん
2009/02/24(火) 18:58:260926デフォルトの名無しさん
2009/02/24(火) 18:59:59なんか突然目覚ましって出てくるのが不思議なんだよな
.netで作ったころの目覚ましの反応ってそんなに面白かったのか
>>920
午後のカキコってそんな奴の多いからな
>>921 スパムメールで販売
0927デフォルトの名無しさん
2009/02/24(火) 19:06:39左下に矢印がないアイコン(オリジナルのアイコン?)を取得する
方法ありませんでしょうか?
SHGFI_ICONLOCATIONでアイコン場所をゲットしてそこから取る方法も
考えたのですが、アイコン場所がヒットしない場合があったりするので、
なんかいい方法あったらよろしくお願いします。
0928デフォルトの名無しさん
2009/02/24(火) 19:10:19空気を読め!!
0929デフォルトの名無しさん
2009/02/24(火) 19:11:17空気の読み方を教えてください。
0930デフォルトの名無しさん
2009/02/24(火) 19:12:430931デフォルトの名無しさん
2009/02/24(火) 19:12:43今はどんなレスにも煽ってくる馬鹿いて荒れてるから・・・
0932デフォルトの名無しさん
2009/02/24(火) 19:21:180933デフォルトの名無しさん
2009/02/24(火) 21:00:59目で見るんじゃない!肌で感じるんだ!
0934デフォルトの名無しさん
2009/02/24(火) 21:22:17しまった現状、APIに関してはこちらでも結構答えて貰えそう
(ここじゃググレカス)
C言語なら俺に聞け(入門篇) Part 45
http://pc11.2ch.net/test/read.cgi/tech/1235044065/
0935デフォルトの名無しさん
2009/02/24(火) 21:35:57体の良い荒らし依頼じゃねーか
0936デフォルトの名無しさん
2009/02/24(火) 21:47:37どんなAPIがありますか?
こんなAPIってありますか?
はここ
C/C++でAPIを使ったら巧く動きません。何故ですか?
このC/C++でのAPI使用例を改造して目的を達したいのですが、
どすればいいですか?
はC言語スレ
でいいんじゃないのか?
0937デフォルトの名無しさん
2009/02/24(火) 21:50:49pb4h->bV4RedMask = 0x00FF0000;
pb4h->bV4GreenMask = 0x0000FF00;
pb4h->bV4BlueMask = 0x000000FF;
pb4h->bV4AlphaMask = 0xFF000000;
ビットマップファイルを覗くとBGRAの順に並んでるんです。
絵を見ても異常はないんだけどバグですか?
0938デフォルトの名無しさん
2009/02/24(火) 21:55:030939デフォルトの名無しさん
2009/02/24(火) 21:58:230940デフォルトの名無しさん
2009/02/24(火) 22:31:52けど、気にするのはソケットプログラムくらいか?
0941デフォルトの名無しさん
2009/02/24(火) 22:35:23正しく表示されているのは奇跡だ
バクじゃなく奇跡
たとえば0x1122334と
書いた場合、どのように並んでて欲しいんだ
11223344,22114433,44332211....
それが分らないと、なんともいえないぞ
0942デフォルトの名無しさん
2009/02/24(火) 22:46:134バイトの整数をディスクに書き込む場合
上位4バイト目
上位3バイト目
上位2バイト目
上位1バイト目
の順に書かれる場合が多いようです。
(最上位=1バイト目として数えた場合)
それぞれのプログラミング言語のライブラリが意図的に
そのようにしているというよりか、ライブラリが下請けに
出しているAPIやドライバがそのように書き込み、
全く同業のAPIやドライバがそれを読み出して元に戻している
のが実情のようです。APIやドライバの趣味だと思って気にされ
ないほうが良いかと...
他のFTPとかでOSに送った時に問題がありませんか?という質問ならば
それはYesともNoとも言えません。問題が発生する場合もあるかも
知れませんが、大抵の場合、WindowsはメジャーでBMPファイル
だと明示して送れば、先方さんのほうで配慮してくれるようです。
0943デフォルトの名無しさん
2009/02/24(火) 22:48:14win32スレに誘導されました。
繰り返しになりますが、内容は"net localgroup Administrators GroupX /add"
というコマンドをC++で実現したいです。
自分なりに調べましたが、
ttp://www.google.co.jp/search?hl=ja&safe=off&q=Administrators%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AB%E3%83%A1%E3%83%B3%E3%83%90%E3%82%92%E8%BF%BD%E5%8A%A0+win32+API&lr=
で検索し、NetLocalGroupSetMembersを使えばいいのかな?とあたりをつけました。
NetLocalGroupSetMembersでnet localgroup Administrators Groupx /addを実現できるでしょうか?
なにか違うような気がするんですが…
よろしくお願いします。
0944デフォルトの名無しさん
2009/02/24(火) 22:58:350945デフォルトの名無しさん
2009/02/24(火) 23:01:41system じゃダメかな?
0946デフォルトの名無しさん
2009/02/24(火) 23:13:39AdministratorsグループにGroupXというメンバを追加する、というコマンドと理解しています。
>>945
やっぱりそうですかね。個人的にはnetを消してる人がいないかを懸念しています。
いないとは思いますが、、、
最終的な落としどころは、ShellExecute()やCreateProcess()やsystem()を
使うことかな、という気持ちはあります。
0947デフォルトの名無しさん
2009/02/24(火) 23:15:22ADSI って手もあるだろうけど。
0948デフォルトの名無しさん
2009/02/24(火) 23:23:07NetLocalGroupAdd とか
0949デフォルトの名無しさん
2009/02/24(火) 23:24:41そっちはドキュメント見る限り、グループの作成じゃない?
0950デフォルトの名無しさん
2009/02/24(火) 23:29:08ありがとうございます。
NetLocalGroup〜を調べてみて、自分なりに試してみます。
あとは、SIDの作成もよくわからないので、調べてみます。
どもでした
0951デフォルトの名無しさん
2009/02/24(火) 23:30:32●持ちなので、ほぼ確実にスレを立てられますが、、、
プログラム板はほとんど始めてなので、空気読めてなくてすいません。
0952デフォルトの名無しさん
2009/02/24(火) 23:32:49テンキーのEnterキーだけが認識しません
keybd_eventでキーボードの情報を送る先のアプリを色々変えたり
いくつか別のPCでも試したのですがダメでした
原因分かる方いますか?
WinAPIは素人なんですが
Private Declare Sub keybd_event Lib "user32.dll" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const KEYEVENTF_KEYUP = &H2
Public Const VK_SEPARATOR = &H6C 'テンキー[Enter]
sub test()
call keybd_event(VK_SEPARATOR,0,0,0)
call keybd_event(VK_SEPARATOR,0,KEYEVENTF_KEYUP,0)
end sub
VBだと上のような使い方でいいんですよね?
どこがおかしいんでしょう?
お願いします
0953デフォルトの名無しさん
2009/02/24(火) 23:37:36VK_SEPARATOR でいいの?
0954デフォルトの名無しさん
2009/02/24(火) 23:40:55ディスクに書き込む段階でなく、メモリに置かれるときに並びが変わる。
APIやドライバが並び替えてるのではなく、CPUのアーキテクチャ上そうなる。
0955デフォルトの名無しさん
2009/02/24(火) 23:42:31エンディアン とか バイトオーダー でググるといいよ
0956デフォルトの名無しさん
2009/02/24(火) 23:44:25API/ドライバより
API/ドライバは何もしてないぞw
CPUの癖だ。
4バイト連続してるメモリから整数を読み取る命令や
書き込む命令の際にビット並びを反転させる癖がある。
プログラムのほうで、それをやったものをAPI/ドライバ
に持ってこられているので、そういった現象が起こる。
こちらは基本的には1バイトずつ書き込んでる(読み取ってる)
だけだ。(こっちは書き込むデータの4バイト整数一気読みするよう
なことも基本的にはしてない)
0957デフォルトの名無しさん
2009/02/24(火) 23:56:07メモリですが...
私はCPUから書き込まれた値を忠実に保持し
返してるだけなんですが...
0958デフォルトの名無しさん
2009/02/25(水) 00:04:25OSの中の小人さん?プログラムの中の小人さんですか?
0959デフォルトの名無しさん
2009/02/25(水) 00:19:52貴方はそれをどうして知ったのでしょうか?
0960デフォルトの名無しさん
2009/02/25(水) 00:45:570961デフォルトの名無しさん
2009/02/25(水) 01:03:360962デフォルトの名無しさん
2009/02/25(水) 01:10:40じゃあ頼む
0963デフォルトの名無しさん
2009/02/25(水) 01:59:12寝る前に見たら、レスがついていたので、スレ立てました
http://pc11.2ch.net/test/read.cgi/tech/1235494464/
0964デフォルトの名無しさん
2009/02/25(水) 02:06:39おつー
0965デフォルトの名無しさん
2009/02/25(水) 03:07:43Window を ある位置まで少しずつ移動するAPIってありませんでしたっけ?
自前で移動しなくてもできた気がしたんですが・・・。
0966デフォルトの名無しさん
2009/02/25(水) 05:09:140967デフォルトの名無しさん
2009/02/25(水) 07:25:560968デフォルトの名無しさん
2009/02/25(水) 18:32:05動いているというレスがあって、01の足し算だけでは動かないと思うぞとか
足し算だけじゃどう頑張っても無理ではなかろうかとかのレスもあるけど
ほんとのところどうなんですかね、ここにはわかる人います?
0969デフォルトの名無しさん
2009/02/25(水) 18:39:290970デフォルトの名無しさん
2009/02/25(水) 18:39:390971デフォルトの名無しさん
2009/02/25(水) 18:39:430972デフォルトの名無しさん
2009/02/25(水) 18:40:24NAND じゃなかった?
0973デフォルトの名無しさん
2009/02/25(水) 18:46:04またいつものクズが来ちゃったか
0974デフォルトの名無しさん
2009/02/25(水) 18:52:09何ヶ月か前の日経ソフトウェアに載ってたよ
足し算だけでコンピュータが動く仕組みの記事が
引き算も掛け算も割り算も全部足し算で出来るってさ
足し算で出来るというより足し算でやってるかな
0975デフォルトの名無しさん
2009/02/25(水) 18:58:23アホ
0976デフォルトの名無しさん
2009/02/25(水) 18:58:43またいつもの煽りまくるクズが来ちゃったか
0977デフォルトの名無しさん
2009/02/25(水) 19:00:33MoveWindow(HWND, int X, int Y, int nWidth, int nHeight, BOOL)
で指定する int と、 *.rc リソース・ファイルでコントロールのサイズを指定する
値は違うのですか?? rcファイルで指定したサイズを MoveWindow() で使ったら
想定外の結果になったんですが??
0978デフォルトの名無しさん
2009/02/25(水) 19:01:300979デフォルトの名無しさん
2009/02/25(水) 19:05:00MapDialogRect使えばいいと思う。
0980デフォルトの名無しさん
2009/02/25(水) 19:06:32見た目以前に、デバッグして値を確認したのか?
0982977
2009/02/25(水) 19:17:13>>981 ← 誰だよ!
0983デフォルトの名無しさん
2009/02/25(水) 20:25:53俺もそれで悩んだ事があるよ。
BCCForm and BCCSkeltonってやつのおかげで解決したぉ
0984デフォルトの名無しさん
2009/02/25(水) 21:04:110985デフォルトの名無しさん
2009/02/25(水) 21:11:45空のメッセージってどうやって書き込むの?
本文がありませんってエラーになるんだけど。。。
0986デフォルトの名無しさん
2009/02/25(水) 21:23:54そのスレでは、TCM_SETCURSELだけではタブだけが代わり、タブの切り替えに
伴うウィンドウの切り替えができていなくて、その原因にTCN_SELCHANGEを
送信していないとありました。
TCN_SELCHANGEには、LPARAMにNMHDRのデータアドレスを設定するため、
対象タブが他プロセスの場合は共有メモリを使ってやり取りするというレスが
あったところで、レス主は「解決しました。」で終わっています。
同じようにしたと思ってるんですが、どうもうまく行きません。
TCN_SELCHANGE(msgはWM_NOTIFY)の送信先は、タブの親ウィンドウなので、
::GetParent()で::SendMessage()によりメッセージを送信したのですが、
タブの親ウィンドウでSpy++してみてもメッセージを受信していません。
どの辺が原因なのか、教えてください。
以下ソース概要
NMHDR nmdr;
nmhdr.hwndFrom = m_hTab; ← 事前に保持している対象タブのハンドルです
nmhdr.idFrom = 0; ← 対象アプリを動かしてSpy++してみたら、0だったので。
nmhdr.code = TCN_SELCHANGE;
::WriteProcessMemory(m_hProcess, m_pVirtualBuf, &nmhdr, sizeof(nmhdr), &dwByte);
m_hProcessは対象アプリのプロセスハンドル、m_pVirtualBufは事前に確保した
共有メモリです。これを使ってタブのテキストは取得できたんで、確保自体に
問題はないと思います。
:SendMessage(m_hTabParent, WM_NOTIFY, (WPARAM)0, (LPARAM)m_pVirtualBuf);
m_hTaParentは::GetParent(m_hTab)です。事前にSpy++で正しいことを確認しています。
0987デフォルトの名無しさん
2009/02/25(水) 21:40:250988デフォルトの名無しさん
2009/02/25(水) 21:46:00やっぱその方法しかないですか…
その方法ではできているんですが、対象アプリがアクティブ(前面にくる)になって
しまうのが気になって、過去スレにもあったんでもっとスマートなやり方として
>>986のようなことをしようとしてました。
0989デフォルトの名無しさん
2009/02/25(水) 21:47:09Win32API質問箱 Build77
http://pc11.2ch.net/test/read.cgi/tech/1235494464/
0990デフォルトの名無しさん
2009/02/25(水) 21:55:540992デフォルトの名無しさん
2009/02/26(木) 07:50:570993デフォルトの名無しさん
2009/02/26(木) 10:28:140994デフォルトの名無しさん
2009/02/26(木) 10:53:460995デフォルトの名無しさん
2009/02/26(木) 12:20:00PostMessage
0996デフォルトの名無しさん
2009/02/26(木) 12:21:25ってことね
0997デフォルトの名無しさん
2009/02/26(木) 12:53:480998デフォルトの名無しさん
2009/02/26(木) 13:27:150999デフォルトの名無しさん
2009/02/26(木) 13:28:181000デフォルトの名無しさん
2009/02/26(木) 13:28:3010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。