Win32API質問箱 Build80
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/06/04(木) 04:25:40やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
過去スレ、関連リンクは>>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質問箱 Build79
http://pc12.2ch.net/test/read.cgi/tech/1240411224/
0002デフォルトの名無しさん
2009/06/04(木) 04:26:44- 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?displaylang=ja&FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373
- 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/06/04(木) 04:27:2778 ttp://pc12.2ch.net/test/read.cgi/tech/1238289377/
77 ttp://pc12.2ch.net/test/read.cgi/tech/1235494464/
76 ttp://pc11.2ch.net/test/read.cgi/tech/1233622578/
75 ttp://pc11.2ch.net/test/read.cgi/tech/1231423602/
74 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/06/04(木) 04:27:4949 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/06/04(木) 04:27:5924 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/06/04(木) 04:28:10http://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/06/04(木) 04:28:38気にせず質問したらいいと思うよ
0008デフォルトの名無しさん
2009/06/04(木) 05:31:49いつも思うんだけど、Advanced Windowsのとこは注意書きか何か
あった方がいいんじゃないかな?
よく入門書と間違えて買う人いるし。
0009デフォルトの名無しさん
2009/06/04(木) 07:38:330010デフォルトの名無しさん
2009/06/04(木) 07:46:200011デフォルトの名無しさん
2009/06/04(木) 08:16:450012デフォルトの名無しさん
2009/06/04(木) 11:23:550013デフォルトの名無しさん
2009/06/04(木) 11:26:280014デフォルトの名無しさん
2009/06/04(木) 11:29:280015デフォルトの名無しさん
2009/06/04(木) 11:37:49大きい違いはアイコンとWindows9x+IEでのユニコード対応
0016デフォルトの名無しさん
2009/06/04(木) 12:12:330017デフォルトの名無しさん
2009/06/05(金) 10:45:29ありがとう
0018デフォルトの名無しさん
2009/06/05(金) 12:13:51昇格前のユーザを知る方法ってありませんか?
0019デフォルトの名無しさん
2009/06/05(金) 13:29:030020デフォルトの名無しさん
2009/06/05(金) 15:18:180021デフォルトの名無しさん
2009/06/05(金) 21:28:10ちょっとしたコードが、Win98、Meできちんと動作するか確認したいんですが
環境が無い為、自分では確認出来ません
確認したいソースだけupしますので、ビルドから確認まで協力してくれないでしょうか?
確認はファイルをD&Dするだけですので、一瞬で終わります
0022デフォルトの名無しさん
2009/06/05(金) 21:34:270023デフォルトの名無しさん
2009/06/05(金) 21:39:59VirtualPCもたしか無料だったはずだよ
0024デフォルトの名無しさん
2009/06/05(金) 21:48:54レス有難うございます
肝心のDiskが無い為、仮想環境が作れないでいます
98、Meのisoは配布されてましたか?
0025デフォルトの名無しさん
2009/06/05(金) 21:51:360026デフォルトの名無しさん
2009/06/05(金) 21:51:54ないのね、明日で良ければやりましょうか?
98SEしか手持ちがなかったはずなんでご期待に沿えるかは分かりませんが・・・
あとできたらバイナリで欲しいなぁ、仮想環境構築からビルド環境までって時間かかりそうだし
ビルドからやらないと実験になりませんか?
0027デフォルトの名無しさん
2009/06/05(金) 22:32:07MSDNに加入とはお金が掛かるのでしょうか?
>>26
すみませんが、お願い出来ますか?
Win98SEでも十分です!
バイナリでも良いですが、バイナリでupすると不信に思われると思い
ソースでupを考えておりました
バイナリで宜しければ、バイナリでup致します。
0028テスト要員@文教堂
2009/06/05(金) 22:35:42MSDN購読はたしかお金かかりますよ
適当なうpろだにでも上げといてください、拾って実行します
あと、できたら他のスレ移動したいですね、ここ質問スレだし
0029デフォルトの名無しさん
2009/06/05(金) 22:39:51本当に有難うございます
下記スレで如何でしょうか?
プログラム板雑談スレッド Part 3
http://pc12.2ch.net/test/read.cgi/tech/1192485583/
upはバイナリ形式で、明日の午前中に行いたいと思います
確認して頂きたい点はtxtを同梱致します。
0031依頼人 ◆mDDU6VtRHw
2009/06/05(金) 23:30:56テスト要員 ◆hMt.Bw/pUk様
プログラム板雑談スレッド Part 3
http://pc12.2ch.net/test/read.cgi/tech/1192485583/413
予定より早いですが、上記にてupを行いました
自己解凍形式で、同梱したtxtをご確認下さい。
また、質問スレにはこの件の書き込みは最後とします。
関係の無いレスで埋めてしまい本当に申し訳ありませんでした。
0032デフォルトの名無しさん
2009/06/06(土) 06:19:010033デフォルトの名無しさん
2009/06/06(土) 15:38:03MS-Java絡みの関係で、9x系に加え2000以前も全部駄目になっている。
0034デフォルトの名無しさん
2009/06/06(土) 16:20:25もしくは割れてるのを手に入れるかしかないのか・・・
0035デフォルトの名無しさん
2009/06/06(土) 18:11:34なんで持ってないOSまでわざわざ対応する必要があるんだよw
0036デフォルトの名無しさん
2009/06/06(土) 20:23:58まぁMSが見捨てたもんに対応なんて今さらって気はするが・・・
0037デフォルトの名無しさん
2009/06/06(土) 20:56:54これは何か意味があるの?
0038デフォルトの名無しさん
2009/06/06(土) 21:38:57確かに1に見えなくも、つーか化けてね
003937
2009/06/06(土) 21:47:25もちろん俺もそこ見たけど -1(たぶん)と 0 の場合しか書いてなかった
1の場合普通に成功するんだが
WM_CREATEの戻り値ってなんかに使用されるっけ?されないなら別に気にしないことにする
0040デフォルトの名無しさん
2009/06/06(土) 22:11:480042デフォルトの名無しさん
2009/06/07(日) 11:44:46-1を返すとCreateWindowExが失敗してNULLを返す
って書いてあるだろ、しっかり読め
0043デフォルトの名無しさん
2009/06/07(日) 13:03:59おまえこそ、普通にレスを読め
0044デフォルトの名無しさん
2009/06/07(日) 13:12:44MSDNオンラインとオフラインで書いてあることが違う?
0045デフォルトの名無しさん
2009/06/07(日) 14:06:360046デフォルトの名無しさん
2009/06/07(日) 14:15:05化けてるな。マイナス記号がU+002DじゃなくてU+2013という罠。
0047デフォルトの名無しさん
2009/06/07(日) 15:12:24CEの方は化けてないな
0048デフォルトの名無しさん
2009/06/07(日) 15:16:080049デフォルトの名無しさん
2009/06/07(日) 15:19:35化けるフォント使ってる奴が悪いんだろ
0050デフォルトの名無しさん
2009/06/07(日) 17:50:03メインウィンドウとの境目に境界線って消せない?
それとも境界線自信メインウィンドウの物?
0051デフォルトの名無しさん
2009/06/07(日) 17:50:580052デフォルトの名無しさん
2009/06/07(日) 17:59:470053デフォルトの名無しさん
2009/06/08(月) 01:56:52スクロールバーのサムの位置をダイレクトに変えたい。
WM_VSCROLL/HSCROLLで SB_LINEUP/DOWN, SB_PAGEUP/DOWNは動くけど、
SB_THUMBPOSIION(またはSB_THUMBTRACK) 送っても反応しないものがある。
エディットやリッチエディットなどは問題ないけど、Janeのスレビューの部分の TMDITextViewなどは動かないんで、
SetScrollInfo(またはSetScrollPos)で無理やり位置を変えてから、SB_THUMBPOSITIONを送ると動いたりする。
(でもビジュアルスタイルを適応していると動かない)
独自コンポーネントの仕様だと言われればそれまでなんだろうけど、
Spy で調べたのと同じメッセージを送っても動かないのは何でだろ?
0054デフォルトの名無しさん
2009/06/08(月) 07:07:410055デフォルトの名無しさん
2009/06/08(月) 17:00:030056デフォルトの名無しさん
2009/06/08(月) 17:06:070057デフォルトの名無しさん
2009/06/08(月) 17:07:28あ、ありがとう。
それだけわかれはうんこが漏れるほどわかりますた
0058デフォルトの名無しさん
2009/06/08(月) 19:06:39WM_HOTKEYでSetForegroundWindowー>TrackPopupMenu
の処理すると、ポップアップメニュー以外をクリックしても閉じるけど
WM_TIMERで同じ事やると、メニューが閉じない
一応メッセージフックして違いを見たけど、解決に至らなかった
良い方法はないだろうか?
0059デフォルトの名無しさん
2009/06/08(月) 21:07:08TrackPopupMenuのあとにWM_NULLをポストする。
0060デフォルトの名無しさん
2009/06/08(月) 21:42:46ボタンの脇に▼がついてるボタンのことなんていうの?
ナビゲーションボタンであってる?
0061デフォルトの名無しさん
2009/06/09(火) 00:36:500062デフォルトの名無しさん
2009/06/09(火) 00:38:060063デフォルトの名無しさん
2009/06/09(火) 06:49:240064デフォルトの名無しさん
2009/06/09(火) 08:07:48BS_SPLITBUTTON
ツールバーだから、ドロップダウンボタンという事になるのかな。
0066デフォルトの名無しさん
2009/06/10(水) 15:50:05WNDCLASSのlpszClassNameに設定するクラス名の文字列のポインタのことなんですが、
このポインタが指す文字列は、RegisterClass後も、
そのままメモリ上で同一の内容で存在し続ける必要があるのでしょうか?
例えばlpszClassNameに設定した文字列のポインタが、
mallocによって確保された領域を指している場合、RegisterClass後に
それをfreeしてしまっても問題が起きない保障があるのか、、が気になります。
0067デフォルトの名無しさん
2009/06/10(水) 15:53:350068デフォルトの名無しさん
2009/06/10(水) 15:58:500069デフォルトの名無しさん
2009/06/10(水) 16:38:330070デフォルトの名無しさん
2009/06/10(水) 17:54:41メモリ上に永続していることが多いのか。
0071デフォルトの名無しさん
2009/06/10(水) 18:01:06その文字列が永続してなきゃいけないような変則的な作りだったら、ドキュメントにそう
書いてあるはずだ。
0072デフォルトの名無しさん
2009/06/10(水) 18:02:120073デフォルトの名無しさん
2009/06/10(水) 18:13:350074デフォルトの名無しさん
2009/06/10(水) 19:58:21つーか文字列リテラルが永続しない場合ってどんな時だ?
0075デフォルトの名無しさん
2009/06/10(水) 20:11:01SelectClipRgnと等価。
ってMFCの方には書いてあるのだけどなあ。
http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.gdi/2005-08/msg00233.html
というVC++MVPな人の発言もあるし、それで合ってると思う。
0076デフォルトの名無しさん
2009/06/10(水) 20:57:39SetWindowTextだと全て描画しなおしになってしまうので。
0077デフォルトの名無しさん
2009/06/10(水) 21:19:550078デフォルトの名無しさん
2009/06/10(水) 21:21:07うろ覚えですまんが、確かSendMessageとか使うんじゃなかったかな
0079デフォルトの名無しさん
2009/06/10(水) 21:51:15永続する保証がない以上、永続しないケースがあると考えておかないと。
0080デフォルトの名無しさん
2009/06/11(木) 01:12:540081デフォルトの名無しさん
2009/06/11(木) 01:28:260082デフォルトの名無しさん
2009/06/12(金) 09:03:21EM_SETSEL (-1, -1) → EM_REPLACESEL
0083デフォルトの名無しさん
2009/06/12(金) 14:32:58アンロードしてもすぐには消えないことがあるからタチ悪いよな。
0084デフォルトの名無しさん
2009/06/12(金) 22:37:31スレッドAの処理Bと、スレッドCの処理Dを排他的に処理したい
(同時進行で処理したくない)場合、一般的にはどうするの?
これ! っていうAPIがあったりする?
0085デフォルトの名無しさん
2009/06/12(金) 22:41:58同期オブジェクトを使って同期。
0086デフォルトの名無しさん
2009/06/12(金) 22:43:080087デフォルトの名無しさん
2009/06/13(土) 01:16:35EnterCriticalSection(&cs);
EnterCriticalSection(&cs);
EnterCriticalSection(&cs);
...
てやると、普通に最後まで実行できるんだけど、なぜ?
この場合って、二回目のEnterCriticalSectionで永久ループになるんじゃないの??
0088デフォルトの名無しさん
2009/06/13(土) 01:31:37http://msdn.microsoft.com/en-us/library/ms682608.aspx
After a thread has ownership of a critical section, it can make additional calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution.
This prevents a thread from deadlocking itself while waiting for a critical section that it already owns.
The thread enters the critical section each time EnterCriticalSection and TryEnterCriticalSection succeed.
A thread must call LeaveCriticalSection once for each time that it entered the critical section.
0089デフォルトの名無しさん
2009/06/13(土) 01:54:290090デフォルトの名無しさん
2009/06/13(土) 01:59:50(char*)とか(unsigned char*)とかキャストするだけ。Win32APIの出番ではない。
C++ならreinterpret_castな。
0091デフォルトの名無しさん
2009/06/13(土) 09:06:31IHogePtr phoge;
IHoきいせかす *pphoge = &phoge;
とすると&のオーバーロードで入れられないんです。
どうしますか?
0092デフォルトの名無しさん
2009/06/13(土) 10:36:30というかスレ違い
0093デフォルトの名無しさん
2009/06/13(土) 14:09:13IHogePtrへの参照で我慢するか、boost::addressof
0094デフォルトの名無しさん
2009/06/13(土) 22:21:15このようにしてDrawCaptionをDC_BUTTONSフラグを付けて呼び出してもボタンが描画されないのですが
なぜでしょうか?
0095デフォルトの名無しさん
2009/06/13(土) 22:33:36009694
2009/06/13(土) 22:42:020097デフォルトの名無しさん
2009/06/13(土) 22:42:40駄目じゃん
0098デフォルトの名無しさん
2009/06/13(土) 22:48:26beginthread でスレッドAとBをつくったとして、そのAとBの間で
同期する場合にしか使えないの?
beginthread でスレッドを1つだけつくった場合に、
プログラム本体側と、スレッドの間で同期はできないの?
0099デフォルトの名無しさん
2009/06/13(土) 22:54:48何言ってんのか正直わからんが、おまえの言う「プログラム本体」も
スレッドなので「スレッドAとB」の場合と何もかわらんよ。
Advanced Windows読んで出直してこい
0100デフォルトの名無しさん
2009/06/13(土) 23:14:050101デフォルトの名無しさん
2009/06/13(土) 23:15:200102デフォルトの名無しさん
2009/06/13(土) 23:18:380103デフォルトの名無しさん
2009/06/13(土) 23:19:160104デフォルトの名無しさん
2009/06/13(土) 23:23:50俺は面倒だから_beginthreadex使うけど。
0105デフォルトの名無しさん
2009/06/13(土) 23:29:15もう直っている。
Windows Server 2003でFlsAllocと言う関数が導入された。もちろんVistaでも使える。
これには、スレッド終了時に呼ばれるコールバックを登録する機能が付いており、
CRTもこれを使ってのリソース解放ができるようになった。
XP以下放置かよ、と思うならDLL版CRT使えばいい。
0106デフォルトの名無しさん
2009/06/13(土) 23:54:35いいの?
0107デフォルトの名無しさん
2009/06/14(日) 00:11:39今話題になっている件については問題はない
ただし、他にも違いがあるので _beginthreadex にしておくのが無難、MSDNを読んでおけ
0108デフォルトの名無しさん
2009/06/14(日) 18:24:17\| (___
♪ |\ `ヽ、
| \ \
∧ ∧ | \ 〉
(*`q´) | ♪ \ /
‖( つ| ̄ ̄ ̄ ̄ ̄ ̄! ̄ ̄ ̄ ̄ ̄ ̄ノ
‖( 匚______ζ--ー―ーrー´
〓〓JJ .‖ || .||
‖ ‖ ||
0109デフォルトの名無しさん
2009/06/14(日) 18:25:03フィルタドライバを作らずにリアルタイムでオーディオデバイスから出力されるサウンドを加工することは可能でしょうか?
もし可能ならやり方の概要を教えてください。
0110109
2009/06/14(日) 18:25:580111デフォルトの名無しさん
2009/06/14(日) 18:49:590112デフォルトの名無しさん
2009/06/15(月) 08:33:19ピッチがオススメ!
俺はNTTパーソナルだけど、この前サービスが始まったASTELが気になる。
0113デフォルトの名無しさん
2009/06/15(月) 16:52:55自分のスレッドで接続したかどうかを識別する方法を教えてください
0114デフォルトの名無しさん
2009/06/15(月) 18:02:03WSAAsyncSelectのFD_CONNECTをしてからconnectしますが
サーバーから応答が無い時はだいたい30秒くらいで
メッセージが返ってくるのですがこれのタイムアウトはどうやって設定するのですか?
ちなみに、>>113もFD_CONNECTの話です。
0115デフォルトの名無しさん
2009/06/17(水) 02:57:29Windowsが起動してからの
任意のドライブ(物理 or 論理)の
総書き込みバイト数
総読み込みバイト数
をいちばんシンプルに取得する方法はどんな方法でしょうか?
その手のデータを表示するソフトがあるのですが、
OSを起動させてかなり時間が経過してからアプリを起動しても、
OS起動からの正しい数値が表示されます。
常駐してカウントしてるわけではないんです。
これは、どこから取得しているんでしょうか?
0116デフォルトの名無しさん
2009/06/17(水) 03:49:43具体的に頼むわ
0117デフォルトの名無しさん
2009/06/17(水) 04:01:59HDDLed Indicator
インジケーターにカーソルを合わせると
OS起動時から起動しなくてもきちんと
任意の物理/論理ドライブのreadとwriteの累積バイト数が出ます
これ、どうやって取得してるんでしょう?
0118デフォルトの名無しさん
2009/06/17(水) 06:01:470119デフォルトの名無しさん
2009/06/17(水) 06:22:06パフォーマンスカウンタでは>>115の後半に書いたようなことは無理ですよね?
0120デフォルトの名無しさん
2009/06/17(水) 07:35:49で見られるのだから、どこかに記録されているのは確か。
パフォーマンスカウンタかWMI辺りなんだろうけど。
0121デフォルトの名無しさん
2009/06/17(水) 09:29:390122デフォルトの名無しさん
2009/06/17(水) 09:40:23DeviceIoControlでFSCTL_FILESYSTEM_GET_STATISTICSだった
0123デフォルトの名無しさん
2009/06/17(水) 14:00:040124デフォルトの名無しさん
2009/06/17(水) 15:09:43LayeredWindowは無理かもしれんが
0125デフォルトの名無しさん
2009/06/17(水) 15:45:340126デフォルトの名無しさん
2009/06/17(水) 16:22:34Thanks!!!
0127デフォルトの名無しさん
2009/06/18(木) 18:29:15これは仕様?
バッファは呼ぶ直前に0クリアしてる
0128デフォルトの名無しさん
2009/06/18(木) 19:07:33後はどんなゴミで埋められようがガタガタ抜かすな、ってスタンス?
0129デフォルトの名無しさん
2009/06/18(木) 19:38:59使用する領域はちゃんと確保した領域にしてる?
ポインタだけ宣言してどこ指してるか不明なまま使ってるとかじゃない?
0130デフォルトの名無しさん
2009/06/18(木) 19:52:03最前面表示ウィンドウ同士だと、通常のウィンドウのようにアクティブな方が手前に表示されてしまいます
0131デフォルトの名無しさん
2009/06/18(木) 20:12:28よりも手前に表示されるウィンドウってどうやったら作れますか?
って話になってしまうので、そういう事はできなくなっている。
0132デフォルトの名無しさん
2009/06/18(木) 20:18:15っていう嫌らしいコードが頭に浮かんだぜ
0133デフォルトの名無しさん
2009/06/18(木) 20:58:12TCHAR buffer[1024];
ZeroMemory( buffer, sizeof(buffer) );
を渡しても問題が発生しています
0134デフォルトの名無しさん
2009/06/18(木) 21:45:45XP
borland c++
なんだが。。。誰か教えてくれ
0135デフォルトの名無しさん
2009/06/18(木) 21:45:59FILE_NOTIFY_INFORMATIONの
FileNameがFileNameLengthの分だけ正しい内容になっていればOKだぞ。
0終端はなされないと書かれてあるしな。
0136デフォルトの名無しさん
2009/06/18(木) 21:50:05ググレカス
答えは出てないが↓
ttp://okwave.jp/qa3337870.html
core2だとレジスタ内に温度が格納されている?↓
ttp://pc-match.spaces.live.com/blog/cns!54C129738D4C3785!201.entry
0137デフォルトの名無しさん
2009/06/18(木) 21:50:110138デフォルトの名無しさん
2009/06/18(木) 22:04:25有難うっ
>0終端はなされないと書かれてあるしな。
これは知らなかった。WideCharToMultiByteでANSI分の文字数取って変換ってやってた
何にせよ、おかげで解決しそうです。有難うございました。
0139デフォルトの名無しさん
2009/06/18(木) 22:52:27フォーカスが当たってる場所に擬似的にテキストボックスを表示させたい
んだが、フォーカスが当たっている座標が分からん。何か良いAPIはないものか。
0140デフォルトの名無しさん
2009/06/18(木) 23:28:11LVM_GETITEMRECT とかでいいんじゃねーの?
0141デフォルトの名無しさん
2009/06/19(金) 00:37:16マウスの右クリックから文字を貼り付けることはできます。
0142デフォルトの名無しさん
2009/06/19(金) 00:50:39メッセージループでTranslateMessageしていない、とか?
0143デフォルトの名無しさん
2009/06/19(金) 01:30:01すげー助かりましたw
分かってることなのになんでこんなの見落としてたんだろう・・・
0144デフォルトの名無しさん
2009/06/19(金) 07:32:39ファイルを複数移動すると取りこぼす時がある
何か改善案ないかな?
0145デフォルトの名無しさん
2009/06/19(金) 11:10:380146デフォルトの名無しさん
2009/06/19(金) 11:16:13勿論承知してる
非同期のマルチスレッドで常に呼んでるけど
ファイルを多数移動すると通知されれず
結果取得の為の待機をしてしまう
このAPIは基本取りこぼしはしない?
0147デフォルトの名無しさん
2009/06/19(金) 15:06:27>lpBytesReturned パラメータにはバッファに書き込まれたバイト数が返ります。
>転送バイト数が 0 の場合、バッファが小さ過ぎて、ディレクトリやサブツリーで発生した
>すべての変更に関する詳細情報を格納できなかったことを表します。
>この場合、ディレクトリまたはサブツリーを列挙して、変更内容を計算する必要があります。
0148デフォルトの名無しさん
2009/06/19(金) 15:23:12まず
300*300の多次元配列を用意して
int pixel[1000][1000];
WM_LBUTTONDOWNのメッセージで
int w = LOWORD(lParam);
int h = HIWORD(lParam);
pixel[w][h] = 1;
UpdateWindow(hWnd);
return 0;
WM_PAINTのメッセージで
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint( hWnd, &ps );
for(int w=0; w<300; w++)
{
for(int h=0; h<300; h++)
{
if(pixel[w][h] == 1)
{
SetPixelV( hDC, w, h, RGB(255,0,0) );
}
}
}
EndPaint( hWnd, &ps );
return 0;
してみたのですが、windowサイズを変えるまで塗られません。
RedrawWindowも試してみましたが、WM_PAINTが発生しないようです。この方法は駄目でしょうか?
それともwindow生成を自分でクラス化してるのですが、そのクラスに問題があるのでしょうか?
0149デフォルトの名無しさん
2009/06/19(金) 15:31:400150デフォルトの名無しさん
2009/06/19(金) 15:39:25デバッガで追ったけど、バッファが足りないっていうのは無かった
関数呼んでWaitで変更通知来るまで待機してるんだが
まだ通知されてるだろうに、そこで待機状態に入る
0151148
2009/06/19(金) 15:47:47ありがとうございます。出来ました。
InvalidateRgn(hWnd, NULL, true);
UpdateWindow(hWnd);
0152148
2009/06/19(金) 16:50:15WM_LBUTTONDOWNのメッセージで
int w = LOWORD(lParam);
int h = HIWORD(lParam);
pixel[w][h] = 1;
InvalidateRect(hWnd, NULL, false);
↑
これだけでOKなんですね
0153デフォルトの名無しさん
2009/06/19(金) 17:24:23┏━┓
┃ ┃
┗━╋━┓
┃ ┃
┗━┛
交点で個別のリージョンに分けたいんですけど、
┏━┓
┃ ┃
┗━┛┏━┓
┃ ┃
┗━┛
簡便な方法ってないものでしょうか。
リージョンに関するWinAPIで対処可能でしょうか。
よろしくお願いします。
0154デフォルトの名無しさん
2009/06/19(金) 17:33:490155153 ◆D9KRK95MhY
2009/06/19(金) 17:37:040156デフォルトの名無しさん
2009/06/19(金) 17:40:560157デフォルトの名無しさん
2009/06/19(金) 17:46:220158デフォルトの名無しさん
2009/06/19(金) 17:51:32できるよ
0159デフォルトの名無しさん
2009/06/19(金) 17:52:26できますね
0160デフォルトの名無しさん
2009/06/19(金) 18:15:270161デフォルトの名無しさん
2009/06/19(金) 19:07:35具体的にアドバイスした方が良いと思われる。
0162デフォルトの名無しさん
2009/06/19(金) 19:13:29┃ ┃
┗━┛┏━┓
┃ ┃
┗━┛
の上記二つのリージョンを作ったら
CombineRgnで混ぜればいいよ
0163デフォルトの名無しさん
2009/06/19(金) 19:45:46リージョンの合成じゃなくて、分離する方法を聞いていると思われる。
0164デフォルトの名無しさん
2009/06/19(金) 21:21:38あ、すまん勘違いしてた
リージョンから分離したいなら、GetRegionDataから作り直す
ビットマップとかから作るなら、CreateRectRgnとCombineRgn組み合わせればいいよ
0165デフォルトの名無しさん
2009/06/19(金) 21:25:54そこからリージョンを作ればいいような気がするな。
ま、APIでそういうことが出来るのかどうかは分からないが。
0166デフォルトの名無しさん
2009/06/19(金) 21:28:16眼球くりぬいてLED埋め込んだ奴
http://vimeo.com/4500681
0167デフォルトの名無しさん
2009/06/19(金) 21:30:49何処の誤爆だ?
怖くて見れない
0168デフォルトの名無しさん
2009/06/19(金) 21:33:020169デフォルトの名無しさん
2009/06/19(金) 21:33:470170デフォルトの名無しさん
2009/06/19(金) 22:11:570171デフォルトの名無しさん
2009/06/19(金) 22:15:42グロイ?
0172デフォルトの名無しさん
2009/06/19(金) 22:17:470173デフォルトの名無しさん
2009/06/19(金) 22:20:470174デフォルトの名無しさん
2009/06/19(金) 22:23:56サンクス。最初の画面で嫌悪感出て見るの辞めた
零見たいにサーモグラフィー埋め込めば良いのに
0175デフォルトの名無しさん
2009/06/19(金) 23:31:53他にアイデアがあれば書いといてあげて。
0176デフォルトの名無しさん
2009/06/19(金) 23:33:140177デフォルトの名無しさん
2009/06/19(金) 23:36:280178デフォルトの名無しさん
2009/06/19(金) 23:57:570179デフォルトの名無しさん
2009/06/20(土) 02:31:110180153 ◆D9KRK95MhY
2009/06/20(土) 10:55:44164さんのビットマップから作る方法を検討してみます。
0181デフォルトの名無しさん
2009/06/20(土) 13:46:04漢字仮名まじりの文をIMEを使って全部ひらがなに逆変換したいんですが、
漢字仮名まじりの文をIMEに設定する関数 ImmSetCompositionString(himc, SCS_SETSTR, str, length, NULL, 0)が
MSIME2002では成功するのにATOK2006では失敗します。
一応MSIMEでは動くものが作れたんですが、ぶっちゃけクソ変換なので、できればATOKを活用したいのです。
何か別の方法がないでしょうか?
ネットで調べても変換操作をしたあとの再変換の方法ならあるんですが、
漢字仮名まじりの文をIMEに設定して逆変換する方法で、ATOKで成功するものが見つけられないんです。
0182デフォルトの名無しさん
2009/06/20(土) 13:51:170183デフォルトの名無しさん
2009/06/20(土) 13:59:03ATOKだと文脈を理解して適切な読み仮名に変換してくれるはずなので、それに期待してるのです。
0184デフォルトの名無しさん
2009/06/20(土) 14:04:21これでうまくいっても、PGでの対応方法は知らないけど。
0185デフォルトの名無しさん
2009/06/20(土) 15:39:29それはOFFになってましたね。
試しにONにしてみると、MSIMEでも逆変換できなくなってしまいました。。。
「詳細なテキストサービスをオフにする」のチェックも変えましたが、こちらは変化なしでした。
Immで始まるIME制御APIは自分が試した大部分でATOKとMSIMEの間で互換性がありました。
しかしIMEとは無関係のところからもってきた文を逆変換することに関してだけは互換性が無いようなのです。
ATOK12ではできたという話がネット上にありましたが、ATOK2006はその方法ではダメでした。
難しいですね。
0186デフォルトの名無しさん
2009/06/20(土) 16:34:41今はコントロールとクライアントの二つをGetWindoxRectでスクリーン座標から強引に求めてるが
どうも違う
0187デフォルトの名無しさん
2009/06/20(土) 16:43:25MapWindowPoints関数を使え。
0188デフォルトの名無しさん
2009/06/20(土) 16:59:52直す気ないのかな?
0189デフォルトの名無しさん
2009/06/20(土) 17:00:310190デフォルトの名無しさん
2009/06/20(土) 17:01:21ImmGetConversionList でいけるはず
0191デフォルトの名無しさん
2009/06/20(土) 17:26:14IME2003以降では使えないけどな
0192デフォルトの名無しさん
2009/06/20(土) 17:47:12自分で調べろ
0193デフォルトの名無しさん
2009/06/20(土) 17:48:370194デフォルトの名無しさん
2009/06/20(土) 17:48:590195デフォルトの名無しさん
2009/06/20(土) 18:01:34OSで応答する分APIが遅い
0196デフォルトの名無しさん
2009/06/20(土) 18:52:31有難うございます!!
0197デフォルトの名無しさん
2009/06/20(土) 18:54:46は?
0198デフォルトの名無しさん
2009/06/20(土) 19:11:46#pragma data_seg(".ShareForHook")
HHOOK MouseHook = NULL;
#pragma data_seg()
を眼にするんだが、何でこれをする意味が良く分からない。
単純にHHOOK MouseHook = NULL;じゃ駄目なの?
0199デフォルトの名無しさん
2009/06/20(土) 19:15:11その中で宣言された変数はどこのプロセスで変更しても全てのプロセスに伝わるわけだ
何で必要なのかはCallNextHookExの第一引数見れば分かる
2000以降は要らないんだっけかな
0200デフォルトの名無しさん
2009/06/20(土) 19:15:120201デフォルトの名無しさん
2009/06/20(土) 19:26:23ライブラリの関数は同じ実行ファイル内にリンクされるのでコストは自分と定義した関数と同じ
APIの場合は、IPCを通じてOS内部にある関数本体のアドレスに引数を渡して結果を受け取るためコスト増
0202デフォルトの名無しさん
2009/06/20(土) 19:31:040203デフォルトの名無しさん
2009/06/20(土) 19:34:530204デフォルトの名無しさん
2009/06/20(土) 19:36:310205デフォルトの名無しさん
2009/06/20(土) 19:37:020206デフォルトの名無しさん
2009/06/20(土) 19:38:39有難う!
MSDNでのSetWindowsHookEx関数では
>グローバルフックは共有リソースであり
と書いてあった
正直まだ解せない部分もあるけど、システムフックの最低限必要のマナーなのね
0207199
2009/06/20(土) 19:43:480208デフォルトの名無しさん
2009/06/20(土) 20:15:170209デフォルトの名無しさん
2009/06/20(土) 21:39:29ImmGetConversionListを使う方法を教えていただき、どうもありがとうございました。
結論からすると、やはり逆変換はMSIME2002ではできて、ATOK2006ではできなかったです。
ソースコードは下記をそのまま使いました。
http://athomejp.com/goldfish/api/yomichange.asp
ATOKの2006は鬼門バージョンなんですかねw
0210デフォルトの名無しさん
2009/06/20(土) 21:54:53あとは、実際の動作をエミュレートするかだな。
0211デフォルトの名無しさん
2009/06/20(土) 21:56:13LeftとRightとかBeginとEndとか
長さが違うのが無性に腹立つんだが
欧米人には美的感覚ってものが無いのか?
0212デフォルトの名無しさん
2009/06/20(土) 22:02:25まずプログラミング言語ありきってか
0213デフォルトの名無しさん
2009/06/20(土) 22:12:340214190
2009/06/21(日) 00:06:522006ではだめですか。ATOK2005は確か出来たはずなんですが… 残念です。
0215sage
2009/06/21(日) 01:02:46IFELanguageを使ってるが。
0216デフォルトの名無しさん
2009/06/21(日) 13:30:24MSDNだとインターネット接続していないと読めないので
0217デフォルトの名無しさん
2009/06/21(日) 13:45:41英語でよければ
http://ghirai.com/hutch/files/win32hlp_big.zip
0218デフォルトの名無しさん
2009/06/21(日) 14:05:47ローカル版のMSDNライブラリ
http://www.microsoft.com/downloads/details.aspx?familyid=7BBE5EDA-5062-4EBB-83C7-D3C5FF92A373&displaylang=ja
0219デフォルトの名無しさん
2009/06/21(日) 14:11:222627.9 MBって大変だな。
0220デフォルトの名無しさん
2009/06/21(日) 15:30:10一番高速な方法はどんなものでしょうか?
0221デフォルトの名無しさん
2009/06/21(日) 15:42:17アルファブレンドをするのであれば
http://d.hatena.ne.jp/n7shi/20080323/1231278248
0222デフォルトの名無しさん
2009/06/21(日) 16:39:090223デフォルトの名無しさん
2009/06/21(日) 16:46:000224デフォルトの名無しさん
2009/06/21(日) 20:22:41どこにあるかご存知の方おられますか?
0225デフォルトの名無しさん
2009/06/21(日) 20:43:27site:microsoft.com wzcでググったらこれが見付かったんだけど違う?
Wireless Zero Configuration Reference
http://msdn.microsoft.com/en-us/library/ms706593.aspx
0226デフォルトの名無しさん
2009/06/21(日) 20:54:18ありがとう、MSDNは見たはずなんだが抜かってたか・・・
0227デフォルトの名無しさん
2009/06/21(日) 21:42:41プログラム起動時に、メインウィンドウとステータスバーのスタイルを弄ると
WM_DRAWITEMの通知の際、CtrlTypeがODT_MENUになるんだが何故?
今まではswitchのdefaultでステータスバーを描画してたが
今はCtrlIDで分岐して描画してる。綺麗な方法じゃないけどね
0228デフォルトの名無しさん
2009/06/21(日) 22:00:34CtrlIDで分岐するのはむしろ正解っぽい。
0229デフォルトの名無しさん
2009/06/21(日) 22:27:16そうなのかっ
ODT_TABとか色々使ってるから、今更IDで判断なんて面倒すぎだぞ…
とりあえずステータスバーだけIDで判断する。有難うね。
0230デフォルトの名無しさん
2009/06/21(日) 22:30:03それとも関数を呼び出すところで初めてチェックされる?
0231デフォルトの名無しさん
2009/06/21(日) 22:37:00Win2k以降のAPIを静的リンクしたEXEを98で実行したら速攻でエラー落ちした
0232デフォルトの名無しさん
2009/06/21(日) 22:42:33自分も書き込んだ後実験して起動時に落ちたわ
0233デフォルトの名無しさん
2009/06/21(日) 22:53:56dllを遅延ロードにすると、初めて読んだところで例外が発生する。
0234デフォルトの名無しさん
2009/06/22(月) 00:16:13静的リンクと呼びたくなるのは分かるが、それは静的リンクじゃなくて暗黙(的)リンクが正しい。
0235デフォルトの名無しさん
2009/06/22(月) 00:41:200236デフォルトの名無しさん
2009/06/22(月) 01:26:000237デフォルトの名無しさん
2009/06/22(月) 01:55:58日本語の項目が少ないとかそういうのか?
0238デフォルトの名無しさん
2009/06/22(月) 02:16:13.NETのSocketクラスが載ってなかったりした。
0239デフォルトの名無しさん
2009/06/22(月) 09:30:50hBitmap = CreateCompatibleBitmap( hDC, 200, 200 );
SelectObject( hDCBuffer, hBitmap );
と
for( int i = 0 ; i < 3 ; i++ ) {
hDCBuffer[i] = CreateCompatibleDC( hDC );
hBitmap[i] = CreateComaptbileBitmap( hDC, 50, 50 );
SelectObject( hDCBuffer[i], hBitmap[i] );
}
では、最初の奴の方がメモリは少なく済むんだよね?
0240デフォルトの名無しさん
2009/06/22(月) 10:04:070241デフォルトの名無しさん
2009/06/22(月) 12:05:20分かっているんですが
GetDC()をnewした場合はReleaseDC()をした後に
deleteをしなければならないのでしょうか?
教えてください。
0242デフォルトの名無しさん
2009/06/22(月) 12:23:47とりあえず、"GetDB()をnewする" のソースコードを書いてみろ
0243デフォルトの名無しさん
2009/06/22(月) 12:24:27HDC *phdc = new HDC;
*phdc = GetDC( ... );
ていうことならWin32 API以前にC++の問題。
0244デフォルトの名無しさん
2009/06/22(月) 12:26:08new ⇔ delete の対は (多分)C++ の要求
0245241
2009/06/22(月) 13:20:12HDC *phdc = new HDC;
*phdc = GetDC( ... );
の後に、
ReleaseDC(phdc);
delete phdc;
としなければならないか?
と言う事です。
>>244さんの返答からして必要そうな感じはしていますが。。。
0246デフォルトの名無しさん
2009/06/22(月) 13:29:00もっと基本的な部分から勉強しなおした方がいいと思う。
new/deleteはAPIの動作とまったく関係ない.し、newで確保したメモリがReleaseDCで解放されることはない。
0249109
2009/06/22(月) 19:26:28Windows上で任意のいろんなソフトが動いていて、それぞれのソフトが音を出したり出さなかったりするわけですけど、
それらすべての音をスピーカーに出力しながら音声認識して文字で表示するようなものを作りたいのです。
スピーカー出力をマイク入力に直結するようなやり方はしたくありません。
0250デフォルトの名無しさん
2009/06/22(月) 19:34:330251デフォルトの名無しさん
2009/06/22(月) 19:47:180252デフォルトの名無しさん
2009/06/22(月) 20:29:08ステレオミキサーで検索
0253デフォルトの名無しさん
2009/06/22(月) 20:34:44GetThreadId
0255デフォルトの名無しさん
2009/06/23(火) 03:59:15今はレジストリのRunに登録して自動実行していますが,これだと管理者権限で
起動できません.かといってrequireAdministratorを設定すればOS起動時にUAC
が出てきてしまいます.
OSはVista 32-bitを使用しています.
0256デフォルトの名無しさん
2009/06/23(火) 04:02:320257デフォルトの名無しさん
2009/06/23(火) 04:05:140258デフォルトの名無しさん
2009/06/23(火) 07:17:570259デフォルトの名無しさん
2009/06/23(火) 10:40:55OS起動時ならサービスに、ログイン時ならタスクで
0260デフォルトの名無しさん
2009/06/23(火) 10:45:15追加されたポップアップメニューを破棄すれば追加したのも一緒に破棄される?
0261デフォルトの名無しさん
2009/06/23(火) 10:45:28サービスが確実。
0262デフォルトの名無しさん
2009/06/23(火) 15:47:100263255
2009/06/23(火) 17:15:021. 自作常駐ソフトをサービス化する
2. 他のサービスプログラムを作り,そのサービスから自作常駐ソフトを起動するようにする
現在管理者権限で起動したい常駐ソフトが2個ほどあるので,1の方法より汎用性が高い2
の方法を検討しているのですが,サービスから起動するプロセスは管理者権限を得られる
のでしょうか?
0264デフォルトの名無しさん
2009/06/23(火) 18:23:570265デフォルトの名無しさん
2009/06/23(火) 18:49:540266デフォルトの名無しさん
2009/06/23(火) 20:42:09|| [最上位の特権で実行する] チェック ボックスをオンにすると、
|| タスク スケジューラは、最小限の特権 (UAC) トークンではなく
|| 管理者特権トークンを使用してタスクを実行します。
ってあるじゃん。わざわざ作るまでもなく、タスクスケジューラで OK
0267デフォルトの名無しさん
2009/06/23(火) 20:47:510268デフォルトの名無しさん
2009/06/23(火) 20:51:380269デフォルトの名無しさん
2009/06/23(火) 21:16:150270デフォルトの名無しさん
2009/06/23(火) 21:18:54ファイルが読み書きできれば、フォーマットされてる。
0271デフォルトの名無しさん
2009/06/23(火) 21:54:280272デフォルトの名無しさん
2009/06/23(火) 22:17:54実行するユーザーが管理者権限無いと管理者にはならないよ、あたりまえだけど。
0273デフォルトの名無しさん
2009/06/23(火) 22:43:38dll.cpp
extern "C" __declspec(dllexport) int __stdcall sq(int x);
int __stdcall sq(int x) {return x * x;};
コマンドプロンプトで
dumpbin /SYMBOLS dll.lib
0274デフォルトの名無しさん
2009/06/23(火) 22:45:13どこにもsqがでてきません・・・ちなみにコンパイラはVC++2008EEです
COFF SYMBOL TABLE
000 00937809 ABS notype Static | @comp.id
001 00000000 SECT2 notype External | __IMPORT_DESCRIPTOR_dll
002 C0000040 SECT2 notype Section | .idata$2
003 00000000 SECT3 notype Static | .idata$6
004 C0000040 UNDEF notype Section | .idata$4
005 C0000040 UNDEF notype Section | .idata$5
006 00000000 UNDEF notype External | __NULL_IMPORT_DESCRIPTOR
007 00000000 UNDEF notype External | dll_NULL_THUNK_DATA
String Table Size = 0x4A bytes
0275デフォルトの名無しさん
2009/06/23(火) 22:46:00000 00937809 ABS notype Static | @comp.id
001 00000000 SECT2 notype External | __NULL_IMPORT_DESCRIPTOR
String Table Size = 0x1D bytes
COFF SYMBOL TABLE
000 00937809 ABS notype Static | @comp.id
001 00000000 SECT2 notype External | dll_NULL_THUNK_DATA
String Table Size = 0x19 bytes
Summary
B7 .debug$S
14 .idata$2
14 .idata$3
4 .idata$4
4 .idata$5
8 .idata$6
0276デフォルトの名無しさん
2009/06/23(火) 22:48:12>dumpbin /EXPORTS dll.lib
0277デフォルトの名無しさん
2009/06/23(火) 22:50:02/. \ |
/⌒ヽ
⊂二二二( ^ω^)二⊃
/| /
./ ( ヽノ|
《/ノ>ノ/
三 レレ
0278デフォルトの名無しさん
2009/06/23(火) 23:10:50でてきました
ありがとう!
0279デフォルトの名無しさん
2009/06/23(火) 23:28:31HANDLE userToken = 0;
if (WTSQueryUserToken(sessionId, &userToken)) {
HANDLE userTokenDup = 0;
if (DuplicateTokenEx(userToken, MAXIMUM_ALLOWED, 0, SecurityIdentification, TokenPrimary, &userTokenDup)) {
LPVOID env = 0;
DWORD creation = CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS;
if (CreateEnvironmentBlock(&env, userTokenDup, FALSE)) {
creation |= CREATE_UNICODE_ENVIRONMENT;
}
else {
env = 0;
}
STARTUPINFO si = { sizeof(STARTUPINFO), 0, L"winsta0\\default" };
PROCESS_INFORMATION pi = { 0 };
retval = CreateProcessAsUser(userTokenDup, L"C:\\Windows\\System32\\notepad.exe", 0, 0, 0, FALSE, creation, env, 0, &si, &pi);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
DestroyEnvironmentBlock(env);
CloseHandle(userTokenDup);
}
CloseHandle(userToken);
}
上記コードをサービスから実行しプロセス(notepad)を起動できましたが,管理者権限しませんでした.どうすれば管理者権限で起動させられるのでしょうか?
0280デフォルトの名無しさん
2009/06/24(水) 01:48:19http://msdn.microsoft.com/ja-jp/magazine/cc163486.aspx
TokenLinkedTokenの辺りではないかと思っている。試したことはない。
0281279
2009/06/24(水) 02:01:16ありがとうございます
今回は
http://www.codeproject.com/KB/vista-security/VistaSessions.aspx
のコードを用いることで解決できました.
0282デフォルトの名無しさん
2009/06/24(水) 02:09:45マウスクリックを検出するにはどうすればいいんでしょうか
0283262
2009/06/24(水) 10:34:540284デフォルトの名無しさん
2009/06/24(水) 10:53:020285デフォルトの名無しさん
2009/06/24(水) 10:53:470286デフォルトの名無しさん
2009/06/24(水) 11:14:280287デフォルトの名無しさん
2009/06/24(水) 11:16:280288デフォルトの名無しさん
2009/06/24(水) 11:30:49サブクラス化してWM_LBUTTONUP
0289デフォルトの名無しさん
2009/06/24(水) 11:35:12APIねーのかよ
役にたたねー奴だなまったく
0290デフォルトの名無しさん
2009/06/24(水) 11:38:37TCHAR sz[24];
HKEY hk;
if (SUCCEEDED(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion"), 0,
KEY_READ, &hk)))
{
DWORD cb = 24 * sizeof(TCHAR);
if (SUCCEEDED(RegQueryValueEx(hk, TEXT("ProductId"), NULL, NULL,
sz, &cb)))
{
MessageBox(NULL, sz, NULL, 0);
}
}
0291デフォルトの名無しさん
2009/06/24(水) 15:27:29自分なりに調べてみたんですが、いまいち詳しいことが載っているサイト、書籍が見つから
なかったので、何かお勧めのサイト、書籍ご存じないでしょうか?
今のところ、VCで画像認識、VBでマイコンの操作できるものがあり、この2つを連携させたいと
思っています。自分は、画像認識を主にやっているので、VC側である程度汎用性をもたせて、
他のプログラムとも連携させたいと考えています。
0292デフォルトの名無しさん
2009/06/24(水) 15:34:48ttp://usatoramax.s174.xrea.com/iga2.htm
0293デフォルトの名無しさん
2009/06/24(水) 16:04:41closeくらいしろよ
0294デフォルトの名無しさん
2009/06/24(水) 17:38:46ありがとうございました
0295デフォルトの名無しさん
2009/06/24(水) 19:33:29SendMessageでWM_COPYDATAを飛ばすのが一番楽。
それ以上は、WindowsSDKの「Interprocess Communications」から
好きなのを選べとしか。
0296デフォルトの名無しさん
2009/06/24(水) 20:09:210297デフォルトの名無しさん
2009/06/24(水) 20:13:160298デフォルトの名無しさん
2009/06/24(水) 21:59:09サブメニューもあるなら再帰で
0299デフォルトの名無しさん
2009/06/24(水) 22:09:00サイズが異なる構造体を扱う場合、
実行時に環境を調べて対応する構造体のサイズを
メンバに代入しなきゃいけないですよね
結構面倒なんですが、楽な方法はないですか
0300デフォルトの名無しさん
2009/06/24(水) 22:12:310301デフォルトの名無しさん
2009/06/24(水) 22:17:160302デフォルトの名無しさん
2009/06/24(水) 22:23:28XP と Vista で構造体サイズが異なる場合、
XP用の構造体使って、XP のサイズで指定しておけば、
Vista であっても XP の仕様範囲内で動作するでしょ
0303デフォルトの名無しさん
2009/06/24(水) 22:32:26何のために構造体に自分自身のサイズを代入するなんて、無駄なことしてると思ってるんだよ。
その手のAPIは、そのサイズを見てバージョンを判断してるんだ。
0304デフォルトの名無しさん
2009/06/24(水) 22:38:21それは調べてる最中にみつけました
便利ですよね
>>302 >>303
いやそれはわかってます
まぁ要するに過去バージョンに対応するのが面倒だというだけです
現実的には>>300さんの言うとおり
XP以降対応とかにしてお茶を濁しておくのが楽なんですかね
ありがとうございました
0305デフォルトの名無しさん
2009/06/25(木) 03:08:41WINVERを望みの値にして、xxx.cbSize = sizeof xxx; で済む話では?
0306デフォルトの名無しさん
2009/06/25(木) 03:10:07あほ
0307デフォルトの名無しさん
2009/06/25(木) 05:25:22Data data = { ... };
hThread[0] = (HANDLE)::_beginthread(func1, 0, &data);
hThread[1] = (HANDLE)::_beginthread(func2, 0, &data);
hThread[2] = (HANDLE)::_beginthread(func3, 0, &data);
::WaitForMultipleObjects(3, hThread, TRUE, INFINITE);
::CloseHandle(hThread[0]);
::CloseHandle(hThread[1]);
::CloseHandle(hThread[2]);
7行目のコードの実行で
hoge.exe の 0x7c94e4ff で初回の例外が発生しました: 0xC0000008: An invalid handle was specified
というエラーが出ます。
どうすればいいのでしょうか?
0308デフォルトの名無しさん
2009/06/25(木) 06:23:27スレ違い。ヘルプを読み直せ。
0309デフォルトの名無しさん
2009/06/25(木) 07:35:160310デフォルトの名無しさん
2009/06/25(木) 09:20:02WinAPIの範疇だと思ったんですが、どのスレが適切だったのでしょうか?
>>309
非ex版はスレッドが終わるのが速すぎると有効なハンドルを返さないんですね。
ex版にしたらエラーでなくなりました。
ありがとうございました。
0311デフォルトの名無しさん
2009/06/25(木) 12:14:330312デフォルトの名無しさん
2009/06/25(木) 13:37:280313デフォルトの名無しさん
2009/06/25(木) 16:10:33Win32API の CreateThread 呼んでるからな
VCの ほぼ生APIと同じ機能の独自ライブラリ って認識だわ
他の開発環境(例えば VB とか)からは呼び出せないので 厳密にはAPIとは呼べない代物じゃない?
0314デフォルトの名無しさん
2009/06/25(木) 16:14:380315デフォルトの名無しさん
2009/06/25(木) 23:55:410316デフォルトの名無しさん
2009/06/26(金) 00:01:380317デフォルトの名無しさん
2009/06/26(金) 01:59:570318デフォルトの名無しさん
2009/06/26(金) 16:58:01自分のスレッドで接続したかどうかを識別する方法を教えてください
0319デフォルトの名無しさん
2009/06/26(金) 20:10:15WSAAsyncSelectのSeeAlsoに、
WSAEventSelectとかselectとか書いてあるんだけどなあ。
.NETとかあるんだし、もう無理しないほうが良いよ?
0320デフォルトの名無しさん
2009/06/27(土) 20:29:15貼付けたダイアログにWM_CLOSE通知しない?
DESTROYは来るけどCLOSEが欲しい
0321デフォルトの名無しさん
2009/06/27(土) 22:08:060322デフォルトの名無しさん
2009/06/28(日) 04:22:03Readfile(hFile, str.GetBuffer(dwSize). .....)
みたいな感じでテキストファイルを読み込もうとしたんですけど
化け化けになってしまいました
こういうやり方では無理ですか?
0323デフォルトの名無しさん
2009/06/28(日) 04:59:550324デフォルトの名無しさん
2009/06/28(日) 05:46:56VCで新規作成保存したテキストは
UNICODEで保存されるものとばかり思ってました><
0325デフォルトの名無しさん
2009/06/28(日) 12:39:05自前で最近使ったファイルを実装したり
関連フォルダを自動で開いたりという
ユーティリティが作れたら便利かなと思ったので。
0326デフォルトの名無しさん
2009/06/28(日) 12:43:350327デフォルトの名無しさん
2009/06/28(日) 12:48:07そのままだったのか…
0328デフォルトの名無しさん
2009/06/28(日) 14:23:17|∧
/ /
(^o^)/ 告白するなら
/( )
(^o^) 三 / / >
\ (\\ 三
(/o^) < \ 三 あの坂の上
( /
/ く 上り切るまでだよ!
0329デフォルトの名無しさん
2009/06/28(日) 15:39:40:::::::::::::::男 は こ {::::::{
:::::::::::::::坂 て の _ ,−v 、::::::、
::::::::::::::::を し _/rァ  ̄ヽn ヽ::::::ヽ
::::::::::::::::よ な -こヽ__)ヽ へフ -‐':::::::::::}
:::::::::::::::::: く /::::::://, 7′:::::::::::::::::::::/
::::_n_ 遠 、:::::::::ー' //-‐ ば の よ オ
:::`ニl lニ い ヽ::::://\ か ぼ う レ
::::`フ \:::::::::ヽ __ ノ:::ー':::::::::::::ヽ り り や は
/'´|_|`ニ_::::::::::::::::::::::::::::::::::::::::::::::l だ は く
:::::::ノ'r三7/::::::::::::::::::::::::::::::::::::::::::::::} か じ
::::::::`フ, 匸/l::::::::::::::::::::::::::::::::::::::::::::/ ら め
:::::: ̄´::: ̄´:::::::::::::::::::::::::::::::::::::::/ な た
0330デフォルトの名無しさん
2009/06/28(日) 17:03:31今、ローカルのコンピュータ名を設定する為に
「SetComputerNameEx」を使用しようとしています。
準備として、以下の通り書いたのですが、見つからないと
言われてしまい、Windbase.hの中身を覗いてみたら
「SetComputerNameEx」の宣言がありませんでした。
#define _WIN32_WINNT 0x0500
#include <windows.h>
これは、どこかでヘッダとライブラリのアップデート版を
入手する必要があるのでしょうか?
環境は、winXP+SP3・VC6.0+SP6です。
すみません、宜しくお願い致します。
0331デフォルトの名無しさん
2009/06/28(日) 17:07:090332デフォルトの名無しさん
2009/06/28(日) 17:12:44> これは、どこかでヘッダとライブラリのアップデート版を
> 入手する必要があるのでしょうか?
当然。
というかそんなこと知らずに今時VC6使うってどうなのよ。
0333330
2009/06/28(日) 17:22:13どこからダウンロードするべきなのか
教えて貰えますでしょうか。
宜しくお願い致します。
0334デフォルトの名無しさん
2009/06/28(日) 17:26:01時間も手間も金で買える。
0335デフォルトの名無しさん
2009/06/28(日) 17:27:320336330
2009/06/28(日) 17:30:04申し訳ないです。
と言う事は、基本的には有償となるのでしょうか?
0337デフォルトの名無しさん
2009/06/28(日) 17:32:42最新のコンパイラだってEEがあるんだから何でも試してみては
0338デフォルトの名無しさん
2009/06/28(日) 17:33:37只、VC6に使えるかは分からないけど
俺もVC6使ってたけど、今はVC++2008にしてる。勿論無料の
0339デフォルトの名無しさん
2009/06/28(日) 17:42:370340デフォルトの名無しさん
2009/06/28(日) 18:06:530341デフォルトの名無しさん
2009/06/28(日) 18:50:410342デフォルトの名無しさん
2009/06/28(日) 18:59:190343デフォルトの名無しさん
2009/06/28(日) 19:16:520344デフォルトの名無しさん
2009/06/28(日) 19:27:210345デフォルトの名無しさん
2009/06/29(月) 00:11:44ワロタw
0346デフォルトの名無しさん
2009/06/29(月) 15:31:03ファイルの種類のところが今何をさしているか取得する方法って
ありますでしょうか?
選択された情報を使ってファイルの保存内容を変更したいです。
0347デフォルトの名無しさん
2009/06/29(月) 15:45:180348デフォルトの名無しさん
2009/06/29(月) 15:46:00ワロタw
0349デフォルトの名無しさん
2009/06/29(月) 16:35:390350デフォルトの名無しさん
2009/06/29(月) 16:39:20nFilterIndex使えばわかりました。
もっといろんな条件で探すように気をつけます
0351デフォルトの名無しさん
2009/06/29(月) 17:35:51自分のスレッドで接続したかどうかを識別する方法を教えてください
0352デフォルトの名無しさん
2009/06/29(月) 17:49:300353330
2009/06/29(月) 18:37:20調べて見たら、これを入れるのは当たり前の事だったみたいですね…。
本当に無知でした。ありがとうございました。
それでは。
0354デフォルトの名無しさん
2009/06/29(月) 19:48:34オクかP2Pで入手したとしか思えん
0355デフォルトの名無しさん
2009/06/29(月) 20:07:050356デフォルトの名無しさん
2009/06/29(月) 20:07:49中古ソフト屋で手に入れたかもしれないだろ。
0357デフォルトの名無しさん
2009/06/29(月) 20:10:05ソフトが盗まれて大変という気持ちより、欲深く意地汚いという印象しか受けない。
0358デフォルトの名無しさん
2009/06/29(月) 20:26:11いろいろ調べてみましたが、見つけることはできませんでした。
ご存知の方が、いましたら教えていただけないでしょうか?
0359デフォルトの名無しさん
2009/06/29(月) 20:44:16それと調べればすぐに引っかかる内容
検索があまいよ
0360デフォルトの名無しさん
2009/06/29(月) 21:33:47どこのみなさんか知らないが、
そんな事言われてもドザ板ソフ板あたりのキチガイ割れ厨の戯言と同じ印象しか受けないよ。
0361デフォルトの名無しさん
2009/06/29(月) 21:36:09反抗したいお年頃だという印象しか受けないよ。
0363デフォルトの名無しさん
2009/06/29(月) 21:54:380364デフォルトの名無しさん
2009/06/29(月) 22:04:33どうせ何も作れない糞餓鬼でしょ。
0365デフォルトの名無しさん
2009/06/29(月) 22:05:46プログラミングを商売にしていないプログラマなんてわんさかいる。
楽しいことができればそれでいいって連中がな。
0366デフォルトの名無しさん
2009/06/29(月) 22:10:260367デフォルトの名無しさん
2009/06/29(月) 22:16:05そんな議論に時間をつぶしている暇があったら一秒でもプログラミングなり研究なりやりたいわけなんだよ。
俺の仕事を他人の手柄にされるのは我慢ならないし、
割れ厨が金を払わないということはソフトやソフトを作った俺に敬意を払っていないということだから不愉快だから、
割れ厨の肩を持つわけではない。
ただ、著作権云々でゴネてる奴は金にしか興味がないプログラマの本当の敵なんじゃね?ってことだ。
それ以前に金儲けに興味があるならわざわざプログラマなんかになりたいと思うわけがないだろ。
プログラマを使う側にいる方がよっぽど儲かる。
金儲けに興味がある現役プログラマは、そうならざるを得なかった奴だけなんだよ。
0368デフォルトの名無しさん
2009/06/29(月) 22:17:53久々に厨房臭がプンプンする文章を見た
0369デフォルトの名無しさん
2009/06/29(月) 22:19:14要するにお前は、
> 金儲けに興味がある現役プログラマは、そうならざるを得なかった奴
↑これなんだろ。
0370デフォルトの名無しさん
2009/06/29(月) 22:19:210371デフォルトの名無しさん
2009/06/29(月) 22:20:200372デフォルトの名無しさん
2009/06/29(月) 22:22:230373デフォルトの名無しさん
2009/06/29(月) 22:23:32> 俺の仕事を他人の手柄にされるのは我慢ならないし、
> 割れ厨が金を払わないということはソフトやソフトを作った俺に敬意を払っていないということだから不愉快
それはプログラミング好きには共通ですね。
著作権やらライセンスの話になると殺気立つ人がいるのはどうもこの辺りが心配だからでしょうねぇ。
0374デフォルトの名無しさん
2009/06/29(月) 22:26:330375デフォルトの名無しさん
2009/06/29(月) 22:26:58幻覚が見える人は大変ですね。
0376デフォルトの名無しさん
2009/06/29(月) 22:29:20「産む機械だ」発言みたいに言葉面だけをとらえて大騒ぎしちゃうDQNと同じだよなw
0377デフォルトの名無しさん
2009/06/29(月) 22:30:50電波文の意図を汲むことまでは習わなかったもんでね・・・
0378デフォルトの名無しさん
2009/06/29(月) 22:34:460379デフォルトの名無しさん
2009/06/29(月) 22:38:14お前国語の成績1だっただろ?
0380デフォルトの名無しさん
2009/06/29(月) 22:38:59俺にはわかるぞ
0381デフォルトの名無しさん
2009/06/29(月) 22:40:580382デフォルトの名無しさん
2009/06/29(月) 22:42:00DQN乙w
まあ、著作権の話はスレ違いだ
0383デフォルトの名無しさん
2009/06/29(月) 22:43:130384デフォルトの名無しさん
2009/06/29(月) 22:44:20俺は金払ったのに金払わないで同じソフト使ってる奴がいるのは許せないって?w
これだからガキはw
0385デフォルトの名無しさん
2009/06/29(月) 22:45:23そんな奴いないよ?
まだ幻覚が見えてるの?
0386デフォルトの名無しさん
2009/06/29(月) 22:46:17そのうち成長すれば学習するだろうよ。
0387デフォルトの名無しさん
2009/06/29(月) 22:50:53パトカーのサイレンが聞こえるだけでビクビクしてるようなものか
0388デフォルトの名無しさん
2009/06/29(月) 22:51:05>>370 >>371 >>372
言葉面に反応しているあたり、どう見ても余裕ある発言に見えません。
きっとどこかの琴線に触れちゃったんだろうね。
0389デフォルトの名無しさん
2009/06/29(月) 22:53:200390デフォルトの名無しさん
2009/06/29(月) 23:04:39書き込み一文だけからは何が言いたいかわからないことが多い。
だからいろいろ遠回りに探りを入れて反応を見てみるということをするわけだ。
それがコミュニケーション能力と違うかな。
0391デフォルトの名無しさん
2009/06/29(月) 23:16:18お前は半年ロムってろ
2chを何も知らん厨房が
0392デフォルトの名無しさん
2009/06/29(月) 23:19:37いや、お前も一緒にROMってろw
0393デフォルトの名無しさん
2009/06/29(月) 23:20:310394デフォルトの名無しさん
2009/06/29(月) 23:26:400395デフォルトの名無しさん
2009/06/29(月) 23:58:29>>384
言ってもいないことを決めつける場合って、自分が置かれている状況をそのまま相手に重ねて考える場合が多い気がするね。
人は自分が置かれている状況に一番興味を持っているわけだから。
0396デフォルトの名無しさん
2009/06/29(月) 23:59:15深い言葉ですな
感服しました
0397デフォルトの名無しさん
2009/06/30(火) 05:40:320398デフォルトの名無しさん
2009/06/30(火) 06:04:020399デフォルトの名無しさん
2009/06/30(火) 06:58:220400デフォルトの名無しさん
2009/06/30(火) 10:13:34自分のスレッドで接続したかどうかを識別する方法を教えてください
0401デフォルトの名無しさん
2009/06/30(火) 10:24:310402デフォルトの名無しさん
2009/06/30(火) 10:44:31どうやってselectで判定したらいいですか?
0403デフォルトの名無しさん
2009/06/30(火) 11:31:37サーバがacceptするよりも前に接続は確立しconnectは完了、データの送信が可能になってselectは書き込み可能を返す
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-3.html#ss3.3
> 3.3 なぜ、サーバが accept() する前に connect() が成功するのですか?
0404デフォルトの名無しさん
2009/06/30(火) 11:35:58そろそろ答えられる奴がいないんだと悟ろうぜ
0405デフォルトの名無しさん
2009/06/30(火) 12:42:11とか数文字送るのにいちいち関数呼ぶやつって…
0406デフォルトの名無しさん
2009/06/30(火) 13:00:02WSAAsyncSelectでFD_CONNECTをしとくとクライアントはacceptを認識してるから
何か知るすべがあるとおもったのですが・・・
フォームにメッセージを送らずにスレッド内で認識するにはやっぱ2を使わないとダメなんですかねこれ
0407デフォルトの名無しさん
2009/06/30(火) 13:08:59C言語ってそんなくだらないこと気にしないと速度維持できないんですね
うんこ言語ですね
0408デフォルトの名無しさん
2009/06/30(火) 13:30:380409デフォルトの名無しさん
2009/06/30(火) 13:33:08caml
0410デフォルトの名無しさん
2009/06/30(火) 14:07:02DLL_EXPORT CALLBACK BOOL dllFunc( );
と定義して、GetProcAddressを用いてdllFuncを取得していますが
VC++2008だと、ビルドエラーが発生します
CALLBACKを外すと、問題なくビルドが行えますが
それだとGetProcAddressでは取得に失敗します
この場合、VC++2008ではdefファイルを使わないと行けないでしょうか?
bccでは問題なくビルド出来、GetProcAddressでも取得出来ています
0411デフォルトの名無しさん
2009/06/30(火) 14:07:520412デフォルトの名無しさん
2009/06/30(火) 14:11:20CALLBACK の場所がまずくね?
DLL_EXPORT BOOL CALLBACK dllFunc( );
0413デフォルトの名無しさん
2009/06/30(火) 14:26:16有難うございます
CALLBACKの場所を仰る通りに変えてみたらビルドに成功しました!
只…出来上がったDLLからGetProcAddressしても取得に失敗し
LoadLibraryからDLLを読込んでもDllMainでのアタッチが来ません
VCからDLL作る場合何か必要な作法ってあるんでしょうか?
もしかして必ずdefが必要とか?
極力一つのIDEでアプリを完成させたいのですが、このままだとDLLだけBCC版になりそうです
0414デフォルトの名無しさん
2009/06/30(火) 14:36:09それ以外だとマングルされた気がする。
0415デフォルトの名無しさん
2009/06/30(火) 14:58:56camlでは関数はただのjmpでしかないからな。
Cの関数はいろいろpushしたりpopしたりeaxにmovしたりするから手間がかかる。
0416デフォルトの名無しさん
2009/06/30(火) 15:00:01defで関数名見られたりとか…まあ、dllからdef取られちゃいますけど
0417デフォルトの名無しさん
2009/06/30(火) 15:02:52普通はexeの中にも関数名とかは残ったままだぞ。
そういう余計なデバッグ情報を消せるツールは存在するが。
0418デフォルトの名無しさん
2009/06/30(火) 15:13:170419デフォルトの名無しさん
2009/06/30(火) 15:26:38原因が不明…
それとアタッチされない問題ですが
DllMainではなくDllEntryPointと定義してた為アタッチされませんでした
DllMainに直したところアタッチはされています。しかし、どちらでもビルド出来るのが不思議です
0420デフォルトの名無しさん
2009/06/30(火) 15:36:34VCのリリースビルドでも関数名は残るぞ。
試しにVCでリリースビルドしたexeをollydbgとかで見てみろよ。
0421デフォルトの名無しさん
2009/06/30(火) 15:40:360422デフォルトの名無しさん
2009/06/30(火) 15:48:02普通の関数名と間違ってたわ、すまん
API呼んだ時は残るんだな
0423デフォルトの名無しさん
2009/06/30(火) 16:02:25>exe, dll, defと配置するのがちょっと嫌なんです
defファイルの役割をなんか勘違いしてないか
dllの作成時に必要なものであって、実行時には要らないよ
0424デフォルトの名無しさん
2009/06/30(火) 16:04:260425デフォルトの名無しさん
2009/06/30(火) 16:19:380426デフォルトの名無しさん
2009/06/30(火) 16:28:22その手のライブラリは
ソケットから文字列読み書きするだけじゃなくて
エラー処理とかしてくれるだろ。
0427デフォルトの名無しさん
2009/06/30(火) 17:11:18>defファイルの役割をなんか勘違いしてないか
>dllの作成時に必要なものであって、実行時には要らないよ
有難うございます。
以前フックするアプリを落としたらdefが同梱されて居たため
実行時にも必要だと思っておりました
必要ないのですね;
>>425
有難うございます。確認してみます
もし、エクスポートされて居ない場合うまい対処法はありますか?
BCCでは問題ありませんが、VC++2008の場合defを用いても現状GetProcAddressに失敗します
0428デフォルトの名無しさん
2009/06/30(火) 17:30:250429デフォルトの名無しさん
2009/06/30(火) 17:32:470430デフォルトの名無しさん
2009/06/30(火) 17:35:51dll内のシンボル名を抜き出せよ
bccで出来るならデフォルトの命名規則が違うだけだ
頭とか末尾になにかつくくらいだろ
0431デフォルトの名無しさん
2009/06/30(火) 17:37:130432デフォルトの名無しさん
2009/06/30(火) 17:37:35まず使ってから質問しなおせ
0433デフォルトの名無しさん
2009/06/30(火) 17:41:430434デフォルトの名無しさん
2009/06/30(火) 19:04:00エクスポートはされていました
只、命名規則が違っていました
EXPORTS
dllFunc1 = _dllFunc1@0
dllFunc2 = _dllFunc2@0
bccでビルドしたのでは@1、@2と綺麗に並んでますが、今回の正直?です
0435デフォルトの名無しさん
2009/06/30(火) 19:09:150436デフォルトの名無しさん
2009/06/30(火) 19:30:59@の後が引数のバイト数になったりする
@0 なら (void) で引数なし
@4 ならポインタとか int とかを一つだけ
0437デフォルトの名無しさん
2009/06/30(火) 19:35:51@0が並んでたら、GetProcAddress( hins, (LPCSTR)0 )で取れなくない?
0438デフォルトの名無しさん
2009/06/30(火) 19:41:50それは関係ない
export されてない関数の命名規則なんて決まってない
0439デフォルトの名無しさん
2009/06/30(火) 22:49:210440デフォルトの名無しさん
2009/07/01(水) 01:44:500441デフォルトの名無しさん
2009/07/01(水) 09:42:38int型やdouble型の値を表示するのって
いちいち型を変換して
TextOutで出力するしかないのでしょうか?
0442デフォルトの名無しさん
2009/07/01(水) 10:27:14printfがやってくれてるなら、TextOutの前にsprintf呼んでそれ渡せばいいだけ
0443デフォルトの名無しさん
2009/07/01(水) 10:36:350444デフォルトの名無しさん
2009/07/01(水) 10:43:510445デフォルトの名無しさん
2009/07/01(水) 10:53:190446デフォルトの名無しさん
2009/07/01(水) 10:56:220447デフォルトの名無しさん
2009/07/01(水) 11:02:230448デフォルトの名無しさん
2009/07/01(水) 11:35:340449デフォルトの名無しさん
2009/07/01(水) 12:13:340450デフォルトの名無しさん
2009/07/01(水) 12:35:49みたいな記述を見たことあるけど、それと関係ある?
そもそもWindowsのカーネルとかその周りのものは一切浮動小数点処理しないって考えでいいのかな
0451デフォルトの名無しさん
2009/07/01(水) 12:54:10とあるコンパイラがランタイムで定義される_fltusedや_ftol2_sseなどに依存するコードをはくだけの話
0452デフォルトの名無しさん
2009/07/01(水) 12:56:36wsprintf(sz, "%d.%d", (int)d, (int)(d * 100) % 100);
MessageBox(NULL, sz, NULL, 0);
0454デフォルトの名無しさん
2009/07/01(水) 14:53:270455デフォルトの名無しさん
2009/07/01(水) 15:00:55double d = 1.01;
0456デフォルトの名無しさん
2009/07/01(水) 16:28:24win32apiで実現可能でしょうか?
0457デフォルトの名無しさん
2009/07/01(水) 16:39:040458デフォルトの名無しさん
2009/07/01(水) 16:42:16PStoreCreateInstanceで可能かも
0459デフォルトの名無しさん
2009/07/01(水) 16:45:51叶
0461デフォルトの名無しさん
2009/07/01(水) 19:03:330462デフォルトの名無しさん
2009/07/01(水) 19:36:120463デフォルトの名無しさん
2009/07/01(水) 19:55:06あとは一発あれば文句ないぞ4番
0464デフォルトの名無しさん
2009/07/01(水) 19:56:140465デフォルトの名無しさん
2009/07/01(水) 20:33:06姉妹
0466デフォルトの名無しさん
2009/07/01(水) 21:49:28自分で作った関数ではどれが速い?
0467デフォルトの名無しさん
2009/07/01(水) 21:53:47MSKBにはFPUとかハードウェアが無くてもカーネルが全部エミュレートするから何も心配するなと書いている
0468デフォルトの名無しさん
2009/07/01(水) 23:31:08低レベルキーボードフックを使おうと、
_tWinMain(){
/* ウィンドウの初期化とか */
/* DirectXの初期化とか */
::SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, ::GetModuleHandle(NULL), 0);
/* メインループ */
}
という感じにしたら、なぜか、
ウィンドウが非アクティブの時にしか、コールバック関数が呼ばれません。
DirectXサンプルのSimpleSampleは、ちゃんと、
ウィンドウがアクティブ時でもコールバック関数が呼ばれてるから、
なんかくだらないヘマしてるだけだとは思うんですが、
他に何か気をつけないといけないことってありましたっけ?
環境:WinXP + VS2003 or VS2008
0469デフォルトの名無しさん
2009/07/01(水) 23:41:210470デフォルトの名無しさん
2009/07/01(水) 23:57:04アフォ
>>468
WH_KEYBOARD_LL のコールバックは特殊でSetWindowsHookExを呼び出したスレッドのメッセージループで発生する。
もちろんメインスレッドとは別スレッドでSetWindowsHookExは使えるけど、その場合そのスレッドでメッセージループを回す必要がある。
もしDirectXの描画をメインスレッドぶん回しでやっていれば、メッセージループが実行されない状態となりコールバックが呼ばれない状態に陥ることがある。
つーか、詳しくリファレンスに載っているだろ?
0471468
2009/07/02(木) 02:05:59>>470
早速の回答、ありがとうございます。
SetWindowsHookExの呼び出しと、メッセージループを同じスレッドに、
というのは、気をつけていたし、ちゃんとしていたつもりです。
(ていうか、全部メインスレッドでやってるはずです。
>DirectXの描画をメインスレッドぶん回しでやっていれば、メッセージループが実行されない状態
でも、これは気がつきませんでした。
たしかに、DirectXは関係ない普通のWinAPIでやったらちゃんといけました。
ttp://msdn.microsoft.com/ja-jp/library/bb219746(VS.85).aspx
これを見て、あまり深く考えずやってしまってました。
でも、DirectXの処理のループを別スレで回しても変わらなかった……。
むう、DXUTは、なんでちゃんといけてるんでしょ。
改めて、調べてきます(⊃Д⊂)
0472デフォルトの名無しさん
2009/07/02(木) 10:56:43wsprintf(sz, "%d.%02d", (int)d, (int)(d * 100 + 0.5) % 100);
MessageBox(NULL, sz, NULL, 0);
0473デフォルトの名無しさん
2009/07/02(木) 11:18:090474デフォルトの名無しさん
2009/07/02(木) 11:23:500475デフォルトの名無しさん
2009/07/02(木) 13:14:370476デフォルトの名無しさん
2009/07/02(木) 13:25:470477デフォルトの名無しさん
2009/07/02(木) 13:41:06有難うございます
ListViewに貼り付けたりすれば勝手にやってくれますが
今回の場合は自前でやるしかないんですね
0478デフォルトの名無しさん
2009/07/02(木) 13:41:48×>>475
○>>476
0479468
2009/07/02(木) 23:39:18とりあえずの原因が発覚したので報告まで。
DirectInputのキーボードオブジェクトの、
Acquire()が何かしらの邪魔をしていたようです。
これをコメントアウトして処理を止めたら、
低レベルキーボードフック関数が、ちゃんと呼ばれるようになりました。
ただ、なんでAcquireしたらダメなのかの理由まではまだわかっていません。
DirectInputも低レベル処理をしてるからなんでしょうか?
DirectInputとの併用って無理なんですかね?
そもそもGetKeyboardState使えってこと?
とりあえず、フルスクリーン時に窓キー無効化とかしたかっただけなので、
フルスクになる時だけDirectInputの協調レベルを変更して逃げてるところです。
0480デフォルトの名無しさん
2009/07/03(金) 01:00:31DirectInput使ってるなら、Windowsキーの無効化はDirectInputで出来るよ。
0481デフォルトの名無しさん
2009/07/03(金) 02:56:33どのメッセージを見ればいいんですか?
0482デフォルトの名無しさん
2009/07/03(金) 04:38:580483デフォルトの名無しさん
2009/07/03(金) 10:21:41wsprintf(sz, "%d.%02d", (int)d, abs(d * 100 + 0.5) % 100);
MessageBox(NULL, sz, NULL, 0);
0484デフォルトの名無しさん
2009/07/03(金) 10:41:570485デフォルトの名無しさん
2009/07/03(金) 10:44:14どのようにすればいいでしょうか?
今は
htemp = CreateRectRgn( 100, 100, 0, 0, );
CombineRgn( htemp, htemp, hsrc, RGN_COPY );
とやってるんですが、RGN_COPYはx,y座標もコピーするんでしょうか?
0486デフォルトの名無しさん
2009/07/03(金) 11:01:38小さい値にすると受信したデータ数じゃなくてSOCKET_ERRORが返ってきます。
これちゃんと受信したバイト数って返してくれないんですか?
受信バッファにはちゃんと受信した分のデータは入ってるのですが
0487デフォルトの名無しさん
2009/07/03(金) 11:07:49そのよーです
http://msdn.microsoft.com/en-us/library/ms740120(VS.85).aspx
> If the datagram or message is larger than the buffer specified,
> the buffer is filled with the first part of the datagram,
> and recvfrom generates the error WSAEMSGSIZE.
0488デフォルトの名無しさん
2009/07/03(金) 11:16:04ああありがとうございます・・
これエラーと区別つかないなあ
まあFD_READイベントの時にやってるからデータはあるはずなんだけど
絶対エラーじゃないって断言できないからなあ・・
0489デフォルトの名無しさん
2009/07/03(金) 14:59:32とあったときにこれを\r\nで区切って
char buff[3][8];
buff[0]="123\r\n"
buff[1]="456\r\n"
buff[2]="789\r\n"
という具合にカッコよくコピーするAPIとかを教えてくださいな
0490デフォルトの名無しさん
2009/07/03(金) 15:02:17そりゃAPIじゃなく自分で書いた方が早いのでは・・・
0491デフォルトの名無しさん
2009/07/03(金) 15:09:20今更だけど、VarBstrFromR8でいいじゃない。
0492デフォルトの名無しさん
2009/07/03(金) 15:09:44とりあえず区切り文字で分割するみたいなのってないですかね?
phpのsplitみたいなのとか
0493デフォルトの名無しさん
2009/07/03(金) 15:13:37しかしこれ非常に嫌われる関数
0494デフォルトの名無しさん
2009/07/03(金) 15:16:030495デフォルトの名無しさん
2009/07/03(金) 15:16:13それ使おうと思ってやってみたけど使いづらいからやめた
先頭にいきなり区切りがあると次いっちゃったりするしそれ
0496デフォルトの名無しさん
2009/07/03(金) 15:29:12区切りがあったら次に行くのはあたりまえでしょ。
自分で書きなさいな。
0497デフォルトの名無しさん
2009/07/03(金) 15:31:37Win32APIにはそういうのないから、自分の使っているプログラミング言語のスレッドで何かないか聞いた方がいいと思う。
0498デフォルトの名無しさん
2009/07/03(金) 15:37:48全然わかってないのね。
区切りを発見したら区切りまでを返すでしょ。
先頭にある場合はNULLを返すのが普通。
strtokはNULLで終わるから使えないつってるの。
自分で見るならこんなの使う意味ないでしょ
>>497
自分の知る限りでは無かったからひょっとしたらあるかもしれないとおもって
0499デフォルトの名無しさん
2009/07/03(金) 15:39:35自分が昔、参考にした Dr. Dobb's の getargs() の code ↓
これの区切り文字を修正したらどうか。
h ttp://se.uwaterloo.ca/~dberry/COURSES/software.engr/goodies/getargs/GETARGS.C
0500デフォルトの名無しさん
2009/07/03(金) 15:40:31でもまあこんな質問するくらいだからしょうがないか
0501デフォルトの名無しさん
2009/07/03(金) 15:41:01いや、先頭に区切りがあったら、区切りをNULに書き換えて、先頭へのポインタを返すべきだろ…
0502デフォルトの名無しさん
2009/07/03(金) 15:41:560503デフォルトの名無しさん
2009/07/03(金) 15:42:520504デフォルトの名無しさん
2009/07/03(金) 15:43:190505デフォルトの名無しさん
2009/07/03(金) 15:45:13君はもうちょっと勉強したほうがいいよ
分からないことは恥じじゃないよ、わからないくせに知ったかするのが恥かしいことなんだから
0506503
2009/07/03(金) 15:47:060507デフォルトの名無しさん
2009/07/03(金) 16:07:480508デフォルトの名無しさん
2009/07/03(金) 16:31:11そうじゃなかったのか
道理でバグが出たわけだ
0509デフォルトの名無しさん
2009/07/03(金) 21:23:59ひょっとしたらあるかもしれないと思って人に聞いてる程度で何言ってんだ
0510デフォルトの名無しさん
2009/07/04(土) 00:05:250511デフォルトの名無しさん
2009/07/04(土) 02:41:29君の方が恥ずかしいから黙ってね
0512デフォルトの名無しさん
2009/07/04(土) 15:10:04例えばWindowsXP付属のレジストリエディタなんかのツリーは
各ノードが開いたら開いたままで使いにくいと思う。
そこでスタイルにTVS_SINGLEEXPANDを指定してるんだが
+-を押すとんなもん関係ないとばかりに開いたままです。
これを統一する方法ないかな?
0513デフォルトの名無しさん
2009/07/04(土) 18:41:47RegexOptions^ Option = gcnew RegexOptions();
Option |= RegexOptions::CultureInvariant;
これでコンパイルエラーerror C2676が出てしまいました・・。
0514デフォルトの名無しさん
2009/07/04(土) 18:44:510515デフォルトの名無しさん
2009/07/04(土) 18:54:19pixels[x][y]をx,y座標のピクセルの色として、配列全体を描画したいんですが、ループでSetPixelを回したら激遅でした
配列をそのままBitMapかなにかのように扱って画面に描画してくれるAPIはありませんか?
0516デフォルトの名無しさん
2009/07/04(土) 18:58:450517デフォルトの名無しさん
2009/07/04(土) 19:15:54こういうのを探してました
サンクスです
0518デフォルトの名無しさん
2009/07/05(日) 08:15:53タブコントロールだとダメなのは、一部のコントロールを共用したいからです。
ダイアログの半分ぐらいはどのタブが選択されていても不変な内容で、残りだけタブごとに変えたいということです。
こういう場合、どのようなプログラムを組んだらいいでしょうか。
なお、別にタブにこだわっているわけではなく、例えばプルダウンボックスで選択されたものによって表示内容が変わるものでもOKです。
よろしくお願いします。
0519デフォルトの名無しさん
2009/07/05(日) 08:30:100520デフォルトの名無しさん
2009/07/05(日) 08:35:24/rイ
</'| |
<\ | | __ ピタ ゴラ スイッ チ♪
ト、\ | | || �f|
| ||\.>|_l ||─┘ミ
| || rー─────‐|L__on
 ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0521デフォルトの名無しさん
2009/07/05(日) 09:02:570522デフォルトの名無しさん
2009/07/05(日) 10:21:140523デフォルトの名無しさん
2009/07/05(日) 10:22:260524518
2009/07/05(日) 11:28:18518でタブコントロールと書いていたのは、プロパティシートのことでした…
リソースエディタで書いたダイアログをウィンドウ内で切り替えながら表示したかったんです。
で、色々調べたらタブコントロールにダイアログを関連づけるサンプルが見つかったので、解決してしまいました。
お騒がせして申し訳ないです。
0525デフォルトの名無しさん
2009/07/05(日) 17:32:16--- DLL ------
SetWindowsHookEx(WH_KEYBOARD_LL, &LowLevelKeyboardProc, hInstance, 0);
...
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION) {
KBDLLHOOKSTRUCT* kbd = reinterpret_cast<KBDLLHOOKSTRUCT*>(lParam);
if (kbd->vkCode == VK_LMENU) {
kbd->vkCode = VK_LWIN;
}
}
return CallNextHookEx(hhk, nCode, wParam, lParam);
}
のようにしたのですが、まったく変換されません。
どうすれば目的の処理を達成できるのでしょうか?
0526デフォルトの名無しさん
2009/07/05(日) 17:38:400527デフォルトの名無しさん
2009/07/05(日) 17:46:57Winキーは特殊だからそれだと無理かも
0528デフォルトの名無しさん
2009/07/05(日) 17:57:41そもそも書き換えってできるのか?
0529デフォルトの名無しさん
2009/07/05(日) 18:01:110530デフォルトの名無しさん
2009/07/05(日) 18:33:410531デフォルトの名無しさん
2009/07/05(日) 18:45:10できるだろ。Xkeymacs とかやってるし。
0533デフォルトの名無しさん
2009/07/05(日) 18:59:000534デフォルトの名無しさん
2009/07/05(日) 19:23:09それを複数のDIBにコピーした場合に使用されるメモリは
ビットマップサイズとほぼ同じサイズですか?
0535デフォルトの名無しさん
2009/07/05(日) 21:12:100536デフォルトの名無しさん
2009/07/06(月) 18:57:27c = INVERSE(a);
d = INVERSE(b);
e = c + d;
f = INVERSE(e);
このようにaとbからfを求める処理があるとき
INVERSEを無くしたり減らしたりはできるでしょうか
0537デフォルトの名無しさん
2009/07/06(月) 19:05:310538デフォルトの名無しさん
2009/07/06(月) 19:59:442バイト以上はソフトウェアでそのまま加算してしまっても速度変わらんかもな。
つーか、宿題レベルだなw
0539デフォルトの名無しさん
2009/07/06(月) 20:00:16のマルチ。
ほっておいてよし。
0540デフォルトの名無しさん
2009/07/07(火) 01:42:02自作のサービスがログオン後になってから実行されてしまうため、
ログオン時に来るメッセージSERVICE_CONTROL_SESSIONCHANGE
を捕まえることができず困っています。
どうすればユーザがログオンする以前、できればログオン画面から
サービスを実行させることが出来るのでしょうか?
現在のサービスはSERVICE_AUTO_STARTで自動実行するように
しています。
0541デフォルトの名無しさん
2009/07/07(火) 01:52:25サービスがアクティブになったとき、すでに有効なセッションを列挙して
ステータス調べて特別あつかいするとかじゃだめなの?
0542デフォルトの名無しさん
2009/07/07(火) 07:56:520543デフォルトの名無しさん
2009/07/07(火) 10:10:48まずこの時点で間違ってるから
0544デフォルトの名無しさん
2009/07/07(火) 16:47:20B 「ご老公様の名を騙る不届き者だ」
C 「ご老公でも構わぬ」
D 「ご老公様、お手向かい致しますぞ」
E 「ご老公様、お命頂戴致します」
F 「ここで死ねばただのちりめん問屋」
G 「悪党らしく死に花を咲かせてくれるわ」
H 「飛んで火に入る夏の虫」
I 「我ら幕臣あってのご老公様ではないか」
J 「先の副将軍もこれで終わりぞ」
K 「もはやこれまで」
L 「笑止千万」 M その他
0545デフォルトの名無しさん
2009/07/07(火) 17:43:14「構わん、やっちまえ!」
0546デフォルトの名無しさん
2009/07/07(火) 17:48:390547デフォルトの名無しさん
2009/07/07(火) 19:47:340548デフォルトの名無しさん
2009/07/07(火) 20:03:57拡張子aviの動画ファイルを再生するために
『Win32API(C言語)編 第48章 動画を再生する』
http://www.geocities.jp/ky_webid/win32c/048.html
をほぼ模写する形でプログラムを組みました。
大抵のaviのコーディックは再生できることを確認したのですが
今回、再生したいデジカメなどで使用されるMotion JPEGについては
再生することができませんでした。
そこで、どなたかWin32APIとC++(Visual Studio)を用いてmotion jpegを再生するプログラムを
教えていただけないでしょうか?
よろしくお願いします。
0549デフォルトの名無しさん
2009/07/07(火) 20:07:00とりあえずググって上位にあったページを貼っとくぜ
http://park2.wakwak.com/~kuma/picvideo.html
0550デフォルトの名無しさん
2009/07/07(火) 20:27:03すみません。質問が悪かったです。
Motion JPEGも含めすべてのAVIファイルはもうコーディックを入れていてWindows Media Playerなどで再生できます。
というより、他の拡張子はコーディックを入れることでWMPでもWIN32APIでも再生できるようになったのに対して
Motion JPEGはもともとWMPで再生可能だったのに、WIN32APIのプログラムからでは再生できません。
(VFWのコーディックにMotion JPEGは含まれています)
おそらくですが、『Win32API(C言語)編 第48章 動画を再生する』の
// AVIファイルをオープン
#ifdef USE_MCI_SEND_STRING
mciSendString( _T("open test.avi type avivideo alias test"), NULL, 0, NULL );
のmciSendStringでMotion JPEGが読み込めていないようなのです。
mciSendString以外を使ってMotion JPEGを読む込むか、mciSendStringになんとかMotion JPEGのライブラリを関連付けて
読み込めるようにするプログラムを作りたいのですが、上手くいきません。
モーションJPEGを拡張子変換するという手法はありますが、それはこちらの都合でNGとされてしまったので上記の方法
またはそれ以外でも良いので、Win32APIとC++(Visual Studio)を用いてmotion jpegを再生する方法をご教授ください。
0551デフォルトの名無しさん
2009/07/07(火) 21:06:000552デフォルトの名無しさん
2009/07/08(水) 06:39:29なくてデバイス名をフルネームで所得する事が出来ないみたいなんですが
他にフルネームで所得出来る方法があるんでしょうか?
0553デフォルトの名無しさん
2009/07/08(水) 19:01:10HANDLE a = CreateEvent(...)
WaitForSingleObject(a); // 一定時間経過後aがシグナル状態になり通過
0554デフォルトの名無しさん
2009/07/08(水) 19:07:08WaitableTimer
0555デフォルトの名無しさん
2009/07/08(水) 19:16:01ありがとうございますっ!!!!
0556デフォルトの名無しさん
2009/07/08(水) 19:16:530557デフォルトの名無しさん
2009/07/08(水) 19:32:39そのドライブにメディアが存在するかを取得する方法を教えていただけないでしょうか?
GetDriveType()でドライブの種別はわかりますが、実際にメディアが挿入されているか
を識別することができません。
0558デフォルトの名無しさん
2009/07/08(水) 19:37:580559デフォルトの名無しさん
2009/07/08(水) 20:16:54子ウィンドウのウィンドウプロシージャのWM_PAINTの中で
BeginPaintした時のHDCでbitbltすると
子ウィンドウ作成時の最初描画されないのですがこれは普通ですか?
もちろんサイズ変えたりすれば描画されます
BeginPaintのHDCを使わずに
ウィンドウ作成時に取得したHDCを代わりに使うと問題ないです
0560デフォルトの名無しさん
2009/07/08(水) 21:02:51しかしDIBsectionって作った直後にすぐBitblitしたら駄目なんでしょうか?
0561デフォルトの名無しさん
2009/07/08(水) 21:31:08子ウィンドウの CreateWindowして、ShowWindowしたあと、
全画面をInvalidateRectして、UpdateRectしてみるといいよ。
後、背景がNULLになってるかどうかも確認した方がいいよ。
0562デフォルトの名無しさん
2009/07/08(水) 21:35:23ENDSESSIONを処理しきる前にウィンドウズが終了する場合ってあるよね?
たまにENDSESSIONの時にファイル保存しようとすると、真っ白なファイルが出来る
0563デフォルトの名無しさん
2009/07/08(水) 22:08:02あ、dibsection直後というよりはCreateWindow直後と言った方がよかったかもしれません
何かウィンドウが作られる前にbitbltしてる感じがしました
言われたこととか加えて色々ちょっと作り直してみます
0564デフォルトの名無しさん
2009/07/08(水) 23:55:121000なら嘘
0565デフォルトの名無しさん
2009/07/09(木) 13:40:14メッセージを送る事は出来ますか?
グローバルhookでdllがある特定のキーを所得した時に
最小化(通知トレイに格納)されているアプリにメッセージを
送りたいのですがアクティブでないと遅れないので困ってます
なにか方法があればよろしくです
0566デフォルトの名無しさん
2009/07/09(木) 13:45:15期待した通りに動かないのは別の問題だろ。
0567デフォルトの名無しさん
2009/07/09(木) 16:15:520568デフォルトの名無しさん
2009/07/09(木) 16:17:57hWndのアドレスを最初にDLL側でコピーして保存してあるんですが
最小化した時だけNULLになってたみたいです
アクティブに戻すと元のアドレスに戻るんですが謎です・・・
0569デフォルトの名無しさん
2009/07/09(木) 16:46:320570デフォルトの名無しさん
2009/07/09(木) 16:48:280571デフォルトの名無しさん
2009/07/09(木) 17:01:41例えば同じアドレス12345678でも、プロセスAのアドレス12345678とプロセスBのアドレス12345678は内容が異なる
これは、プロセスごとにOSがアドレス空間全体を切り替えているから
このため、異なるプロセス内のデータを触ることは(通常は)できない
0572デフォルトの名無しさん
2009/07/09(木) 17:05:19プロセスってのはスレッドとかDLLのことですか?
0573デフォルトの名無しさん
2009/07/09(木) 17:08:530574デフォルトの名無しさん
2009/07/09(木) 17:11:460575デフォルトの名無しさん
2009/07/09(木) 17:18:290576デフォルトの名無しさん
2009/07/09(木) 17:34:460577デフォルトの名無しさん
2009/07/09(木) 17:40:030578デフォルトの名無しさん
2009/07/09(木) 17:40:340579デフォルトの名無しさん
2009/07/09(木) 18:30:32プロセスはタスクマネージャで見れるよ
0580デフォルトの名無しさん
2009/07/09(木) 19:36:49わかるわかる
0581デフォルトの名無しさん
2009/07/09(木) 20:13:24| .,.:/"" ゙‐,. ` /
` .,-''ヽ"` ヽ,,,、 !
、,、‐'゙l‐、 .丿 : ':、
、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、
,r"ツぃ丶 `````` ../ `i、
,.イ:、ヽ/ー`-、-ヽヽヽ、−´ .l゙`-、
_,,l゙-:ヽ,;、、 、、丶 ゙i、,,、
,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、
、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、
.l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._
,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ
,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、−‘` 、‐ |゙゙:‐,
,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,!
j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿
゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/`
`'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/`
``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"`
`"'゙―-、,,,,..、、 : ..,、ー'"'`
: `‘"`―---------‐ヽ``"''''''""
0582デフォルトの名無しさん
2009/07/09(木) 21:03:590583デフォルトの名無しさん
2009/07/09(木) 23:45:33変更する方法を教えて下さいorz
0584デフォルトの名無しさん
2009/07/10(金) 00:24:420585デフォルトの名無しさん
2009/07/10(金) 06:27:17VC持ってるけど
0586デフォルトの名無しさん
2009/07/10(金) 07:13:210587デフォルトの名無しさん
2009/07/10(金) 09:28:40どのようなシーンを想定しているかといいますと、
Firefox Portableにてオプションの「既定のブラウザ」にする設定だとfirefox本体が設定されてしまい、
Firefox Portableが起動していない場合、新規プロファイルで立ち上がってしまいます。
それを回避するために、proxy?となるexeファイル(FirefoxPortable.exe )がありまして、それを既定のブラウザに設定したいのです。
似たようなことを実現するソフトに、下記のソフトがあるのですが、こちらはAPIが違うせいか、Vistaに対応していません
[DefaultBrowser] Set the default browser for your user profile
http://windowsxp.mvps.org/defaultbrowser.htm
0588デフォルトの名無しさん
2009/07/10(金) 14:21:12何処かで画面に貼り付けてタブの切替の際に非表示にしてるってあったけど
やり方が良く分からない
0589デフォルトの名無しさん
2009/07/10(金) 14:34:42http://bytes.com/topic/c/answers/678749-tab-control-win32-api
0590デフォルトの名無しさん
2009/07/10(金) 16:57:07スクロールのメッセージ取得するにはサブクラス化とかしてメッセージ捕まえないと駄目ですか?
他に方法ありますか?
0591デフォルトの名無しさん
2009/07/10(金) 18:44:59この文字をボタンの中央に表示する方法あったら教えてください。
0592デフォルトの名無しさん
2009/07/10(金) 19:02:33yes
0593デフォルトの名無しさん
2009/07/10(金) 19:03:36"\x03hogehoge" だったかな
0594591
2009/07/10(金) 19:25:41それってTB_ADDSTRINGで指定する文字列って事ですよね?
試しにそれをコピペして実験しましたがダメでした。
もしかして文字の先頭に制御コードの何かが入るのでしょうか?
0595デフォルトの名無しさん
2009/07/10(金) 19:39:07lngStyle = SetWindowLong(hwnd, GWL_STYLE, (lngStyle && ~BS_LEFT) || BS_CENTER)
0596デフォルトの名無しさん
2009/07/10(金) 19:43:24ありがとう
0597デフォルトの名無しさん
2009/07/10(金) 19:50:39ありがと
0599デフォルトの名無しさん
2009/07/10(金) 20:12:260600デフォルトの名無しさん
2009/07/10(金) 20:14:45lngStyle = SetWindowLong(hwnd, GWL_STYLE, (lngStyle && ~WS_LEFT) || WS_CENTER)
0601デフォルトの名無しさん
2009/07/10(金) 20:57:350602デフォルトの名無しさん
2009/07/10(金) 21:27:10lngStyle = SetWindowLong(hwnd, GWL_STYLE, (lngStyle & ~BS_LEFT) | BS_CENTER)
lngStyle = GetWindowLong(hwnd, GWL_STYLE)
lngStyle = SetWindowLong(hwnd, GWL_STYLE, (lngStyle & ~WS_LEFT) | WS_CENTER)
0603デフォルトの名無しさん
2009/07/11(土) 14:03:13フォルダのExplorer表示を出しています。そうすると必ずあの青色の
「タスクメニュー」が現れてきます。
通常のエクスプロ−ラだとそれをフォルダツリーに置き換えたり、
検索ツールに置き換えたりできました。
自分のアプリケーション上で、あのタスクメニューを消してしまうことは
できるでしょうか?できるようであればその方法を教えてほしく。
ちなみに、エクスプローラのオプションで「全般」タブ→「作業」のところ
で、「従来のWindowsフォルダを使う」を選ぶとタスクメニューはでなくは
なるのですが、そうすると、Xpでは「写真」表示ビューが使えなくなって
しまうので、「フォルダに共通の作業を表示する」の方で使いたいので
した。このオプションの状態で、プログラムから「タスクメニュー」を消す
方法がありましたら教えてください。
よろしくお願いします!
0604デフォルトの名無しさん
2009/07/11(土) 14:22:390605デフォルトの名無しさん
2009/07/11(土) 15:25:520606デフォルトの名無しさん
2009/07/11(土) 15:27:00if (flag3==1 && flag2==0 && flag1==0 && flag0==1) {...}
とかより
if ((flag & 0x0F) == 0x09) {..}
のほうがわかりやすいじゃない。
…いや、もしかしてビット演算に不慣れだとわかりにくいのか??
0607デフォルトの名無しさん
2009/07/11(土) 16:17:210608デフォルトの名無しさん
2009/07/11(土) 16:49:45if ((flag & 0x0F) == 0x09) {..}
とかより
if (flag3 && !flag2 && !flag && flag0) {...}
のほうがわかりやすい
0609606
2009/07/11(土) 17:14:44まあ、異論は認めるw
0610デフォルトの名無しさん
2009/07/11(土) 17:20:440611デフォルトの名無しさん
2009/07/11(土) 20:27:260612デフォルトの名無しさん
2009/07/11(土) 20:28:590613デフォルトの名無しさん
2009/07/12(日) 00:56:00それを言ったら構造体も規格上はどう配置するか決まってるわけじゃないけど、
そこらへんは妥協ということで。
0614デフォルトの名無しさん
2009/07/12(日) 01:16:020615デフォルトの名無しさん
2009/07/12(日) 11:37:38グループボックスのせいで、上手くDropを受け入れてくれないんだが
スマートな解決策無いかな?
今はグループボックスをサブクラス化して、グループボックスにD&D来たら
EDITに転送するようにしてるんだが、綺麗じゃない
0616デフォルトの名無しさん
2009/07/12(日) 12:35:130617デフォルトの名無しさん
2009/07/12(日) 12:38:59グループボックスとEDITの順番を入れ替えたら?
0618デフォルトの名無しさん
2009/07/12(日) 12:42:19EM_GETSEL
0619デフォルトの名無しさん
2009/07/12(日) 14:34:12マジ有難う!
てっきり後から置いた方が前面に来ると思ってたけど
先に置かないと駄目なのか
0620デフォルトの名無しさん
2009/07/12(日) 16:18:450621デフォルトの名無しさん
2009/07/12(日) 17:24:38ControlServiceでは文字列ではなくてID(整数)しか渡せません
0622デフォルトの名無しさん
2009/07/12(日) 17:43:31名前付きパイプ・メールスロット・ソケットやCOMのようなプロセス間通信でやり取りするしかないはず。
0623616
2009/07/12(日) 17:50:23SendMessage( hWnd_edit, EM_GETSEL, 0, pos );
としたらposに現在カーソル位置までのバイト数が返って来るんじゃないんですか?
0624デフォルトの名無しさん
2009/07/12(日) 18:09:37その3行の書き込みをするよりも、ヘルプでEM_GETSELを調べる方が速いだろう。
VisualStudioなら、そこにカーソル合わせてF1押すだけなんだし。
それでも何が悪いのか分からないのなら、C言語の基礎の問題。
っていうか、EM_GETSELでググれば腐るほどサンプルコード出てくるだろう。
0625デフォルトの名無しさん
2009/07/12(日) 20:08:080626デフォルトの名無しさん
2009/07/12(日) 20:12:50ありがとうございます
そうなんですね
ちょっと不便です..
0627デフォルトの名無しさん
2009/07/12(日) 22:17:39よく知らないけど Atom は渡せないの?
0628デフォルトの名無しさん
2009/07/12(日) 22:36:310629デフォルトの名無しさん
2009/07/12(日) 22:42:43引数にもHINSTANCEもHWNDも入ってないですよね?
0630デフォルトの名無しさん
2009/07/12(日) 22:45:000631デフォルトの名無しさん
2009/07/12(日) 23:00:520632デフォルトの名無しさん
2009/07/12(日) 23:06:020633デフォルトの名無しさん
2009/07/12(日) 23:22:08リークしないようコードは組み、リーク確認用として、mallocやnewを置き換えるコードを用意しましたが
STLを使っているために、確保した数と解放した数があいません
STLを使わないと問題なく確保/解放数はあうのですが
0634デフォルトの名無しさん
2009/07/12(日) 23:23:560635デフォルトの名無しさん
2009/07/13(月) 00:12:19#include <cstdlib>
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#define new ::new( _NORMAL_BLOCK, __FILE__, __LINE__ )
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
0636デフォルトの名無しさん
2009/07/13(月) 00:19:580637デフォルトの名無しさん
2009/07/13(月) 00:23:340638デフォルトの名無しさん
2009/07/13(月) 02:15:030639デフォルトの名無しさん
2009/07/13(月) 02:22:52想像したら何か萌えた
0640デフォルトの名無しさん
2009/07/13(月) 05:32:590641デフォルトの名無しさん
2009/07/13(月) 09:55:580642デフォルトの名無しさん
2009/07/13(月) 13:56:07それをやるAPIを教えてください
0643デフォルトの名無しさん
2009/07/13(月) 14:10:270644デフォルトの名無しさん
2009/07/13(月) 14:13:53ttp://www.wmifun.net/sample/win32_ip4routetable.html
0645デフォルトの名無しさん
2009/07/13(月) 14:19:09ありがありがとう、早速見てみます
0646デフォルトの名無しさん
2009/07/13(月) 14:47:34すみません。
言い方が悪かったです。
route printとか情報取得はできるのですが
route add等の設定する方のAPIを知りたかったですです
0647デフォルトの名無しさん
2009/07/13(月) 14:58:31ttp://www.geekpage.jp/programming/iphlpapi/
0648デフォルトの名無しさん
2009/07/13(月) 15:17:220649デフォルトの名無しさん
2009/07/13(月) 15:30:510650デフォルトの名無しさん
2009/07/13(月) 15:34:36APIが知りたいと書いてるが、そのものズバリのコードじゃないとわからんらしい。
0651デフォルトの名無しさん
2009/07/13(月) 15:45:290652デフォルトの名無しさん
2009/07/13(月) 16:17:260653デフォルトの名無しさん
2009/07/13(月) 16:29:47acanfと書いてるが、そのものズバリのコードじゃないとわからんらしい。
0654デフォルトの名無しさん
2009/07/13(月) 16:48:200655デフォルトの名無しさん
2009/07/13(月) 19:17:08数字を
0656デフォルトの名無しさん
2009/07/13(月) 20:24:34%1と書いてるが、そのものズバリのコードじゃないとわからんらしい。
0657デフォルトの名無しさん
2009/07/13(月) 20:47:360658デフォルトの名無しさん
2009/07/13(月) 21:25:06\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \
('A`)
ノヽノヽ
くく
0659デフォルトの名無しさん
2009/07/13(月) 21:41:449x系でも動くようコード組んでるんだけど、自分でスレッド作って
そこからタイマーイベント発行の方がいいかな?
0660デフォルトの名無しさん
2009/07/13(月) 21:43:170661デフォルトの名無しさん
2009/07/13(月) 21:46:370662デフォルトの名無しさん
2009/07/13(月) 21:57:160663デフォルトの名無しさん
2009/07/13(月) 22:00:20zlibライブラリを使う場合、CreateThreadを使って生成した
スレッドで使うとメモリリーク起こすのでしょうか?
少しスレ違いになっているかもしれませんが宜しく御願いします。
0664デフォルトの名無しさん
2009/07/13(月) 22:00:29そんな気を遣うくらいだったらNTでもタイマーは使っていられないと思う。
そう心配することはないのでは?
終わっているなんて聞いたことがないから適当に答えているけど。
0665デフォルトの名無しさん
2009/07/13(月) 22:04:41有難う。環境が無いから確認出来ないんだよね
配布予定のソフトだけど、確認せずリリースしてみる
0666デフォルトの名無しさん
2009/07/13(月) 22:10:59終わってるじゃ何を聞きたいのか分からんよ。
WM_TIMERの優先度が低いのはWin9xに限ったことではないし、
どっちかっていうとtimeSetEventのコールバックの方が悲惨。
0667デフォルトの名無しさん
2009/07/13(月) 22:46:32そんなこたーない。
0668デフォルトの名無しさん
2009/07/13(月) 22:53:24zlib内でCの標準ライブラリを使うならリークは起こる
>C のランタイムライブラリに記録されている関数を使うスレッドは、CreateThread 関数と ExitThread 関数ではなく、
>C のランタイム関数である beginthread 関数と endthread 関数を使うべきです。この方法に従わないと、
>ExitThread 関数を呼び出したときにわずかなメモリリークが発生します。
>>103-107も参照のこと
0669668
2009/07/13(月) 23:02:18使用するCランタイムの関数にもよるし、zlibやCランタイムの
リンクの方法にもよるので
0671デフォルトの名無しさん
2009/07/14(火) 02:14:23timeSetEventも割とひどいような……
ttp://blogs.msdn.com/windows_multimedia_jp/archive/2009/07/12/timesetevent.aspx
0672デフォルトの名無しさん
2009/07/14(火) 04:51:100673デフォルトの名無しさん
2009/07/14(火) 06:59:53わざわざ高分解能タイマを長周期で使うような奴はいないから、
なかなか表面化しなかったんだろうなあ。
0674デフォルトの名無しさん
2009/07/14(火) 07:29:140675デフォルトの名無しさん
2009/07/14(火) 07:45:52を定義すると型チェックが厳密になるらしいが、これって本当?
borlandのフリーコンパイラで型による警告が大量に出ても
VCだとスルーするんだけど
0676デフォルトの名無しさん
2009/07/14(火) 08:12:580677デフォルトの名無しさん
2009/07/14(火) 09:34:110678デフォルトの名無しさん
2009/07/14(火) 13:33:17別にデータを持っておいて、そこからなんとかIEのフォームに流し込む手はないっすかねぇ。
普通のコントロール(テキストボックスとか)なら、ウィンドウハンドル取ればなんでもできるけど、
フォームじゃそうはいかないっすからねぇ。
今のところ、キー操作系のWinAPIを使ったキーボードマクロっぽい方法しかないかなと
考えているのですが、他にスマートな方法があれば是非。
0679デフォルトの名無しさん
2009/07/14(火) 13:42:560680デフォルトの名無しさん
2009/07/14(火) 14:19:32IEコンポーネントを使い倒すスレ Ver.2
http://pc12.2ch.net/test/read.cgi/tech/1145189322/
0681デフォルトの名無しさん
2009/07/14(火) 14:26:400682デフォルトの名無しさん
2009/07/14(火) 14:54:30とっかかりをありがとうございます。
なるほど、ウィンドウハンドルからIHTMLDocument2を取得して…という感じか。
0683デフォルトの名無しさん
2009/07/14(火) 17:27:46httpでFormデータを直接POSTしたらだめなんか?
0684デフォルトの名無しさん
2009/07/14(火) 17:32:44誰が作ったんだろ
まとめてアップとかできないなんて
0685デフォルトの名無しさん
2009/07/14(火) 17:38:06DBに直接アクセスさせてもらえないの?
0686デフォルトの名無しさん
2009/07/14(火) 19:39:53俺もまれにみる糞システムだと思う。コストの削減もあるんだろうけど。
>>685
ちと絶望的かも。セキュリティに関しては無駄に、そして異常に厳しい。
>>683
その発想は無(ry
最終手段としてそれもありですね。ただぶっつけ本番なのが怖いですが。
みなさんレスありがとうございます。
0687デフォルトの名無しさん
2009/07/15(水) 13:09:020688デフォルトの名無しさん
2009/07/15(水) 13:31:580689デフォルトの名無しさん
2009/07/15(水) 13:36:35そりゃ出来るか出来ないかといわれれば出来るだろう
0690デフォルトの名無しさん
2009/07/15(水) 14:12:280691デフォルトの名無しさん
2009/07/15(水) 14:17:001つの場面の中でエンターキーの機能はそのままで音だけ鳴らないようにしたいんです
0692デフォルトの名無しさん
2009/07/15(水) 14:20:20まず今、警告音が鳴ってる状況を説明してくれよ。
0693デフォルトの名無しさん
2009/07/15(水) 14:24:22エディットボックスの中の文字を書いた後にエンター押させたいんだけどポンッって鳴る
0694デフォルトの名無しさん
2009/07/15(水) 14:27:460695デフォルトの名無しさん
2009/07/15(水) 14:31:070696デフォルトの名無しさん
2009/07/15(水) 14:31:400697デフォルトの名無しさん
2009/07/15(水) 14:37:480698デフォルトの名無しさん
2009/07/15(水) 14:42:50かな
0699デフォルトの名無しさん
2009/07/15(水) 14:48:42KeyPressの中でKeyがVK_RETURNならKey = NULL;しとけ
0700デフォルトの名無しさん
2009/07/15(水) 17:03:320701デフォルトの名無しさん
2009/07/15(水) 18:49:160702デフォルトの名無しさん
2009/07/16(木) 15:02:500703デフォルトの名無しさん
2009/07/16(木) 15:05:420704デフォルトの名無しさん
2009/07/16(木) 15:15:39LoadResource
LockResource
CreateDialogIndirect(Param)
0706デフォルトの名無しさん
2009/07/16(木) 15:36:020707デフォルトの名無しさん
2009/07/16(木) 17:08:57WSAEnumNetworkEvents(Socket, hEvent, &EventFlags);
てやったときに、どちらの関数も 0 を返していて、成功はしているだけど
EventFlags.lNetworkEvents が 0 のときがある。これはなんなの??
何もイベントが発生していないのにWSAEnumNetworkEventsから制御が戻ってきたって事?
0708デフォルトの名無しさん
2009/07/16(木) 20:34:310709デフォルトの名無しさん
2009/07/16(木) 20:57:31ttp://msdn.microsoft.com/ja-jp/library/cc430056.aspx
0710デフォルトの名無しさん
2009/07/16(木) 21:12:07GetAsyncKeyboardStateが無いのは不便ですね
0711デフォルトの名無しさん
2009/07/17(金) 02:43:560712デフォルトの名無しさん
2009/07/17(金) 12:30:09一応メモリ解放とかした方がいいのかな?
ログオフの時はするけど、終了や再起動ならリークもしても関係無いと思うんだが
0713デフォルトの名無しさん
2009/07/17(金) 12:33:34礼儀など気にしないなら、別にどうでも
0714デフォルトの名無しさん
2009/07/17(金) 12:49:030715デフォルトの名無しさん
2009/07/17(金) 13:02:57Memory Mapped FileのことをSectionと呼ぶ場合には、どういった意図が込められているのでしょうか
あるいは殊更に分けて考える必要はないのでしょうか
0716デフォルトの名無しさん
2009/07/17(金) 13:17:07CのmallocとちがってWindowsのresourceは終了時に解放されないものがある
あとはわかるね
0717712
2009/07/17(金) 13:55:09後から追加した機能なので、解放処理をWM_CLOSEや他に混ぜている事もあり
面倒なので、いいかなっと思っていました
アプリが終了してからExitWindowsを呼ぶ為には良い方法は無いでしょうか?
0718デフォルトの名無しさん
2009/07/17(金) 14:24:07そんだけの用途なら、なんかのフラグ立てといて、メッセージループ抜けたらExitWindows呼べば?
0719デフォルトの名無しさん
2009/07/17(金) 14:34:49有難うございます
atexitで設定するか、仰る通りにフラグ経ててループ抜けたら呼ぶようにしてみます
0720デフォルトの名無しさん
2009/07/17(金) 17:18:25は 塩最高 塩以外は邪道 な 素材のうまみを生かす 素材
塩 「塩で」 ぎ の香
甘ったるいタレで焼き鳥が食えるか の タレ厨は味覚障害者
塩もこだわった塩がいい 白.. 異 高い店で食ったことないんだろ?
臭い肉をごまかすためのタレ 焼 . .論 ポテチはうす塩が至高
タレは子供用 AVの見過ぎ き は 素
素 / ̄ ̄ ̄\ 認 タレはタレの味しかしない 材
最終的にたどり着くのは塩 材 .../.\ /. \ め の
の / <●> <●> \ 本 な 焼き鳥=塩 魅
. 「タレ」から「塩」に 味 | (__人__) | 当 い 力
普通は塩 \ `ー'´ / の 高い店なら塩、安い店ならタレ が
シンプルに塩 .. / \ 味 際
甘味にも通ずるものがある 覚 たれ(笑) 食の原点に戻る 立
自分用の塩を携帯してない奴は馬鹿 子供の頃はタレだったが今は塩 つ
塩こそ最高の調味料!!
0721デフォルトの名無しさん
2009/07/17(金) 22:09:37少し調べたんですけど両者の違いがよくわからなくて・・
わかる方いたら教えて頂けませんか?
0722デフォルトの名無しさん
2009/07/17(金) 22:22:030723デフォルトの名無しさん
2009/07/17(金) 22:50:58ISO/ANSI標準規格では、下線部で始まる名前を処理系の独自拡張用に使って良いとしている。
VC++にとっては、strcmpiはなんの標準でもない名前なので、
下線を付けて独自拡張用の名前に適合するようにするのがふさわしいとVC++の制作陣は考えたということ。
ここまで書いたけど、スレ違いだから次はよそで聞け。
0724デフォルトの名無しさん
2009/07/17(金) 23:07:24具体的に言うと、各コントロールにそれぞれ整数を記憶させておきたいです。
現在は、STLのmapを使って、ハンドルとデータを関連付けています。
0725デフォルトの名無しさん
2009/07/17(金) 23:31:15SetProp
0726デフォルトの名無しさん
2009/07/17(金) 23:35:35Set/GetWindowLongPtrでDWLP_USER
Set/GetWindowLongPtrで任意の正整数によるインデックス指定(使用量をWNDCLASS(EX)で指定)
SetProp/GetPropで文字列またはアトムによるキー指定
0727724
2009/07/18(土) 00:40:32自分に最適な方法を吟味して使ってみようと思います。
0728デフォルトの名無しさん
2009/07/18(土) 01:48:56FillRect?PatBlt?それともExtTextOut?
0729デフォルトの名無しさん
2009/07/18(土) 02:14:14自己レス。GWLP_USERだった、すまん。
>>728
自分はExtTextOutが多いなあ。
MFCやWTLだとFillSolidRectという名前でラップされているから、躊躇無く使える。
MFCもWTLも使っていないなら、自前で定義するといいと思う。
0730デフォルトの名無しさん
2009/07/18(土) 10:27:390731デフォルトの名無しさん
2009/07/18(土) 10:28:139x系で実行すると現在のWindowsのバージョンでは起動出来ない
とエラーが発生するんだが、こうなる原因って何かな?
API周りはきちんと動的リンクにしてる
文字列は全てリソースに纏めてしまったが、もしかしてリソースに纏めると9x系って駄目?
0732デフォルトの名無しさん
2009/07/18(土) 10:32:54VisualStudio2008でビルドすると駄目
0733デフォルトの名無しさん
2009/07/18(土) 10:49:23本人に聞けば良いんじゃね?
0734デフォルトの名無しさん
2009/07/18(土) 11:10:18とりあえず質問に対するお答えを待つことにします
0735デフォルトの名無しさん
2009/07/18(土) 11:30:48そう呼んでいる例をあげてくれまいか。
0736デフォルトの名無しさん
2009/07/18(土) 11:34:47有難うございます
borlandでビルドした所きちんと起動しました
VC++2008ではWin9x系に対応出来ないんでしょうか?
0737デフォルトの名無しさん
2009/07/18(土) 11:37:202008はNT4以前、9x系はランタイムでバージョンチェックしてる。
2005にするしか無いかなあ。
0738デフォルトの名無しさん
2009/07/18(土) 12:52:21有難うございます
2008では無理ですか…
別のIDEでビルドするようにしてみます。有難うございました。
0739デフォルトの名無しさん
2009/07/18(土) 14:36:34因みにVC2005でも95だけアウトだった気がする。
0740デフォルトの名無しさん
2009/07/18(土) 15:02:55VS2005でWin95はググれば対処法が出てくる。
0741デフォルトの名無しさん
2009/07/18(土) 15:05:46公式にだめにしたと言っている。
http://msdn.microsoft.com/ja-jp/library/dd695830(VS.100).aspx
0742デフォルトの名無しさん
2009/07/18(土) 16:36:58NTFSで最大のパス長って32768文字ってことになってますが
Vista64bit環境でエクスプローラでフォルダを作ってみると
どうもMAX_PATH制限がかかっているようで250文字付近から
新しいフォルダを作れなくなります
Win32APIでもパス先頭に \\?\付けてUnicode版なら32768文字までと
MSDNに出ていますが
OS標準のエクスプローラで未だMAX_PATH制限があるのは互換性のため?
自分で作るときもMAX_PATH制限のあるAPIで気にせず使えばいいのでしょうか?
0743デフォルトの名無しさん
2009/07/18(土) 17:42:05.NETだと「\\?\」を付ける形式は殆ど通らないしなあ。
(大抵ArgumentExceptionで蹴られる。)
MS的にはMAX_PATHの範囲内でやりくりしろ、って方針に見える。
つまりは、MAX_PATH制限は半ば公式って事でOKなんじゃないかな。
0744デフォルトの名無しさん
2009/07/18(土) 18:29:380745デフォルトの名無しさん
2009/07/18(土) 18:43:39windowsにってことならtaskkillのことになるのか?
0746デフォルトの名無しさん
2009/07/18(土) 18:44:070747デフォルトの名無しさん
2009/07/18(土) 18:49:18何をやりたいかによる。例えば、文字通り殺したいならTerminateProcessだけど。
0748デフォルトの名無しさん
2009/07/18(土) 18:59:41それはコマンドっぽい
>>747
signalハンドラで捕まるもの全て
受け取ったものをそのまま子プロセスに流したい
0749デフォルトの名無しさん
2009/07/18(土) 19:13:56ANSI/ISO Cになぜかsignal/raiseが収録されているせいで、C/C++ではsingal関数が使えるけれど、
Windowsではlibc層でエミュレーション的に実装されている。
そのため、大抵は外から直接シグナルを送る手段なんて存在しない。
CygwinやSFU/SUAなどといったUnix互換環境ならそっちのkill使えよと言うところ。
0750デフォルトの名無しさん
2009/07/18(土) 19:18:05もしかしてTerminalProcess呼ばれたことも知らないまま死亡?
0751デフォルトの名無しさん
2009/07/18(土) 19:57:44コンソールでのCtrl+C入力をWindows APIで取得するにはSetConsoleCtrlHandler。
初期状態のハンドラはExitProcessを呼び出す。
(しかし、C/C++ならSIGINT用にlibcがハンドラを登録しているはず)
こんな調子で、ほかのものもだいたいは別の手段となる。
0752デフォルトの名無しさん
2009/07/18(土) 19:58:14ウィンドウアプリならWaitForSingleObjectでオブジェクトがシグナル状態か非シグナル状態かを確認できる
スレッドが終了すればスレッドのハンドルがシグナル状態になるし、CreateEventとかで自分で好きにイベントを作って
SetEventやResetEventでシグナル状態を変えれるよ…たぶん
0753デフォルトの名無しさん
2009/07/18(土) 20:10:08いや、GUIアプリで、SetConsoleCtrlHandlerに対比させる何かといえばWM_CLOSEだと思う。
0754デフォルトの名無しさん
2009/07/18(土) 22:30:25やっぱエクスプローラでもサポートしてないとこからも
そうなんでしょうね
有り難うございました
0755デフォルトの名無しさん
2009/07/18(土) 23:41:43qが入ると終了する。どうするの?
0756デフォルトの名無しさん
2009/07/18(土) 23:42:360757デフォルトの名無しさん
2009/07/18(土) 23:47:260758デフォルトの名無しさん
2009/07/19(日) 00:08:100759デフォルトの名無しさん
2009/07/19(日) 00:18:070760デフォルトの名無しさん
2009/07/19(日) 00:57:190761デフォルトの名無しさん
2009/07/19(日) 07:44:23ウィンドウプロシージャ内でGetAsyncKeyStateを使ってみましたがうまくいきません。
コンソールだとフォーカス外でも取得できるのですがどのようにしたらいいでしょうか?
環境はXPとBCCです
0762デフォルトの名無しさん
2009/07/19(日) 11:11:04SetWindowsHookEx
0764デフォルトの名無しさん
2009/07/19(日) 15:47:56やはりグローバルフックを使うしかありませんか。サンクス
0765デフォルトの名無しさん
2009/07/19(日) 16:59:54GetLastError()の値が更新されることはあり得るんでしょうか
例外をキャッチする箇所でGetLastErrorを呼ぶという設計に問題があるのかもしれませんが...
0766デフォルトの名無しさん
2009/07/19(日) 17:28:53自分の都合で勝手にAPIの動作が、自分流になることを期待するなんて、どんだけゆとりなんだよ!
0767765
2009/07/19(日) 17:47:38失敗したときにSetLastErrorでエラーコード設定しておいて、例外で抜けるようにしておけば、
呼び出し元のコードで失敗を処理するか、放置するか選択できて、
特に、失敗頻度が低いであろうコードで見通しのよいコードになると思ったのですが...
0768デフォルトの名無しさん
2009/07/19(日) 17:48:20GetLastError()の値が更新される
0769デフォルトの名無しさん
2009/07/19(日) 17:51:57XPのビジュアルスタイルがクラシックみないになってしまうのって
回避できないんでしょうか?
0770デフォルトの名無しさん
2009/07/19(日) 17:58:590771765
2009/07/19(日) 18:12:46やはりそういうことがあるというなら、回避策を検討します
0772デフォルトの名無しさん
2009/07/19(日) 18:16:060773デフォルトの名無しさん
2009/07/19(日) 18:42:57自分は例外クラスにGetLastErrorのコードを渡すようにしている。
__declspec(noreturn)
void ThrowWin32Exception()
{
throw Win32Exception(GetLastError());
}
0774769
2009/07/19(日) 18:59:49ありがとうございます。
調べてきました。
SetLayeredWindowAttributes
UpdateLayeredWindow
ですね。
これ使わないと実現不可ですかね?
可能であればSetWindowRgnが良いのですが。
0775デフォルトの名無しさん
2009/07/19(日) 19:36:330776769
2009/07/19(日) 19:54:51了解。
0777デフォルトの名無しさん
2009/07/20(月) 01:53:07wsprintf(str, "%d", hensu);
CopyMemory(ic.szTip, str, 5);
上のようにして変数が変わっても初期値(0)のまま表示されます
ホバーするたびに値が更新されるにはどうすればいいですか?
0778デフォルトの名無しさん
2009/07/20(月) 02:07:59NIM_MODIFYでShell_NotifyIconを呼び出さないと駄目。
というか、その二行で本当に反映されると思っていたのなら、
APIの一般的な設計を理解していない気がする。
0779デフォルトの名無しさん
2009/07/20(月) 02:24:51できました。本当にトンクス。精進します
0780デフォルトの名無しさん
2009/07/20(月) 03:00:38LATにウィンドウオブジェクトの識別子があって、LATのインデックス、とかでしたっけ?
0781デフォルトの名無しさん
2009/07/20(月) 10:28:030782デフォルトの名無しさん
2009/07/20(月) 14:49:470783デフォルトの名無しさん
2009/07/20(月) 14:52:07突っ込みどころ満載だが、平気で嘘つくの良くない!
0784デフォルトの名無しさん
2009/07/20(月) 14:52:130785デフォルトの名無しさん
2009/07/20(月) 14:58:29別に同期オブジェクトだの共有メモリマップハンドルだのは別腹ですだよ
0786デフォルトの名無しさん
2009/07/20(月) 15:02:280787デフォルトの名無しさん
2009/07/20(月) 15:17:38プロセスBのウィンドウを操作するためのハンドルをプロセスAで取得する
このときプロセスAで取得したハンドルとプロセスBで元々使っていたハンドルは
同じウィンドウを指していても共有されてるわけではない
0788デフォルトの名無しさん
2009/07/20(月) 15:22:580789デフォルトの名無しさん
2009/07/20(月) 15:29:450790デフォルトの名無しさん
2009/07/20(月) 15:38:010791780
2009/07/20(月) 15:52:51HWNDを別プロセスへ何らかの手段で持っていっても、使えない。
WM_COPYDATAの場合だけは、そのメッセージの場合に限りシステムがHWNDを輸送するための特別な処理をしていたと思う。
HWNDの中身はメモリポインタではなく単純な整数(1とか2)になってて
プロセスごとに1つあるシステム的なオブジェクトを管理するテーブルのインデックスだったと思う。
そのインデックスで参照した先にあるのがメモリポインタだったかウィンドウオブジェクトの識別子だったかは覚えてない。
0792デフォルトの名無しさん
2009/07/20(月) 15:57:120793デフォルトの名無しさん
2009/07/20(月) 16:13:20いや、HWNDの値はシステムで一意だが。
0794デフォルトの名無しさん
2009/07/20(月) 17:10:36有効ではない、と言ってる人がいる?まさかね。
0795デフォルトの名無しさん
2009/07/20(月) 17:13:21貴方の感じてる違和感を具体的に言語化出来ますか?
>>793
ソースはありますか?
ハンドル系は全てプロセス内でしか使えなかったはずです。
さまざまな関数やWM_COPYDATAなどでHWNDが使えるのは内部的に処理しているからだったと思いますが、
0796デフォルトの名無しさん
2009/07/20(月) 17:21:38HWND はシステムグローバル。Advanced Windows 辺り書いてあんだろ?
0797デフォルトの名無しさん
2009/07/20(月) 17:22:450798デフォルトの名無しさん
2009/07/20(月) 17:25:17使えるのもあるし、ダメなのもあったかなと。
0799デフォルトの名無しさん
2009/07/20(月) 18:32:03APIで列挙とかするたびにWindowsがプロセス毎に聞いて回ってるとかなら
0800デフォルトの名無しさん
2009/07/20(月) 19:07:48HWND=メモリポインタ
になったのはWindowsの長い歴史から見ると比較的最近なんだよな
0801デフォルトの名無しさん
2009/07/20(月) 20:08:490802デフォルトの名無しさん
2009/07/20(月) 20:36:38他ウィンドウや、その子ウィンドウにメッセージを送り込むようなコードを
何回となく書いてきたけど、ダメな物なんて一回もなかった。
デバッグ時にspyでHWNDの値を確認するなんてざら。
もちろんこっちのプログラムと同値。断言してもいい。
0803デフォルトの名無しさん
2009/07/20(月) 20:50:31カーネルオブジェクトのハンドルはローカルだがDuplicateHandleで他プロセスに持って行ける、
それ以外(タイマとかGDIオブジェクトとか)はプロセスローカルだったと記憶しているんだが。。。
0804デフォルトの名無しさん
2009/07/20(月) 20:50:51そういう思い込みをしてしまう人は2ch使わない方が良いと思うぞ
0805デフォルトの名無しさん
2009/07/20(月) 20:53:09信じられないような馬鹿は複数いるということだな、つまり。
0806デフォルトの名無しさん
2009/07/20(月) 20:53:33たぶんそれで合ってる
プロセスローカルなハンドルでも子プロセスに限ってプロセス作成時のパラメータで継承させられるとかもあったような
0807デフォルトの名無しさん
2009/07/20(月) 20:54:13たかが知識の間違い程度で信じられないような馬鹿扱いをする幼稚な人も2ch使わない方が良いな
0808デフォルトの名無しさん
2009/07/20(月) 20:54:54ウィンドウハンドルをシステムグローバルじゃないって頑張ってるのは。
世の中は広いな。
0809デフォルトの名無しさん
2009/07/20(月) 20:59:480810デフォルトの名無しさん
2009/07/20(月) 21:40:12全てのハンドルがグローバルであることを期待するようなプログラムは Windows の仕様に反してるってだけだ。
0811デフォルトの名無しさん
2009/07/20(月) 21:52:390812デフォルトの名無しさん
2009/07/21(火) 07:55:46できれば完全な一覧でもあると助かるのですが
0813デフォルトの名無しさん
2009/07/21(火) 08:36:100814デフォルトの名無しさん
2009/07/21(火) 09:44:480815デフォルトの名無しさん
2009/07/21(火) 17:38:550816デフォルトの名無しさん
2009/07/21(火) 17:41:480817デフォルトの名無しさん
2009/07/21(火) 17:43:400818デフォルトの名無しさん
2009/07/21(火) 18:10:45ttp://www.hook-api.com/order.html
にあるサンプルプログラムはコードinjection
ってやつをやっているんでしょうか?
0819デフォルトの名無しさん
2009/07/21(火) 18:20:1816ビットや9xの当時ならいざ知らず、今時プロセス終了で解放されないハンドルってあるの?
0820デフォルトの名無しさん
2009/07/21(火) 18:27:310821デフォルトの名無しさん
2009/07/21(火) 19:27:370822デフォルトの名無しさん
2009/07/21(火) 21:00:570824デフォルトの名無しさん
2009/07/21(火) 21:09:27プロセス終了時にカウント減らされるでしょ。
0825デフォルトの名無しさん
2009/07/21(火) 21:47:03というか、コード注入の手法の一つがDLL注入。
他のプロセスで任意のコードを実行させたい(コードを注入したい)とき、
目的のコードを全部WriteProcessMemory()で書き込んだり、EXEを書き換えたって
かまわないんだけど、それだと色々面倒なので、ほとんどの場合は目的のコードを
DLLにしておいて、相手のプロセスにロードさせる(DLLを注入する)わけ。
そういう意味では、必ずしもDLLを注入しなくても「何らかの手段で」コードを注入すれば
目的は達せられる。現実的にはほぼDLL注入一択だけどな。
0826818
2009/07/21(火) 22:03:35ご丁寧にありがとうございます。
textoutのメッセージをフックするdllを注入するのが
一般的ってことですね。
(最初に、質問したとおりなんですが。)
ありがとうございました。
0827デフォルトの名無しさん
2009/07/21(火) 23:07:44ちょっと違う。俺も初心者の頃混乱した覚えがあるけどな。
SetWindowsHookEx()自体にAPIフックの機能はない。関数名にHookと入っているし、
APIフックのサンプルコードにはよく使われているから、誤解しがちだけど。
SetWindowsHookEx()は、他のプロセスにDLLをロードさせるためだけに使われるので
あって、メッセージフックはただのダミー。
「TextOutのメッセージ」なんてものは存在しない(あれば楽だけど)。
APIフックは別途行う必要がある。
0828デフォルトの名無しさん
2009/07/22(水) 01:26:26チェーンに登録されるだけな気がするの。
0829デフォルトの名無しさん
2009/07/22(水) 01:29:030830デフォルトの名無しさん
2009/07/22(水) 01:40:37配置するために、フック関数を含むDLLがロードされる。
このとき、フック関数だけでなくDLL全体がロードされるので、結果、多くのプロセスに
任意のDLLをロードさせることができる。
ただし、DLLがロードされるタイミングは、フック対象のメッセージを受信したときなので、
SetWindowsHookEx()を実行したからといって、DLLがロードされるとは限らない。
そういう意味では>>828の言っていることも正しい。
0832デフォルトの名無しさん
2009/07/22(水) 01:48:330833デフォルトの名無しさん
2009/07/22(水) 09:43:28システムプロセスなどに誤ロードされフック解除後も居座ることがある
再現方法は不明
0834デフォルトの名無しさん
2009/07/22(水) 09:46:500835デフォルトの名無しさん
2009/07/22(水) 12:07:480836デフォルトの名無しさん
2009/07/22(水) 12:12:550837デフォルトの名無しさん
2009/07/22(水) 12:13:530838デフォルトの名無しさん
2009/07/22(水) 12:15:11うpしようと思ってたけどやめるわ
0839デフォルトの名無しさん
2009/07/22(水) 12:18:550841デフォルトの名無しさん
2009/07/22(水) 13:27:35PostQuitMessageを実行せずに独自にフラグを使ってメッセージループを終了するのは
良くないでしょうか?
0842デフォルトの名無しさん
2009/07/22(水) 13:31:300843デフォルトの名無しさん
2009/07/22(水) 13:53:20マジ有難う!
0844デフォルトの名無しさん
2009/07/22(水) 13:56:31ありがとうございます。
0845818
2009/07/22(水) 18:26:58初心者で何から調べれば分からずのレベルですので
皆さんのレスの意味があまり分かってないですが、
キーワードが色々出てきてそれだけでも助かります。
>>「TextOutのメッセージ」なんてものは存在しない(あれば楽だけど)。
そ、そんなぁ (;´д⊂ヽヒックヒック
すみません、何のメッセージを捕らえればいいんでしょうか?
Spy++はあります。
(ウィンドウのコントロールを調べるくらいですが)
ご教授お願いします。
0846デフォルトの名無しさん
2009/07/22(水) 18:33:290847デフォルトの名無しさん
2009/07/22(水) 18:49:130848818
2009/07/22(水) 18:53:59そこを何とかお願い。
0849デフォルトの名無しさん
2009/07/22(水) 19:00:06KY
0850818
2009/07/22(水) 19:02:52なら、スルーしとけばいいじゃん。
ky
0851デフォルトの名無しさん
2009/07/22(水) 19:07:380852818
2009/07/22(水) 19:12:14先は長いな。(´ー`)y─┛~~
0853デフォルトの名無しさん
2009/07/22(水) 20:58:110854デフォルトの名無しさん
2009/07/22(水) 21:32:51DirectShowと戦うスレ Part 4
http://pc12.2ch.net/test/read.cgi/tech/1214127501/
0855デフォルトの名無しさん
2009/07/22(水) 23:14:160856853
2009/07/22(水) 23:25:19むりぽ
0857デフォルトの名無しさん
2009/07/23(木) 11:53:53環境によっては、きちんと実行されたり
只、ショートファイルのリンク先が開かれたりするんだが
これは何故?
きちんと実行したい場合はリンク先のEXEパス指定しないと駄目?
0858デフォルトの名無しさん
2009/07/23(木) 11:56:000859デフォルトの名無しさん
2009/07/23(木) 12:02:200860デフォルトの名無しさん
2009/07/23(木) 13:43:28レジストリ見てるんだね
SEE_MASK_INVOKEIDLISTを指定したら、問題のあった環境でも何か動くようになったよ
0861デフォルトの名無しさん
2009/07/23(木) 23:03:22あるクラスの関数のアドレスに行き着くか調べるにはどうすればいいですか?
dumpbinで調べられるのかと思いましたが、エクスポートされている関数名しか出てきません。
0862デフォルトの名無しさん
2009/07/23(木) 23:30:46DbgHelp APIの出番だと思う。
0863デフォルトの名無しさん
2009/07/24(金) 01:23:10Toolhelpで得たベースアドレスに足し合わせれば答えがでるんじゃね?
0864デフォルトの名無しさん
2009/07/24(金) 17:53:010865デフォルトの名無しさん
2009/07/24(金) 18:03:550866861
2009/07/24(金) 22:22:00クラスの関数名が表示されないのにどうやってRVAとの対応を見れば・・
>>864
エクスポート関数ではなく
クラスの関数なんでGetProcAddressは使えないんですが・・
0867デフォルトの名無しさん
2009/07/24(金) 23:17:38どうしてそういうことをしたいのか説明できるか?
理由がわかれば妥当な方法を提案しやすい。
0868デフォルトの名無しさん
2009/07/24(金) 23:20:510869デフォルトの名無しさん
2009/07/24(金) 23:28:14わかるよ
公務員だもの
楽しょうさがね
阿保みたいな質問平気でする糞職員多いね
無試験採用か
0870861
2009/07/24(金) 23:31:03ここのライブラリを使ってDirect3Dを使ったアプリの画像取得をしているんですが
XPだと動くのにVistaだと動かないみたいなんです。フックしようとしている関数の
アドレスが正しいか調べる部分(VerifyAddresses()、171行目)
があるんですが、そこではじかれます。それで自分で正しいアドレスのオフセットを
調べようと思ったんですが、どうしたら調べられるのか分かりません。
↓書いてある各関数のオフセット
const long XP_OFFSET_DEVICE_PRESENT = 0x00040EA0;
const long XP_OFFSET_SWAP_CHAIN_PRESENT = 0x00039230;
const long XP_OFFSET_CLEAR = 0x00085720;
const long VISTA_OFFSET_DEVICE_PRESENT = 0x00048CDB;
const long VISTA_OFFSET_SWAP_CHAIN_PRESENT = 0x00048DB4;
const long VISTA_OFFSET_CLEAR = 0x0000E3CD;
0871デフォルトの名無しさん
2009/07/24(金) 23:45:31コンパイラ:Visual c++ 2008 ExpressEdition
ファイル内容:日本語
テキストファイルから1行読み込んで(fopen,fgetws)
ExtTextOutしたいのですが文字化けしてしまいます
どうすればテキスト内容をそのまま表示する事ができますか?
ExtTextOutの文字列指定する所に直接TEXT("日本語")で指定したら正確に表示されます
ファイルから読み込んだ文字列を格納する変数は
TCHAR szText[256];
ですが他の型でできるなら型変更も考えています
0872デフォルトの名無しさん
2009/07/24(金) 23:48:56インターフェイスからVMTをスキャンして目的の関数のアドレスを取得する。
ジャンプテーブルだったらその先のアドレスを探す。
オフセットは普通に引き算でおk。
OSの種類やSPの違い等で変わる可能性があるから、そういった固定オフセットを使うのは意味がない。
俺のプログラムでは動的に計算してるよ。
0873デフォルトの名無しさん
2009/07/24(金) 23:48:570874デフォルトの名無しさん
2009/07/24(金) 23:49:43文字コードについて学べ
0875デフォルトの名無しさん
2009/07/24(金) 23:52:24プログラムの頭で、setlocale(LC_ALL, "");呼んでおけ。
あと、TCHARに読み込む関数は、fgetwsではなく、<tchar.h>の_fgetts。
0876861
2009/07/24(金) 23:56:41d3d9.hの内容を見て
IDirect3DDevice9のアドレスから4*17バイトずらしたら
Presentのアドレスになると思ったんですが
以前やったら失敗したんです。
もう1回試してみます。
0877871
2009/07/25(土) 00:02:53>>875さんのsetlocale(LC_ALL,"")追加と_fgettsへ変更した後
Notepadの名前を付けて保存の時に選べる
ANSI
Unicode
Unicode big endian
UTF-8
どれを選んでもダメでした
Unicodeの時は描画すらされず真っ白でした
>>874
文字コード、ですか色々調べてみます
キーワードありがとうございます
>>875
その2箇所変更してもダメでした
0878デフォルトの名無しさん
2009/07/25(土) 00:10:21背景色を変えるメッセージってありませんか?
SetBkColorではうまく背景色が変わらないので
0879デフォルトの名無しさん
2009/07/25(土) 00:15:300880デフォルトの名無しさん
2009/07/25(土) 00:34:53書き換え先の命令の並びが適切かどうか、確認。
場所は、cでpD3dDevice9->lpVtbl->Presentとかやって取得。
0882871
2009/07/25(土) 01:28:22HDC hDC;
HFONT hFont;
TCHAR szInfo[30][256];
FILE *fp;
_locale_t locale;
locale = _create_locale(LC_ALL, "japanese");
if((_wfopen_s(&fp,TEXT("test.txt"),TEXT("r"))) != NULL) {
_wfopen_s(&fp,TEXT("test.txt"),TEXT("w"));
_fwprintf_s_l(fp, TEXT("テスト\nテスト2\n"), locale);
fclose(fp);
_wfopen_s(&fp,TEXT("test.txt"),TEXT("r"));
}
while(_fgetts(szInfo[i], 256, fp) == NULL) {
i++;
}
fclose(fp);
hDC = GetDC(hWnd);
hFont = CreateFont(23, 9, 0, 0, 600, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_ONLY_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FIXED_PITCH | FF_DECORATIVE, NULL);
SelectObject(hDC, hFont);
SetBkColor(hDC, RGB(0,0,0));
SetTextColor(hDC, RGB(100,245,100));
ExtTextOutW(hDC, 50, 50, ETO_CLIPPED, NULL, szInfo[0], wcslen(szInfo[0]), NULL);
ExtTextOutW(hDC, 50, 100, ETO_CLIPPED, NULL, szInfo[1], wcslen(szInfo[1]), NULL);
DeleteObject(hFont);
ReleaseDC(hWnd, hDC);
こんな感じでやってみましたが無理でした
どうすればいいでしょうか
0883デフォルトの名無しさん
2009/07/25(土) 02:20:52TCHAR/TEXTを扱う関数はwではなくt。
_wfopen_s/_tfopen_sは成功したとき、0を返す。そもそも書き込みなら初めからwで開け。
_fwprintf_s_l/_ftprintf_s_lのロケール指定は出力の文字コード変換には影響しない気がする。
というわけで、こんな風に書いたらきちんと動いたぞ。
setlocale(LC_ALL, "");
if (_tfopen_s(&fp, TEXT("test.txt"), TEXT("w")) == 0) {
_ftprintf_s(fp, TEXT("テスト\nテスト2\n"));
fclose(fp);
if (_tfopen_s(&fp, TEXT("test.txt"), TEXT("r")) == 0) {
while(_fgetts(szInfo[i], sizeof szInfo[i], fp) != NULL) {
i++;
}
fclose(fp);
}
}
あと、ExtTextOut, _tcslenな。
0884デフォルトの名無しさん
2009/07/25(土) 03:14:13デバッガで追うと、指定ロケールとは無関係に常に現在のロケールで変換するように見えるなあ。
折角_woutput_s_lでロケールを更新しているのに、
その後で一文字ずつ出力するのに_fputwc_nolockを呼び出したところで、
結局今のロケールに再更新されてしまっているような……
0885デフォルトの名無しさん
2009/07/25(土) 03:59:55ただ、数値変換の書式とか、文字コード変換以外には影響が及んでいると思う。
でもここWin32APIスレだから、スレ違いの話は自重したい。
0886デフォルトの名無しさん
2009/07/25(土) 06:19:30テキストファイルのエンコードは?
0887デフォルトの名無しさん
2009/07/25(土) 11:24:32CPIAppletからCPL_INPUIREで名前のリソースIDとか取得してもうまく行かない
0888デフォルトの名無しさん
2009/07/25(土) 16:04:19それとも、リクエストごとにデータ構造を持っていて引数のヘッダ識別子を使って探すんでしょうか
0889デフォルトの名無しさん
2009/07/25(土) 20:17:520890871
2009/07/25(土) 20:59:19>>882の
if((_wfopen_s(&fp,TEXT("test.txt"),TEXT("r"))) != NULL) {
_wfopen_s(&fp,TEXT("test.txt"),TEXT("w"));
_fwprintf_s_l(fp, TEXT("テスト\nテスト2\n"), locale);
fclose(fp);
_wfopen_s(&fp,TEXT("test.txt"),TEXT("r"));
}
この部分ですが、本当なら最初からテキストに何か記入(notepadで)しておいて
プログラム側で処理するのですが、もしtextがなければエラーになるので
プログラム側でtextを作成するようにしています
ちゃんと思い通りに表示されました
ありがとうございましたてる!
1,8,12,13!
>>886
名前をつけて保存を選んだ時の右下の文字コードはANSIになっていました
0892デフォルトの名無しさん
2009/07/25(土) 23:38:02を書き換えても公開するための名前は変わりませんか?
hoge@1とかの@1とかが勝手に変わったらDLL差し替えだけでは動かないんですよね?
0893デフォルトの名無しさん
2009/07/25(土) 23:42:410894デフォルトの名無しさん
2009/07/25(土) 23:43:210895デフォルトの名無しさん
2009/07/26(日) 02:39:45ボタンコントロールなど、子ウィンドウの文字の場合はフォントを作成した後、
SendMessage( hWnd, WM_SETFONT, ( WPARAM )hFont, true );
とすれば変更できました。
hWnd(HWND型)のところをhMenu(HMENU型)にしましたがダメでした。
よろしくお願いしますm(_ _)m
0896デフォルトの名無しさん
2009/07/26(日) 02:45:140898デフォルトの名無しさん
2009/07/26(日) 14:02:50これを指定してリムーバルディスクを開こうとすると失敗して
指定せずに実行すると問題無く開ける
0899デフォルトの名無しさん
2009/07/26(日) 14:16:220900デフォルトの名無しさん
2009/07/26(日) 14:21:36有難う
レジストリを見て実行と
ファイル名で実行と認識していいかな?
0901デフォルトの名無しさん
2009/07/26(日) 14:27:53レジストリとは違うけれど、IShellFolderというインタフェイスを使って
エクスプローラーのようにデスクトップをルートとした仮想フォルダ階層を辿っていくときに使う
0902デフォルトの名無しさん
2009/07/26(日) 14:32:54有難う
具体的に使う場面を教えて貰えないかな?
0903デフォルトの名無しさん
2009/07/26(日) 14:41:46その仮想階層のパスは文字列ではなくITEMIDLISTで表現するので、
それを指定してファイルを開くときに使う
エクスプローラー自身や、エクスプローラーのファイル階層を真似る必要があるファイラーソフト、
ファイルオープンダイアログ、ファイルブラウザなどで使う
0904デフォルトの名無しさん
2009/07/26(日) 14:44:480905デフォルトの名無しさん
2009/07/26(日) 15:47:53分かり易い説明マジ有難う!!
0906デフォルトの名無しさん
2009/07/26(日) 16:27:050907デフォルトの名無しさん
2009/07/26(日) 17:21:150908デフォルトの名無しさん
2009/07/26(日) 22:03:140909デフォルトの名無しさん
2009/07/26(日) 22:05:130911デフォルトの名無しさん
2009/07/27(月) 09:54:190912デフォルトの名無しさん
2009/07/27(月) 09:59:35ハンドルがどうした
0913デフォルトの名無しさん
2009/07/27(月) 10:15:27できれば完全な一覧でもあると助かるのですが
0914デフォルトの名無しさん
2009/07/27(月) 10:29:390915デフォルトの名無しさん
2009/07/27(月) 10:32:09Dependency Walker
0916デフォルトの名無しさん
2009/07/27(月) 10:38:50ありがとん
0917デフォルトの名無しさん
2009/07/27(月) 11:01:36ENTERを押してもKEYDOWNが発生しません
フックを使わずスマートな解決方法は無いでしょうか?
0918デフォルトの名無しさん
2009/07/27(月) 11:08:34サブクラス化
0919デフォルトの名無しさん
2009/07/27(月) 11:10:520920デフォルトの名無しさん
2009/07/27(月) 11:43:20有難うございます
サブクラスも勿論試しましたが駄目でした
KEYBORADINPUTを指定してみましたが、Enterキーを押してもメッセージが発行されません
0921デフォルトの名無しさん
2009/07/27(月) 11:43:540922デフォルトの名無しさん
2009/07/27(月) 12:12:20そうです!ダイアログ画面にリストを置いています
リストにEnterが行く前に、ダイアログに食われているという事でしょう?
0923デフォルトの名無しさん
2009/07/27(月) 12:15:010924デフォルトの名無しさん
2009/07/27(月) 12:21:50いまいちよく分からないんだが、
WM_NOTIFYのLVN_KEYDOWNじゃだめなのか?
当然ダイアログでも通知がくるけど……
0925デフォルトの名無しさん
2009/07/27(月) 12:49:53有難うございます
試して見ましたがうまく行きませんでした…
今はダイアログにリストボックスを貼付けており
リストボックスを選択した後、Enterキーを押したら処理をしたいと考えています
ですがEnterキーを押してもメッセージが発行されず
それ以外のキー入力ではメッセージが発行されている状態です
0926デフォルトの名無しさん
2009/07/27(月) 12:51:52フォーカスないとか?
0927デフォルトの名無しさん
2009/07/27(月) 14:17:590928デフォルトの名無しさん
2009/07/27(月) 14:20:18spy++とか使ってみては
0929デフォルトの名無しさん
2009/07/27(月) 14:27:59夏休みだしなあ
0930デフォルトの名無しさん
2009/07/27(月) 14:30:400931デフォルトの名無しさん
2009/07/27(月) 15:16:410932デフォルトの名無しさん
2009/07/27(月) 15:18:390933デフォルトの名無しさん
2009/07/27(月) 16:03:230934デフォルトの名無しさん
2009/07/27(月) 16:29:02Spy++で調べれば(当然だが)メッセージが発行されてるんだがな
CDialog使ってるならちゃんとVK_RETURNキャッチしろよ
0935デフォルトの名無しさん
2009/07/27(月) 17:10:480936デフォルトの名無しさん
2009/07/27(月) 17:34:210937デフォルトの名無しさん
2009/07/27(月) 18:10:39srud(>>930);
0938デフォルトの名無しさん
2009/07/27(月) 19:01:37来ないはずないんだけどな……
LVN_KEYDOWNをググって、あちこち参考にしてみた?
BOOL CALLBACK DlgProc(HWND hDlg, UINT mes, WPARAM wParam, LPARAM lParam)
{
...
case WM_NOTIFY:
{
NMHDR* nm = (NMHDR*)lParam;
if(nm->idFrom == IDC_LIST1) {
if(nm->code == LVN_KEYDOWN) {
NMLVKEYDOWN* kd = (NMLVKEYDOWN*)lParam;
WORD wKey = kd->wVKey;
if(wKey == VK_RETURN) {
// リターンキーが押された
}
}
}
}
break;
...
}
な感じできませんか? IDC_LIST1は、当該リストビューのIDね。
0939デフォルトの名無しさん
2009/07/27(月) 19:06:08リストボックスの作成方法が、CreateWindowかエディタかは知らないけど
0940デフォルトの名無しさん
2009/07/27(月) 19:11:11回答しないのにレスしないで下さい
0941925
2009/07/27(月) 20:09:13MFCではなく、現在はSDKで開発しております
>>938色々と調べてみましたが、やはり私のコードではうまく行きません
ダイアログにリストボックスを貼り付けており、ダイアログは以下の用に定義しています
SAMPLE DIALOG 10, 10, 200, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
{
LISTBOX IDC_LIST1, 10, 10, 180, 57, WS_TABSTOP | WS_VSCROLL | LBS_NOTIFY | LBS_NOINTEGRALHEIGHT
}
リストのサブクラス、ダイアログ側でのWM_NOTIFYでLVN_KEYDOWNが来ないか試していますが
未だ解決しておりません
Spy++ではありませんが、簡単なメッセージフックは使用してやり取りは見ております
0942デフォルトの名無しさん
2009/07/27(月) 20:20:59それならリストボックスをサブクラス化して、
WM_GETDLGCODEでDLGC_WANTALLKEYSを返すしかないな。
0943デフォルトの名無しさん
2009/07/27(月) 20:33:37WM_GETDLGCODEを処理してなかったのかよ……OTZ
0944デフォルトの名無しさん
2009/07/27(月) 23:59:24認識させたいんだけど、どうすればできマッスル?
0945デフォルトの名無しさん
2009/07/28(火) 00:08:330946デフォルトの名無しさん
2009/07/28(火) 06:20:500947デフォルトの名無しさん
2009/07/28(火) 07:01:190948デフォルトの名無しさん
2009/07/28(火) 08:20:43当然
0949デフォルトの名無しさん
2009/07/28(火) 09:26:35VC++2005とborland freeコンパイラどっちがいいかな?
0950デフォルトの名無しさん
2009/07/28(火) 10:49:55VC++2008の方がいいよ
0951デフォルトの名無しさん
2009/07/28(火) 11:01:100952デフォルトの名無しさん
2009/07/28(火) 11:07:31動くように設定したらいいよ
0953デフォルトの名無しさん
2009/07/28(火) 11:13:11設定で対応出来たっけ?
EXEのバイナリを弄ればいけるけど、推奨は出来ないな
0954デフォルトの名無しさん
2009/07/28(火) 11:24:550955デフォルトの名無しさん
2009/07/28(火) 12:30:230956デフォルトの名無しさん
2009/07/28(火) 13:04:56The Windows 95, Windows 98, and Windows ME platforms are no longer supported. These operating systems have been removed from the list of targeted platforms.
0957デフォルトの名無しさん
2009/07/28(火) 13:56:26platformsの対象から削除されました
0958デフォルトの名無しさん
2009/07/28(火) 13:57:510959デフォルトの名無しさん
2009/07/28(火) 14:00:380960デフォルトの名無しさん
2009/07/28(火) 14:03:36EndDialogはしては駄目らしいが何故?
WM_CLOSEで使ってるが別に問題ないんだが
0961デフォルトの名無しさん
2009/07/28(火) 14:12:140962デフォルトの名無しさん
2009/07/28(火) 14:15:35有難う
プロパティシートのOKボタンで閉じる場合は
それぞれのダイアログに強制WM_CLOSE発行してEndDialog呼んでるけど
閉じる時だから問題ないって事だよね?
0963デフォルトの名無しさん
2009/07/28(火) 14:34:040964デフォルトの名無しさん
2009/07/28(火) 15:00:50( ・ω・)
○={=}〇,
|:::\,',´
、、、し、、(((@)wwww
_,._
(・ω・ )
○={=}〇,
|:::\,','
www、、、、、し、、(((@)
_,._
( ・ω・ )
○={=}〇,
|:::\,','
wwwwwwし、、(((@)
,,' _,._
((((( ・ω・ ))))
',` `ヾヽミ三彡ソ´
w ', )ミ 彡ノ',`'
',`' (ミ 彡゛ w
Σ ', \( ',`
',`' )) ',`Σ
wW\\ ( //Ww
0965デフォルトの名無しさん
2009/07/28(火) 15:54:24ダイアログにダイアログを貼り付けるにはどのようにすれば良いんでしょうか
0966デフォルトの名無しさん
2009/07/28(火) 15:58:540967デフォルトの名無しさん
2009/07/28(火) 16:07:49OKキャンセルボタンの上に、プロパティシートと同様の区切り線があるからそうかもしれませんね
ありがとうございます
0968デフォルトの名無しさん
2009/07/28(火) 21:55:29どうすればできますか?
0969デフォルトの名無しさん
2009/07/28(火) 22:12:28StackWalkを使えばできそうですね
0970デフォルトの名無しさん
2009/07/28(火) 23:04:230971デフォルトの名無しさん
2009/07/29(水) 01:08:040972デフォルトの名無しさん
2009/07/29(水) 08:21:35sizeof(buf)/sizeof(buf[0])
とやってるんだが、これてビルド時にサイズ決まるよね?
0973デフォルトの名無しさん
2009/07/29(水) 08:28:580974デフォルトの名無しさん
2009/07/29(水) 08:36:12と定義してる
MAX_PATH渡せば良いが、bufのサイズが変わったら面倒だからさ
0975デフォルトの名無しさん
2009/07/29(水) 10:33:320976デフォルトの名無しさん
2009/07/29(水) 11:31:40常に親ウィンドウにフォーカスがある状態にするにはどうすればいいですか?
0977デフォルトの名無しさん
2009/07/29(水) 17:13:38このスレとしてはARRAYSIZEも推そうよ。
( ゚,_J゚)
0979デフォルトの名無しさん
2009/07/31(金) 07:17:36馬鹿発見
0980デフォルトの名無しさん
2009/07/31(金) 07:40:28複数のウィンドウがある場合に
最初のウィンドウのクライアント領域を即操作出来るように
最初のウィンドウを常にアクティブ状態にしたいのですが可能でしょうか
他のウィンドウを操作した後だと、最初のウィンドウを操作するためには
一回クリックしなければいけないと思うのですがそれをなくしたいのです
どなたかアドバイスを
0981デフォルトの名無しさん
2009/07/31(金) 07:43:570982デフォルトの名無しさん
2009/07/31(金) 07:55:44他のウィンドウというのは子ウィンドウじゃありませんでした
0983デフォルトの名無しさん
2009/07/31(金) 08:06:53最初のウィンドウを常にアクティブしっぱなしにすると
他のウィンドウが操作出来ないということでしょうか?
それで悩んでいるんです
アクティブというか1クリックせずに操作出来ないのかなと
0984デフォルトの名無しさん
2009/07/31(金) 08:11:410985デフォルトの名無しさん
2009/07/31(金) 11:44:07タブコントロールをTCS_BUTTONSで指定して作成し、その後タブを3ページ追加しました。
見かけは、ボタンスタイルでタブが作成されてうまく行っているように見えるのですが
タブをクリックしてもWM_NOTIFYイベントでTCN_SELCHANGEが
やって来ないので困っています。
TCS_BUTTONSを外すと、通常のタブが作成されてWM_NOTIFYイベントでTCN_SELCHANGEが
やってきます。
TCS_BUTTONSの有無でタブコントロールの振る舞いが違うのでしょうか?
ご存知の方、アドバイスお願いします。
0986985です
2009/07/31(金) 11:46:22補足です。
環境は、WINDOWS XP PRO SP3 VC++6.0です。
0987デフォルトの名無しさん
2009/07/31(金) 17:58:370988デフォルトの名無しさん
2009/07/31(金) 22:54:24馬鹿発見
0989デフォルトの名無しさん
2009/07/31(金) 23:20:340990デフォルトの名無しさん
2009/08/01(土) 16:37:49それともコンパイル時にうまくいくようにしてくれてるんでしょうか
0991デフォルトの名無しさん
2009/08/01(土) 18:55:22強制的に関連モジュールをロードする意味で呼出すと聞いたことがあると思う。
日本語版 Windows だと IME コントロールを通じて
大抵はロード済みなので無くても動くように見えるが、
呼んでおくのが無難と言われている。
リソースが埋め込みでも関係ないはず。
必要なくても呼んだからって問題になるわけでもないので迷ったら呼んどけ。
0992デフォルトの名無しさん
2009/08/01(土) 20:59:02ttp://blogs.msdn.com/oldnewthing/archive/2005/07/18/439939.aspx
0993990
2009/08/01(土) 21:03:510994デフォルトの名無しさん
2009/08/01(土) 21:47:48ANSI Cだけでファイルサイズを求める方法を改善しようと思ったが、Win32 APIや
MFCやBorlandのVCLのいずれも、ファイルハンドルが必要のようだな。そのファイル
ハンドルは、ファイルをオープンして取得しないといけないし、ANSI Cよりも難しい
内容だし。
エクスプローラやDIRコマンドでファイルの一覧を表示するのって、何もWindowsは
ファイルハンドルを取得してるわけではないだろう。恐らく、ハードディスクに
記録されているファイルの実体とは別の領域に記録された登録簿の情報を読んで
るだけだろう。
ファイル名の文字列を引数に与えるだけで良いVB6のFileLen関数や、NET Frameworkの
FileInfoクラスのLengthを使うほうが、(ANSI Cに比べて)ハードディスクのアクセス
が少なくて早く処理できてるし、恐らく恐らく登録簿から読み取ってるのだろう。
MSは他社の競争力を押さえるために、一部のシステムコールを隠すのか。
0995デフォルトの名無しさん
2009/08/01(土) 21:50:13エクスプローラやDIRコマンドでファイルの一覧の作成で、ファイルサイズ
を取得するために、ファイルハンドルを取得しているわけではないだろう。
0996デフォルトの名無しさん
2009/08/01(土) 22:01:59それで何か不満なのか?
0997デフォルトの名無しさん
2009/08/01(土) 22:11:250998デフォルトの名無しさん
2009/08/01(土) 22:12:40つFindFirstFile
0999デフォルトの名無しさん
2009/08/01(土) 22:18:051000デフォルトの名無しさん
2009/08/01(土) 22:19:50お前が無知なだけだw
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。