Win32API質問箱 Build64
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/02(水) 10:21:31やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>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質問箱 Build63
http://pc11.2ch.net/test/read.cgi/tech/1204600558/
0002デフォルトの名無しさん
2008/04/02(水) 10:21:53http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/
http://msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
http://msdn2.microsoft.com/en-us/library/
http://msdn2.microsoft.com/ja-jp/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
0003デフォルトの名無しさん
2008/04/02(水) 10:22:06http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
- Advanced Windows (書籍)
http://www.amazon.co.jp/dp/4756138055
-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
0004デフォルトの名無しさん
2008/04/02(水) 10:22:4961 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/
50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/
49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
0005デフォルトの名無しさん
2008/04/02(水) 10:23:0340 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/
25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
24 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
0006デフォルトの名無しさん
2008/04/02(水) 10:23:2720 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
0007デフォルトの名無しさん
2008/04/02(水) 12:22:01ShellExecuteExだと、ファイルに関連付けられたアプリで起動するし。
0008デフォルトの名無しさん
2008/04/02(水) 12:37:250009デフォルトの名無しさん
2008/04/02(水) 14:10:20「開く」じゃ曖昧だよ。
何がしたいのかを書いたほうがいい。
0010デフォルトの名無しさん
2008/04/02(水) 19:36:38識別するAPIを教えてください
0011デフォルトの名無しさん
2008/04/02(水) 19:49:44IsWindow
0012デフォルトの名無しさん
2008/04/02(水) 19:51:33IsWindowとかIsHungAppWindowとか。
0013デフォルトの名無しさん
2008/04/02(水) 19:54:34> カテゴリ分けしてある API のヘルプが欲しいよ
MSDNライブラリで、それなりにカテゴリ分けされてるが、それでは不十分?
0014デフォルトの名無しさん
2008/04/02(水) 19:56:07ありがとうございます。
ばっちりですほんとうにありがとうございますた。
たすかりました。
いやもうほんとうに。
0015デフォルトの名無しさん
2008/04/02(水) 21:38:42Vistaのエアロ環境で3Dゲームなどのウィンドウを撮ると
真っ黒な画面になります。
GetDC()にNULLを指定して撮ると3Dゲームのウィンドウが
最初に撮ったSSの画面のままで固定され同じものが撮れてしまいます。
どなたか解決法わかりませんでしょうか?
0016デフォルトの名無しさん
2008/04/03(木) 00:49:220017デフォルトの名無しさん
2008/04/03(木) 01:48:32DWMサムネイルAPI使えばいい気がする。
0018デフォルトの名無しさん
2008/04/03(木) 12:52:25自分自身のウィンドウハンドルを取得したいのですが。。
0019デフォルトの名無しさん
2008/04/03(木) 12:55:580020デフォルトの名無しさん
2008/04/03(木) 13:13:35えっとdllを他プロセスにフックして
dllからフック先プロセスのウィンドウハンドルを取得したいのです。
0021デフォルトの名無しさん
2008/04/03(木) 13:14:070022デフォルトの名無しさん
2008/04/03(木) 13:19:310023デフォルトの名無しさん
2008/04/03(木) 13:23:020024デフォルトの名無しさん
2008/04/03(木) 13:27:060025デフォルトの名無しさん
2008/04/03(木) 13:27:19GetWindowTextでタイトルは取得できますが
ウィンドウクラス名の取得方法がわからなくて。。(ノ_・、)
0026デフォルトの名無しさん
2008/04/03(木) 13:29:350027デフォルトの名無しさん
2008/04/03(木) 14:04:190028デフォルトの名無しさん
2008/04/03(木) 14:35:100029デフォルトの名無しさん
2008/04/03(木) 14:43:230030デフォルトの名無しさん
2008/04/03(木) 15:03:16ばーか
003115
2008/04/03(木) 15:52:110032デフォルトの名無しさん
2008/04/03(木) 16:55:05こんなのばっかだな
あれか。普通のソフトはもうみんな.NETなんかで作っちゃうから
ド初心者かフック関係の質問しか来ないのな
0033デフォルトの名無しさん
2008/04/03(木) 16:59:24知らないならレスするなクズ
0034デフォルトの名無しさん
2008/04/03(木) 17:17:170035デフォルトの名無しさん
2008/04/03(木) 18:15:080036デフォルトの名無しさん
2008/04/03(木) 18:25:15荒らすなよお前
0037デフォルトの名無しさん
2008/04/03(木) 19:00:37DirectXも他のWin32APIと同じ感じですか?もっと複雑に、もしかしたらクラスとか使ったりしますか?
0038デフォルトの名無しさん
2008/04/03(木) 19:38:490039デフォルトの名無しさん
2008/04/03(木) 21:54:17Windowsとどら焼きぐらい違う。
いや、そこまで違わんか。タイヤキとタイヤぐらいか?
まあそれはともかく、別物だよ。
>>20
ウィンドウを作ってるのはプロセスじゃなくスレッド。
スレッドはウィンドウを作る必要はない。だから
プロセスがウィンドウを持ってることを前提にするのが間違ってる。
逆にウィンドウを作ったスレッドやプロセスを調べる関数は
当然あるので(必ず存在するからね)、そっちで調べるのが良い。
0040デフォルトの名無しさん
2008/04/03(木) 22:19:53WS_OVERRAPPEDWINDOWなどのスタイルで、タイトルバーのあるウィンドウを作っていて、
メッセージループでgetTimeGetを使うことでタイマーを実装しています。
タイトルバーをクリックしながらウィンドウを移動していると、
メッセージループ内の処理が行われないといった現象を回避する方法ってありますか?
具体的には、↓のようなプログラムです
startTime=timeGetTime();
while(msg.message!=QUIT){
if( PeekMessage (&msg,NULL,0,0,PM_NOREMOVE) ) {
if( !GetMessage (&msg,NULL,0,0) ) { msg.message = WM_QUIT; }
else {DispatchMessage( &msg );}
}
else{
if( (timeGetTime()-startTime)>3000 ){
MessageBox(hwnd,"ココ","caption",MB_OK); //移動が終わるまで
//これが出力されない
break;
}
Sleep(5);
}
}
0041デフォルトの名無しさん
2008/04/03(木) 22:29:240042デフォルトの名無しさん
2008/04/03(木) 22:45:10004340
2008/04/03(木) 22:48:29はずかしぃ・・
0044デフォルトの名無しさん
2008/04/03(木) 23:11:57返値が BOOL で GetLastError かと思ったら、レジストリ系は返値が LONG、COM 系は HRESULT
Kernel ハンドルの破棄は CloseHandle なのに User ハンドルは Destroy〜、GDI ハンドルは DeleteObject と名称がバラバラ
しかも Kernel 系でも FindFirstFile だけは FindClose だったり
WINMM 系は関数名が小文字で始まっていたり・・・
なんでこんなに統一性が無いのか気になって仕方がないんだけど知ってる人いる?
0045デフォルトの名無しさん
2008/04/03(木) 23:15:250046デフォルトの名無しさん
2008/04/03(木) 23:22:05その手のプログラムを作ること自体の是非はともかくとして、
その手のプログラムを作るなら人に聞かずにヤレと思うよ。
>>37
DirectXはCOM「もどき」で、MSがラッパーを用意してたりするし、
COMといってもオマジナイや定型文だと思ってもいいくらい。
0047デフォルトの名無しさん
2008/04/03(木) 23:27:48直交性がないのはアレだが、混同しにくいという利点もあるぞ。
0048デフォルトの名無しさん
2008/04/03(木) 23:33:02極度にネガティブなイメージを持ってる人が多いらしいので聞くだけ無駄なことが多い
フックとかマルウェア技術に関してはぐぐーる先生のほうがよっぽど使える
0049デフォルトの名無しさん
2008/04/03(木) 23:34:43それは現象ではなく仕様。
ウィンドウの移動中に、ユーザの他の操作を受付けるのはナンセンスだし、
基本は移動枠が出るだけで描画は一切行わないので、メッセージポンプを回す必要もない。
逆に、回してしまったら変なことになるぞ。
ウィンドウの移動を自前で処理すりゃ
メッセージポンプを回すこともできるが、
そんな気持ち悪いことをするのもなぁ。
0050デフォルトの名無しさん
2008/04/03(木) 23:36:530051デフォルトの名無しさん
2008/04/03(木) 23:37:29マルウェア作成技術にはネガティブなイメージを持って当然だろ。
ちなみに、
悪さするプログラムを作った人間が逮捕され、
2chのスレでやり方を教えてもらったと言ったら、
教えたほうは幇助で逮捕されかねんぞ。
0052デフォルトの名無しさん
2008/04/03(木) 23:44:41質問するなとは言わんがスレの半分ぐらいがそんなのばっかりなんてどう考えても異常だろ
同じ奴が何度も質問してるのか?
0053デフォルトの名無しさん
2008/04/03(木) 23:48:210054デフォルトの名無しさん
2008/04/03(木) 23:53:48そーなのかー
その辺に自分とほかとの意識の違いがあるらしいことは理解した
(個人的には、いろんなサンプルコード片を書いたり教えたりするけど、
それを第三者がどういう目的で利用しようが関係ないと思ってる)
「既出杉。調べれば判るだろ」ってのは同意だけどね
0055デフォルトの名無しさん
2008/04/03(木) 23:57:170056デフォルトの名無しさん
2008/04/04(金) 00:11:15問) 他プロセスのコマンドライン文字列を取得するにはどうすればいいですか?
答) 次のどちらかで取得できる。
・CreateRemoteThreadでGetCommandLineを送る。
・NtQueryInformationProcessでPEBからReadProcessMemoryする。
問) フックしたプロセスでメインウィンドウのHWNDを取得するにはどうすればいいですか?
答) そのものズバリな方法は無い。
ウィンドウクラス名が分かっている時はFindWindow(Ex)する。
分かっていない時はEnumWindowsとGetWindowThreadProcessIdを組み合わせる。
問) 特定のプロセスの音量を制御するにはどうすればいいですか?
答) Vista買え。
0057デフォルトの名無しさん
2008/04/04(金) 00:26:46どうしたらいいですか。
0058デフォルトの名無しさん
2008/04/04(金) 00:29:030059デフォルトの名無しさん
2008/04/04(金) 00:29:42先っちょだけだからです!
じゃなくて、その ochinchin.h はあなたの物ではありません
0060デフォルトの名無しさん
2008/04/04(金) 00:36:50まずお前のイチモツをDLL化する。ochinchin.dll
そしてomanko.exeのプロセスにDLLインジェクションでochinchin.dllを挿入すればいい。
0061デフォルトの名無しさん
2008/04/04(金) 00:39:20周囲の人間に聞いても教えてもらえない or 聞くのが憚られる
匿名ではない掲示板で聞いても教えてもらえない or 聞くのが憚られる
それで2chのこのスレに殺到する
ってことかもしれんな。
0062デフォルトの名無しさん
2008/04/04(金) 00:42:23ってか親切に解説してくれているサイトを見るの方が
関連情報も一箇所にまとまってるから
よっぽど早く目的達成できるのにな
0063デフォルトの名無しさん
2008/04/04(金) 00:45:27質問して断られて逆恨みして粘着してる人間がいるんだな。
>>56
こういうのはどうだ?
Q. 他プロセスのコマンドライン文字列を取得するにはどうすればいいですか?
A. 他プロセスにコマンドライン文字列を教えるためのインタフェースを設ける。
質問の主が後ろめたいことをやろうとしているのではなく、
複数のプロセスで協調動作するプログラムを書いているという仮定をしてさ。
他のプロセスが他人の書いたプログラムだって言うのなら、
その他のプロセスを自分でCreateProcessして、
その時のコマンドラインを覚えとけ、と。
0064デフォルトの名無しさん
2008/04/04(金) 00:52:34うしろめたいってか、UNIX系だと簡単にコマンドライン取れるんじゃね。
よく知らんけど。
0065デフォルトの名無しさん
2008/04/04(金) 01:00:350066デフォルトの名無しさん
2008/04/04(金) 02:30:35Interixの会社をマイクロソフトが買収してSFUとして無料で提供してるのを使えばいいんじゃね?
0067デフォルトの名無しさん
2008/04/04(金) 08:19:300068デフォルトの名無しさん
2008/04/04(金) 08:23:02自力で調べられないようなタイプのハッカーもどきは、
十中八九、簡単に足が付くようなやり方をするから、
あんまり関わらないほうがいい。
0069デフォルトの名無しさん
2008/04/04(金) 10:21:37WritePrivateProfileSectionつかうと同じセクションの内容を上書きしてしまいますよね
追加はどうすればいいのでしょうか
0070デフォルトの名無しさん
2008/04/04(金) 10:26:22追加というのは、具体的に、どういうこと?
同一セクション内に同一のキーはダメだよ?
0071デフォルトの名無しさん
2008/04/04(金) 10:28:55別キーを同じセクションに保存できないのです
説明下手でスマン
0072デフォルトの名無しさん
2008/04/04(金) 10:29:39ウィルス作成では現行の法運用では罪を問えなかったので
著作権違反の疑いで逮捕した
0073デフォルトの名無しさん
2008/04/04(金) 10:36:51WritePrivateProfileStringな
0074デフォルトの名無しさん
2008/04/04(金) 10:39:17ありがとう!
0075デフォルトの名無しさん
2008/04/04(金) 11:02:49> 指定された .ini ファイル(初期化ファイル)の、指定されたセクション内の
> 既存のキー名と値を削除し、
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 指定されたキーとその値のペアを書き込みます。
0076デフォルトの名無しさん
2008/04/04(金) 11:34:43プログレスバーのように進捗を表示したりといった感じです。
0077デフォルトの名無しさん
2008/04/04(金) 11:43:34まあどっちも可能
0078デフォルトの名無しさん
2008/04/04(金) 11:48:490079デフォルトの名無しさん
2008/04/04(金) 12:35:210080デフォルトの名無しさん
2008/04/04(金) 12:43:10フックで入って描画ルーチンをのっとる
下手くそなフックするとExplorerが落ちまくりになるけどNe!
0081デフォルトの名無しさん
2008/04/04(金) 12:46:510082デフォルトの名無しさん
2008/04/04(金) 12:56:27中でとんでもない事をしてそうで気になる
0083デフォルトの名無しさん
2008/04/04(金) 14:01:13psコマンドで一発じゃね?
0084デフォルトの名無しさん
2008/04/04(金) 16:11:16例えばsendmailとか。
0085デフォルトの名無しさん
2008/04/04(金) 16:19:570086デフォルトの名無しさん
2008/04/04(金) 17:35:24タスクバーなんてOSのバージョンが上がる度に構造が変わるような物を安易にフックすべきでは無かろう
進捗状況を出したいならメインウィンドウのタイトルを"10% 完了"みたいに変えればいい
0088デフォルトの名無しさん
2008/04/04(金) 19:57:30SetFileAttributes()を使いました。
その際、windows2000server、IIS5環境では問題なく動作したのですが
windows2003、IIS6環境ではSetFileAttributes()が失敗します。
原因としてはどのようなことが考えられるでしょうか
0089デフォルトの名無しさん
2008/04/04(金) 19:59:16また、代用となる関数、方法などありましたら教えてください。
0090デフォルトの名無しさん
2008/04/04(金) 20:12:080091デフォルトの名無しさん
2008/04/04(金) 20:35:050092デフォルトの名無しさん
2008/04/04(金) 20:46:58int iLine = 1;
char buf[256]={0};
*(WORD *)buf = (WORD)sizeof(buf);
SendDlgItemMessage(hWnd,IDCEDIT,EM_GETLINE,(WPARAM)iLine,(LPARAM)buf);
0093デフォルトの名無しさん
2008/04/04(金) 21:00:480094デフォルトの名無しさん
2008/04/04(金) 21:36:47戻り値はどうやって取得すればいいんですかね?
LRESULT er;
er = Send(ry;
こうですか?
0095デフォルトの名無しさん
2008/04/04(金) 21:45:520096デフォルトの名無しさん
2008/04/04(金) 22:07:03平気で嘘つくの辞めようぜ
0097デフォルトの名無しさん
2008/04/04(金) 22:12:37GetLastErrorですか?
0098デフォルトの名無しさん
2008/04/04(金) 22:36:30EM_GETLINEの説明を読め
0099デフォルトの名無しさん
2008/04/04(金) 22:50:28WPARAMで行を指定
LPARAMでバッファを指定
バッファの先頭2byteはバッファサイズを入れておく
足りませんか?
0100デフォルトの名無しさん
2008/04/04(金) 23:11:522. 対象Editの2行目に1文字も無い
0101デフォルトの名無しさん
2008/04/05(土) 00:17:58どうせアイコンは小さいのだから、
あらかじめアイコンを5パターンくらい用意して、
Shell_NotifyIcon で切り換えればいいと思う。
0102デフォルトの名無しさん
2008/04/05(土) 00:19:42タスクトレイなら動的にアイコンを描画してアイコン切り替えればいいだけだぜ。
0103デフォルトの名無しさん
2008/04/05(土) 01:05:25WMPやらGoogleデスクトップ検索みたいに表示したいってことか?
俺はやり方知らないけどググれば出てきそう
0104デフォルトの名無しさん
2008/04/05(土) 04:39:10× タスクトレイ
○ 通知領域
Win32スレでそういう間違った名称使うのやめとけ
0105デフォルトの名無しさん
2008/04/05(土) 05:16:35CreateWindowとAtlAxGetControlを利用したいのです。
Win32じゃないかもしれないけどお願いします。
0106デフォルトの名無しさん
2008/04/05(土) 05:32:09OLE/COM Object Viewer
0107デフォルトの名無しさん
2008/04/05(土) 05:33:000108デフォルトの名無しさん
2008/04/05(土) 07:09:53よその国の人はどんどん進歩しているのに、日本人同士で足引っ張り合って
自滅するかも知れないと思ったことはないのか。
攻める先を取り違えるな。
0109デフォルトの名無しさん
2008/04/05(土) 07:41:03つ Microsoft.com Japan サイトの検索
そこまで厳密にしなくてもいいんじゃね?と思った。
0110デフォルトの名無しさん
2008/04/05(土) 08:53:03そんなのは無駄な時間だ。
0111デフォルトの名無しさん
2008/04/05(土) 09:31:06XPではWindows9xの頃とタスクバーの実装が変わっていてタスクトレイと呼べるのか微妙だけど
互換性の為かShell_TrayWndというクラスのWindowは存在している
0112デフォルトの名無しさん
2008/04/05(土) 09:36:37このWindow構成を見るとタスクトレイというのは本来はタスクバー自体の事なのかもしれないな
0113デフォルトの名無しさん
2008/04/05(土) 10:10:35通知領域は時計は含まないってこと?
0114デフォルトの名無しさん
2008/04/05(土) 11:31:27出来ませんでした。
0115デフォルトの名無しさん
2008/04/05(土) 11:34:10自己解決しました。
0116デフォルトの名無しさん
2008/04/05(土) 11:42:460117デフォルトの名無しさん
2008/04/05(土) 12:09:07痛い質問して、期待した回答が得られなくて、逆恨み粘着だろうな。
0118デフォルトの名無しさん
2008/04/05(土) 12:14:02とりあえず、答えればいいんだよバカが
0119デフォルトの名無しさん
2008/04/05(土) 12:15:59お前みたいなスタンスの人は、
マイクロソフトの有償サポートを使えよ。
0120デフォルトの名無しさん
2008/04/05(土) 12:25:380121デフォルトの名無しさん
2008/04/05(土) 12:53:560122デフォルトの名無しさん
2008/04/05(土) 12:54:460123デフォルトの名無しさん
2008/04/05(土) 12:56:40優しさがないのは、約一名の粘着して荒らしている人だけ。
0124デフォルトの名無しさん
2008/04/05(土) 12:58:030125デフォルトの名無しさん
2008/04/05(土) 13:00:47自信があるのはいいことだけどさ。
0126デフォルトの名無しさん
2008/04/05(土) 14:39:112chのしきたりとか分かってない
0127デフォルトの名無しさん
2008/04/05(土) 14:58:550128デフォルトの名無しさん
2008/04/05(土) 15:15:260129デフォルトの名無しさん
2008/04/05(土) 15:16:50モマエら
よその星の人はどんどん進歩しているのに、地球人同士で足引っ張り合って
自滅するかも知れないと思ったことはないのか。
攻める先を取り違えるな。
0130デフォルトの名無しさん
2008/04/05(土) 15:18:290131デフォルトの名無しさん
2008/04/05(土) 15:21:510132デフォルトの名無しさん
2008/04/05(土) 16:19:36ちょっと自重しろ。
0133デフォルトの名無しさん
2008/04/05(土) 16:59:082kとxpで違ったりしますか?
0134デフォルトの名無しさん
2008/04/05(土) 17:19:24マイクロソフトに「アイコンください」と言えばもらえるよ。
0135デフォルトの名無しさん
2008/04/05(土) 17:22:33・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる
糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。
・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
バグレポートなどしてはいけません。改善要求などもってのほかです。
あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
なんて話が出たら力強く机を叩き、会議室を出ましょう。
あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。
糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
0136デフォルトの名無しさん
2008/04/05(土) 18:05:43そういえばそんなのあったの思い出した
さんくす
0137デフォルトの名無しさん
2008/04/05(土) 19:57:39Visual C++プログラマのためのCOM入門
http://www.seshop.com/detail.asp?pid=1022
0138デフォルトの名無しさん
2008/04/05(土) 23:05:09case WM_CREATE:
mop = MCIOPEN(filename , MCI_DEVTYPE_SEQUENCER, hWnd);
return 0;
case WM_KEYDOWN:
if(wp == VK_UP)
mciSendCommand(mop.wDeviceID , MCI_PLAY , MCI_NOTIFY , (DWORD)&mop);
else
mciSendCommand(mop.wDeviceID , MCI_STOP , 0 , 0);
return 0;
case MM_MCINOTIFY:
mciSendCommand(mop.wDeviceID , MCI_STOP , 0 , 0);
mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,0);
mciSendCommand(mop.wDeviceID , MCI_PLAY , MCI_NOTIFY , (DWORD)&mop);
return 0;
}
上記のような、midiファイルを↑キーで再生、他のキーで停止、曲の最後まで行ったらまた初めからループするプログラムを作ったのですが、
↑以外のキーを押して曲を止めても、勝手に曲の初めから流れ始めます。
MCI_PLAYのMCI_NOTIFYを外してみると曲が止まったままにすることが出来たのですが、それだとループになりません。
ループするようにしたmidiを、停止することはできないのでしょうか?
0139デフォルトの名無しさん
2008/04/05(土) 23:07:19MM_MCINOTIFYのwParam見れ
0140デフォルトの名無しさん
2008/04/05(土) 23:15:37if(wp == MCI_NOTIFY_SUCCESSFUL) で、できました。
ありがとう。
>>139を見て MM_MCINOTIFY wparam でググったら出てきましたが、
こういう〜に〜が格納されるという情報はどこから仕入れているんですか?
0141デフォルトの名無しさん
2008/04/05(土) 23:20:24http://www.google.com/search?q=MM_MCINOTIFY+site%3Amicrosoft.com
0142デフォルトの名無しさん
2008/04/05(土) 23:20:44時々ウソ書いてるのと、オンライン版は重たいのが難点だが。
0143デフォルトの名無しさん
2008/04/05(土) 23:28:53英語勉強しないと;
0144デフォルトの名無しさん
2008/04/06(日) 08:47:55ツールバーを作成するときに
// hwndTB : ツールバーウィンドウ
HBITMAP hBMP = ::LoadBitmap(::GetModuleHandle(NULL), MAKEINTRESOURCE(ID_TOOLBARBMP));
HIMAGELIST hIL = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, NUM_TBICONS);
ImageList_AddMasked(hIL, hBMP, RGB(0, 255, 0));
::SendMessage(hwndTB, TB_SETBITMAPSIZE, 0, MAKELONG(16, 16));
::SendMessage(hwndTB, TB_SETIMAGELIST, NUM_TBICONS, (LPARAM)hIL);
のようにして、マスクつきの画像を使うことにしていまして
クリックのメッセージが飛んできたときに
// hwndTB : ツールバーウィンドウ
// iIcon : アイコンの番号
::SendMessage(hwndTB, TB_CHANGEBITMAP, ID_TBBUTTON1, MAKELPARAM(iIcon, 0));
を呼んでアイコンを変更しています。
XP ではこれで問題ないのですが、
Vista では、前の画像が消えなくて、その上に新しい画像を重ねたような表示になります。
(透過マスク付きなので、前の画像が上塗りされない)
何か使い方を間違えているのでしょうか?
0145デフォルトの名無しさん
2008/04/06(日) 10:40:31いろいろ試行錯誤してまつ。BasicでのSendKey的なイメージ。
ActiveXコントロールにtranslateAccellatorのメソッドがあったので、
以下のようなMSG構造体を作って引数として渡す方法で実験してみた。
message <= WM_KEYDOWN
wparam <= VK_RIGHT
するとActiveX Control側では、キーボードの現在の修飾キー状態を読み取ってしまい、
コントロールキーが押されてると、Ctrl+右ボタンになってしまう。
現在の修飾キーの状態にかかわらず、ActiveXに「右ボタン」だけを渡すには
どうすればいいですか?
0146デフォルトの名無しさん
2008/04/06(日) 10:43:130147デフォルトの名無しさん
2008/04/06(日) 13:20:240148デフォルトの名無しさん
2008/04/06(日) 13:24:19NULL
0149デフォルトの名無しさん
2008/04/06(日) 15:14:510150デフォルトの名無しさん
2008/04/06(日) 15:18:170151デフォルトの名無しさん
2008/04/06(日) 15:28:50_lcreatとかの失敗時に-1を返すWin16の関数から
CreateFileへの移植を容易にするためだそう。
http://blogs.msdn.com/oldnewthing/archive/2004/03/02/82639.aspx
0152デフォルトの名無しさん
2008/04/06(日) 15:40:23同じ型に別名与えるだけでいいんだからさ。
0153デフォルトの名無しさん
2008/04/06(日) 16:04:33そしたら、CloseHandleは?
0154デフォルトの名無しさん
2008/04/06(日) 18:39:45.NETFrameworkのクラスライブラリはVB6のソレを焼直した感があってこれまた中途半端
MSはもっと直感的で分かりやすく作れないものなの?
0155デフォルトの名無しさん
2008/04/06(日) 18:41:130156デフォルトの名無しさん
2008/04/06(日) 19:20:330157デフォルトの名無しさん
2008/04/06(日) 19:43:22どっちも CloseHandle でいいじゃないか
WINAPI と APIENTRY と CALLBACK が同じものだったりする感じで。
0158デフォルトの名無しさん
2008/04/06(日) 20:29:480159デフォルトの名無しさん
2008/04/06(日) 21:31:27すげーでけーよw
0160デフォルトの名無しさん
2008/04/06(日) 21:34:370161デフォルトの名無しさん
2008/04/06(日) 21:40:390162デフォルトの名無しさん
2008/04/06(日) 21:42:200163デフォルトの名無しさん
2008/04/06(日) 22:02:230164デフォルトの名無しさん
2008/04/06(日) 22:06:58Microsoftは五年かかったのにな
0165デフォルトの名無しさん
2008/04/06(日) 22:16:43とりあえずEAX2.0までのエミュレーションコードも入れといてね。
0166デフォルトの名無しさん
2008/04/06(日) 22:16:56ReactOSとwineとカーネルデバッガから辿るのは結構しんどい
0167デフォルトの名無しさん
2008/04/06(日) 22:46:56ぶっちゃけこれで十分
0168デフォルトの名無しさん
2008/04/06(日) 23:22:15標準で定義されているハード情報取得するときのコントロールコード
をDeviceIoContorol()にわたして、そのときに返ってくる値を
フィルタドライバのなかでうその値に変換して戻せる?
0169デフォルトの名無しさん
2008/04/06(日) 23:26:510170デフォルトの名無しさん
2008/04/06(日) 23:53:40XP の CommandLineToArgvW は argv[argc] に NULL を格納しようとしてし忘れている感じがした記憶がある。
0171デフォルトの名無しさん
2008/04/06(日) 23:59:00それはきっと前世の記憶だ。さぁ、今すぐMSに行ってバージョンアップしてきなさい。
0172デフォルトの名無しさん
2008/04/07(月) 00:02:542000のやつも忘れてた気がする
まあCランタイムの__argc/__targvを使うかUnderTheHoodのやつからパクってくればいいだろう
俺の場合リバースエンジニアして非公開APIを使いまくっていたソフトが
Vistaになって大多数の非公開APIが廃止されたせいでエラーが出て起動しなくなってて泣いた
0173デフォルトの名無しさん
2008/04/07(月) 00:18:520174デフォルトの名無しさん
2008/04/07(月) 00:23:46即レスどうもありがとう!徹夜プログラムで確認中に寝落ちしますた。
でうまくいかなくてまだ確認中なんだけど、sendInputは、TranslateAccellalatorと違って、
送り先のコンポーネント(hWndなど)を指定することができない。これが原因と関係するのかなあと。
やっぱりWM_KEYDOWNのMSG構造体を作る当初方針でがんばるのが必要なのかな。
0175デフォルトの名無しさん
2008/04/07(月) 00:31:28だってさ、95〜XPまで問題なく使えたんだぜ? いきなり廃止するとは思わないじゃない
でも互換モードでXPSP2にすると普通に動くあたりがMSらしい
きっと古いMS製品も動かなかったのだろうw
シンボル取ってきて見てみたらAPIの前にRETIRED_とか付いててワロタ
0176デフォルトの名無しさん
2008/04/07(月) 00:50:300177デフォルトの名無しさん
2008/04/07(月) 00:52:33洒落が聞いてるなw
Vistaにするにあたって、整理したのかねぇ。
で、古い非公開APIは別の所にまとめたとか。
0178デフォルトの名無しさん
2008/04/07(月) 01:06:110179デフォルトの名無しさん
2008/04/07(月) 01:08:440180デフォルトの名無しさん
2008/04/07(月) 02:55:01自己レスです。送り先指定がないので自アプリのトップへ送ると固定されてるのかなと思ってたけど
考えてみたら、XKeymacsみたく、外部アプリへキーボード入力を送り込むアプリもあるので、
そういう制限はないはず。なのでよくわからんが、Xkeymacsのソースを解析中。
そもそも単にキーボードカスタマイズの自由度を広げるためにやってたんだが、深みにはまりそうな予感してきたw
0181デフォルトの名無しさん
2008/04/07(月) 05:01:11だれも気にしてないと思うけど、知識共有になるかもなので、うまくいったコードおば。
void Hander_For_Ctrl_F() {
MSG oMsg = { m_hWndObj, WM_KEYDOWN, VK_RIGHT, 0, 0, 0 };
BYTE cKeyStates0[ 256 ], cKeyStates[ 256 ];
ZeroMemory( (void *)cKeyStates0, 256 );
GetKeyboardState( cKeyStates );
SetKeyboardState( cKeyStates0 );
m_pAxObj->TranslateAccelerator( &oMsg ); <= 修飾なし右ボタンをActiveXへ
SetKeyboardState( cKeyStates );
}
ActiveXにそれ用のコマンドがなかったので、偽装キー入力で対応したんだが、
キーボードのEmuは奥が深い…。というか泥臭い。なんかあとからバグりそうねw
0182デフォルトの名無しさん
2008/04/07(月) 13:35:42デペンデンシー・ウォーカー眺めてると楽しいよ。
0183デフォルトの名無しさん
2008/04/07(月) 14:13:12DROPFILES構造体のために確保した領域は
投げてからすぐ解放してしまっていいのでしょうか?
サンプルを探したら、しているものといないものがあって
判断に迷います。
0184デフォルトの名無しさん
2008/04/07(月) 14:23:56思うに、COMのOLED&Dと勘違いしてないか?
0185デフォルトの名無しさん
2008/04/07(月) 14:45:10では、ウィンドウにファイルをドロップするには何のメッセージを使えばいいのでしょうか?
0186デフォルトの名無しさん
2008/04/07(月) 14:54:03別のプロセスに送るなら、すぐに解放しても構わないはず。
0187デフォルトの名無しさん
2008/04/07(月) 14:57:19そういう使い方"も"出来る訳だが
知らないのか?
>>183
対象アプリがDragFinishで開放するからいらないんじゃないの?
0188デフォルトの名無しさん
2008/04/07(月) 15:03:090189デフォルトの名無しさん
2008/04/07(月) 15:06:17勘違いしてるのはお前だろw
0190デフォルトの名無しさん
2008/04/07(月) 15:08:190191デフォルトの名無しさん
2008/04/07(月) 15:11:500192デフォルトの名無しさん
2008/04/07(月) 15:14:440193デフォルトの名無しさん
2008/04/07(月) 15:20:280194デフォルトの名無しさん
2008/04/07(月) 15:22:220195デフォルトの名無しさん
2008/04/07(月) 15:29:08とりあえず>>184は切腹
0196デフォルトの名無しさん
2008/04/07(月) 15:29:440197デフォルトの名無しさん
2008/04/07(月) 15:29:49荒らすなよお前
0198デフォルトの名無しさん
2008/04/07(月) 15:55:340199デフォルトの名無しさん
2008/04/07(月) 15:58:41>>121
0200デフォルトの名無しさん
2008/04/07(月) 15:58:50空気読めよ
0201デフォルトの名無しさん
2008/04/07(月) 16:18:020202デフォルトの名無しさん
2008/04/07(月) 16:34:380203デフォルトの名無しさん
2008/04/07(月) 16:45:320204デフォルトの名無しさん
2008/04/07(月) 16:46:450205デフォルトの名無しさん
2008/04/07(月) 16:56:240206デフォルトの名無しさん
2008/04/07(月) 17:51:020207デフォルトの名無しさん
2008/04/07(月) 18:21:580208デフォルトの名無しさん
2008/04/07(月) 18:54:510209デフォルトの名無しさん
2008/04/07(月) 18:59:140210デフォルトの名無しさん
2008/04/07(月) 19:05:07RtlCompressBuffer / RtlDecompressBuffer
0211デフォルトの名無しさん
2008/04/07(月) 19:14:15お前>>184だろ
知らない癖に主観で嘘を書いたら叩かれて当然
そんな当然の事も分からず被害者ヅラするぐらいなら最初から書くな
0212デフォルトの名無しさん
2008/04/07(月) 19:16:36すんません、それぐぐっても悲しいくらいにヒットしないんですが
それって簡単なんですか?
0213デフォルトの名無しさん
2008/04/07(月) 19:28:22あるじゃんwww
しっかり検索しようよ
http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Compression/RtlCompressBuffer.html
0214デフォルトの名無しさん
2008/04/07(月) 19:33:02あ、これは失礼しますた。
WEB全体からぐぐるとある程度でてきました。
0215デフォルトの名無しさん
2008/04/07(月) 19:45:25∧∧
ヽ(・ω・)ノ ズコー
\( \ ノ
、ハ,、  ̄
 ̄
0216デフォルトの名無しさん
2008/04/07(月) 21:46:19エクスプローラーのリストビューのタイプの変更を行いたく思い、少し調べているのですがよくわからない部分があるので質問させてください。
http://yokohama.cool.ne.jp/chokuto/urawaza/lv_icon.html
を読んでタイプの変更は出来そうなのですがWindows Vistaの特大アイコンなどはどのようなメッセージを送ればいいのかわからないのです。
ヒント等ご教授戴ければ幸いです。
0217デフォルトの名無しさん
2008/04/07(月) 21:49:100218デフォルトの名無しさん
2008/04/07(月) 22:01:34どうもありがとうございます。
その発想はありませんでした。
0219デフォルトの名無しさん
2008/04/08(火) 01:39:44Cの標準ライブラリを使うかで悩んだりするけど、他の人はどうしてる
のかな。
例えばWindowsプログラムには、文字列用にいろいろなtypedefした型が
あるけど、実際には同じくcharの配列だしsprintfとかstrlenとかも使え
るだろうが、それは反則とみなすのか。
wspritnfとかlstrlenのようにWindows用の関数があればいいけど、それ
がないやつは困りそうだ。あったとしても、MSDNで調べて理解して解決ま
で持っていくのも大変そうだな。
ところでファイル入出力も、fputs、fprintf、fgets等に似たWindows用
の関数もあるんでしょうか。あるかないかだけ聞ければいいです。
0220デフォルトの名無しさん
2008/04/08(火) 01:40:520221デフォルトの名無しさん
2008/04/08(火) 05:08:020222デフォルトの名無しさん
2008/04/08(火) 05:15:040223デフォルトの名無しさん
2008/04/08(火) 05:58:55VC以外のコンパイラを使うことも考慮するなら、
VCのTCHARマクロと互換性のあるものを別に作って使えばいいと思うよ。
0224デフォルトの名無しさん
2008/04/08(火) 06:28:420225デフォルトの名無しさん
2008/04/08(火) 07:23:580226デフォルトの名無しさん
2008/04/08(火) 07:36:30そもそも Windows プログラミングをしようってんだから
TCHAR 使うのは普通だろ?
0227デフォルトの名無しさん
2008/04/08(火) 07:59:080228デフォルトの名無しさん
2008/04/08(火) 08:14:23wchar_tがWin32APIのWCHARと互換性があるという仮定は、
すべきではないだろう。
gccではwchar_tが32ビット幅だったりするしな。
0229デフォルトの名無しさん
2008/04/08(火) 09:15:12のようにCTRL+ALT+DELを押した時の画面のキャプチャを取ろうと思ってます。
アプリケーションのサービス化、デスクトップハンドルの取得、
EnumDesktopWindowsでウインドウ列挙、までは可能ですが
GetDCによるHDCの取得ができません。
何か別の方法があるのでしょうか?
「SAS Window」のウインドウハンドルを取得しSetWindowTextでタイトルを
変更する事ができましたのでウインドウハンドルまでは取得できています。
よろしくおねがいします。
0230デフォルトの名無しさん
2008/04/08(火) 09:16:58マニュアルとかのドキュメント作成のために画面キャプチャが欲しいっていうのなら、
リモートデスクトップとかVMwareとか、そういうのを使うといいよ。
0232デフォルトの名無しさん
2008/04/08(火) 11:51:13とりあえずGetDC失敗した後GetLastErrorで原因を探ってみてはどうじゃろ。
0233デフォルトの名無しさん
2008/04/08(火) 12:04:020234デフォルトの名無しさん
2008/04/08(火) 12:14:140235デフォルトの名無しさん
2008/04/08(火) 12:15:12知らないのに無理に答えようとしてガンバル必要はないぞ。
0236デフォルトの名無しさん
2008/04/08(火) 12:18:27このエロめ!
0237デフォルトの名無しさん
2008/04/08(火) 12:19:510238デフォルトの名無しさん
2008/04/08(火) 12:27:260239デフォルトの名無しさん
2008/04/08(火) 12:33:270240デフォルトの名無しさん
2008/04/08(火) 12:34:28無知ならレスしないでください
0241デフォルトの名無しさん
2008/04/08(火) 12:35:37gccで一括りにしてはダメ。Windows用のgccはwchar_tが16ビット。
0242デフォルトの名無しさん
2008/04/08(火) 12:37:310243デフォルトの名無しさん
2008/04/08(火) 12:42:510244デフォルトの名無しさん
2008/04/08(火) 12:49:560245デフォルトの名無しさん
2008/04/08(火) 13:09:150246デフォルトの名無しさん
2008/04/08(火) 13:20:06されてないと思うよ。
NT4.0の頃のIEの暗号化が標準か高度かによって違っていただろうしね。
CryptoAPIを使うことは考えてみた?
0247デフォルトの名無しさん
2008/04/08(火) 13:28:00>>246
あー。いや暗号強度とかはあんまり関係なかったんです。
データ管理に128bitのハッシュが必要だったんだけど、ソースをあまり増やさないで欲しい
というんでMD5ルーチンが使えなかった、でこれを利用したかった。
ポータブルなデータではないんで絶対同一であることが必要でもないんだけどちょっと気になったので。
0248デフォルトの名無しさん
2008/04/08(火) 13:39:23SDKヘルプで出てきたし
0249デフォルトの名無しさん
2008/04/08(火) 13:44:240250デフォルトの名無しさん
2008/04/08(火) 13:48:31今は復帰してるが
Windows Filtering Platform超ワケワカンネ
0251デフォルトの名無しさん
2008/04/08(火) 13:52:160252デフォルトの名無しさん
2008/04/08(火) 14:01:01>>249
独り言やめれ。
MSDNライブラリくらいローカルのHDDにインストールしろよ。
0253デフォルトの名無しさん
2008/04/08(火) 14:02:590254デフォルトの名無しさん
2008/04/08(火) 14:03:07無知はレスするなつったろクズ
0255デフォルトの名無しさん
2008/04/08(火) 14:03:24内容自体はAPIのDrawText()そのものなので、
こちらで質問させていただきます。
ワードラップをオフにした状態で常に右端で折り返したいのですが、
それを実現するフラグ指定はあるのでしょうか。
dc.DrawText("あいうえおかきくけこさしすせそ 1234567890 1234567890 1234567890",
CRect(0, 0, 150, 150),
DT_WORDBREAK);
DT_WORDBREAKを指定すると、日本語の部分は右端で折り返させるのですが、
半角の部分はスペース位置でワードラップしてしまいます。
DT_WORDBREAKをオフにすると折り返しすらされません。
0256デフォルトの名無しさん
2008/04/08(火) 14:09:23分かりやすい奴だ
0257デフォルトの名無しさん
2008/04/08(火) 14:27:22MD5Initってのが出てきたが
>Requires Windows XP or Windows 2000 Professional.
ってのが>>244の希望に沿ってない気がする
0258デフォルトの名無しさん
2008/04/08(火) 14:40:13出てきたって・・・おい
知らないなら調べてまで答えるなよ。
知ったかぶりの知識はいらない。
ちょっと調べて得られる情報なら本人だって既に知ってるだろ。
Win95OSR2、NT4.0以降でサポートされてるCryptoAPIを使え。
実際の処理を行うプロバイダがインストールされているかは別の話しだが。
0259デフォルトの名無しさん
2008/04/08(火) 14:46:49今更サポート切れてる9xなんかに対応する必要なんて無かろうに
0260デフォルトの名無しさん
2008/04/08(火) 14:46:52IE3が入っていればWin95でも問題ないと思う
0261デフォルトの名無しさん
2008/04/08(火) 14:55:35ところがCygwinやMinGWのgccはwchar_tが2バイトでビルドされているので、
WCHARとwchar_tが等しいという仮定はここでも通用する。
0262デフォルトの名無しさん
2008/04/08(火) 14:56:34嘘教えるなくず
0263デフォルトの名無しさん
2008/04/08(火) 15:09:550264デフォルトの名無しさん
2008/04/08(火) 15:58:23そういうのを、たまたま一致している、というのだよ。
0265デフォルトの名無しさん
2008/04/08(火) 16:03:070266デフォルトの名無しさん
2008/04/08(火) 16:14:450267263
2008/04/08(火) 16:15:300268デフォルトの名無しさん
2008/04/08(火) 16:25:59英語圏では単語の途中で改行されるのを嫌うから、なるべく区切り文字で改行するようになってるんだと思う。
0269229
2008/04/08(火) 16:30:50GetLastErrorでは何も返ってきませんので、
GetDCでエラーが発生しているわけでは無いみたいです。
ただGetDCで返ってきたHDCからHBITMAPを作成しても真っ黒です。
ちなみに通常の状態ですと、
取得したHDCからHBITMAPを作成で正常にキャプチャできています。
0270デフォルトの名無しさん
2008/04/08(火) 16:49:21CRTDLL.DLLやMSVCRT.DLLにあわせるためであり必然です
0271デフォルトの名無しさん
2008/04/08(火) 16:57:20実行に管理者権限が必要かどうかぐらい書いとけカス
0272デフォルトの名無しさん
2008/04/08(火) 17:16:45わざわざVista使ってストレス溜めて何の得になるんだ?
0273デフォルトの名無しさん
2008/04/08(火) 17:44:09お前XPなの?
m9(^Д^)プギャーーーッ
ってしたいため
0274デフォルトの名無しさん
2008/04/08(火) 17:45:260275デフォルトの名無しさん
2008/04/08(火) 17:49:400276デフォルトの名無しさん
2008/04/08(火) 17:50:26合わせる必要なんかないだろ。
ていうか、gccはGNUのC標準ライブラリを使うんじゃないか?
MSVCRT.DLLを使うのは行儀が悪すぎる。
0277デフォルトの名無しさん
2008/04/08(火) 17:52:050278デフォルトの名無しさん
2008/04/08(火) 17:55:390279デフォルトの名無しさん
2008/04/08(火) 17:57:360280デフォルトの名無しさん
2008/04/08(火) 18:07:370281デフォルトの名無しさん
2008/04/08(火) 18:14:29MinGWinはデフォルトでMSVCRT.DLLを使うよ
0282デフォルトの名無しさん
2008/04/08(火) 18:16:50知ったか乙
0283デフォルトの名無しさん
2008/04/08(火) 18:22:590284デフォルトの名無しさん
2008/04/08(火) 18:26:392000みたいな感じってのがよくわからないが、グループや特権の割り当ては2000と同じようにできるよ
Administratorsが必要なときに自動的にrunasみたいなダイアログが出るところは2000と違う
0285デフォルトの名無しさん
2008/04/08(火) 19:10:45W系APIが16ビット前提なんだから、合わせるのは当然でしょ。
gccでデフォルトで glibc を使うプラットフォームはむしろ少数派。
0286デフォルトの名無しさん
2008/04/08(火) 19:32:420287デフォルトの名無しさん
2008/04/08(火) 19:41:120288デフォルトの名無しさん
2008/04/08(火) 19:53:17出来る。
0289デフォルトの名無しさん
2008/04/08(火) 21:55:13もの書いたりしないようにしてゆけば、>>287みたいな使い方もどんどん楽になってゆくよね
・・・・無理だけどさ。
サービスなんかやめて setuid ビット採用してよ >> Windows
0290デフォルトの名無しさん
2008/04/08(火) 22:30:410291デフォルトの名無しさん
2008/04/08(火) 23:24:31MSDNネット版、やたら重いよね。Webのデザインが変わってから重くなったイメージ。
勘弁してほしいよな。
0292デフォルトの名無しさん
2008/04/09(水) 03:21:02合わせるのが合理的ではあるが、絶対に合せなければならないというわけではないぞ。
0293デフォルトの名無しさん
2008/04/09(水) 03:21:50MSDNライブラリくらいローカルにインストールしろって。
オンライン版よりも少し内容が古くなるったって、それが問題になるような仕事してんのか?
0294デフォルトの名無しさん
2008/04/09(水) 07:32:28おれは今のMSDNのほうが使いやすいな
あとは検索の糞っぷりと左ペインの使いづらさをどうにかしてほしい
0295デフォルトの名無しさん
2008/04/09(水) 09:34:38Windows SDKを検索すれば状況が理解できると思うよ
0296デフォルトの名無しさん
2008/04/09(水) 10:25:020297デフォルトの名無しさん
2008/04/09(水) 10:28:10エクセルビューアのウィンドウクラス名はなんですか?
どなたか教えてください(>_<)
0298デフォルトの名無しさん
2008/04/09(水) 10:33:46エクセルビューアが何なのか知らないけど、それを持ってるなら
起動してspy++で見ればわかるよ。
0299デフォルトの名無しさん
2008/04/09(水) 11:14:48調べることができました!
ありがとうございます!
0300デフォルトの名無しさん
2008/04/09(水) 16:02:11WM_DROPFILESはPost側で確保してGet側で解放する仕様なので作ってPostMessageしたらそれで終わり
もちろん(まずないはずだが)PostMessageが失敗したときには自前でGlobalFreeすること
0301デフォルトの名無しさん
2008/04/09(水) 16:08:32>>187で既出
それとも二日間調べつづけて漸く結論を導き出せた>>184君か?w
0302デフォルトの名無しさん
2008/04/09(水) 16:12:59どうせお前らも同じく無知なんだから
0303デフォルトの名無しさん
2008/04/09(水) 16:22:08○俺ら
0304デフォルトの名無しさん
2008/04/09(水) 16:24:26○俺
0305デフォルトの名無しさん
2008/04/09(水) 16:45:070307デフォルトの名無しさん
2008/04/09(水) 17:38:250308デフォルトの名無しさん
2008/04/09(水) 17:40:500309デフォルトの名無しさん
2008/04/09(水) 17:44:510310デフォルトの名無しさん
2008/04/09(水) 17:45:29わかりやすすぎwwwwwwwwwwwwww
0311デフォルトの名無しさん
2008/04/09(水) 17:56:390312311
2008/04/09(水) 17:57:030313デフォルトの名無しさん
2008/04/09(水) 18:03:30○俺ら
0314デフォルトの名無しさん
2008/04/09(水) 18:09:14○お前ら
0315デフォルトの名無しさん
2008/04/09(水) 18:17:560316デフォルトの名無しさん
2008/04/09(水) 18:20:390317デフォルトの名無しさん
2008/04/09(水) 18:21:47できました!
ありがとうございます。
0318デフォルトの名無しさん
2008/04/09(水) 18:47:260319デフォルトの名無しさん
2008/04/09(水) 18:52:35せめてLatestぐらいにしとけ
0320311
2008/04/09(水) 19:03:44諦めたほうがよさそうだ。別の方法を探ります
0321デフォルトの名無しさん
2008/04/09(水) 19:10:250322デフォルトの名無しさん
2008/04/09(水) 19:31:120323デフォルトの名無しさん
2008/04/09(水) 19:41:16GetWindowLongで我慢しろブタ野郎!
0324デフォルトの名無しさん
2008/04/09(水) 19:45:520325デフォルトの名無しさん
2008/04/09(水) 20:11:420326デフォルトの名無しさん
2008/04/09(水) 20:13:230327デフォルトの名無しさん
2008/04/09(水) 20:13:51thx
0328デフォルトの名無しさん
2008/04/09(水) 20:14:510329デフォルトの名無しさん
2008/04/09(水) 20:17:530330デフォルトの名無しさん
2008/04/09(水) 20:18:17InvalidateRectは領域を無効化することで再描画させると記憶してる
0331デフォルトの名無しさん
2008/04/09(水) 20:27:210332デフォルトの名無しさん
2008/04/09(水) 20:29:220333デフォルトの名無しさん
2008/04/09(水) 20:47:590334デフォルトの名無しさん
2008/04/09(水) 20:57:44という言葉を無敵だと思ってるから
0335デフォルトの名無しさん
2008/04/09(水) 21:17:08他にウィンドウメッセージが無ければ、その時点でWM_PAINTが生成される。
0336デフォルトの名無しさん
2008/04/09(水) 21:23:07ウィンドウメッセージのキューは単純なFIFOではないのよ。
わかりやすいのはWM_TIMERかな。
たとえば100msec毎にWM_TIMERが送られてくるようにして、
わざとメッセージポンプを数秒間止めてみて、再開後にどうなるのか、
ちょろっとプログラムかいて試してみ。
WM_PAINTも同様。
0337デフォルトの名無しさん
2008/04/09(水) 21:56:37なかなか面白そうな質問なんで調べてみたがなかなか無いな。
フック使えば出来るが個人的にフック嫌いだしなー。
0338デフォルトの名無しさん
2008/04/09(水) 22:21:59意外だな
このスレはフック大好き人間だらけなのに
ま、解決策をすぐフックに持っていく短絡思考な回答者は嫌いだが
0339デフォルトの名無しさん
2008/04/09(水) 22:29:500340デフォルトの名無しさん
2008/04/09(水) 22:39:200341デフォルトの名無しさん
2008/04/09(水) 22:57:24>>48とか>>80-81とか
個人的に次々々バージョンぐらいのWindowsからSetWindowsHookEx/CreateRemoteThreadとかは
Vistaの64-bitドライバみたいに未署名モジュールは使えなくすればいいと思っていたりする
0342デフォルトの名無しさん
2008/04/09(水) 23:02:48そんなことになったら、自作ヘボソフト介助ツールが使えなくなるじゃないか!
世の中にはいいソフトなのにフロントエンドが腐ってる物が多いんだぞ
0343デフォルトの名無しさん
2008/04/09(水) 23:12:41Winのフックってシステム的に美しくないじゃん。
フックを使ったら負けだと思ってる (大学生 21歳 嘘)
0344デフォルトの名無しさん
2008/04/09(水) 23:20:540345デフォルトの名無しさん
2008/04/09(水) 23:37:16他プロセスに簡単に介入できる現状の方が問題だろ
どうしても自作ソフトでフックが必要なら、デジタル署名を取得するか
自分しか使わないならレジストリ設定や起動オプションなんかで無効化してしまうか
仮想PCで飼えばいい訳でだな
それに次々々バージョンなんてあと10年ぐらい先の話だろう
0346デフォルトの名無しさん
2008/04/10(木) 10:42:22lpSChange = (LPNMSELCHANGE)lp;
if((lpSChange->nmhdr).hwndFrom != hMon ||
(lpSChange->nmhdr).code != MCN_SELCHANGE)
return FALSE;
MonthCal_GetCurSel(hMon, &st);
wsprintf(szBuf, _T("%d年 %02d月 %02d日の予定"), st.wYear, st.wMonth, st.wDay);
SetWindowText(hStatic, szBuf);
wsprintf(szApp, _T("%d-%02d-%02d"), st.wYear ,st.wMonth, st.wDay);
MyShowPlan(hEdit, szApp);
SetFocus(hEdit[0]);
}
return FALSE;
}
猫でもわかるの本で勉強しているんですが
(lpSChange->nmhdr).hwndFrom
この->の意味がいまいち良くわからないんです。
検索しても解説しているのが見つからないので質問させていただきました。
誰か御教授頂けると嬉しいです(><)
0347デフォルトの名無しさん
2008/04/10(木) 10:46:01まずはその本を窓から投げ捨てた上で油をかけて燃やせ。
話はそれからだ。
あとスレ違い。
operator ->()は構造体へのポインタから構造体のメンバにアクセスするための演算子。
0348デフォルトの名無しさん
2008/04/10(木) 10:50:22放火犯で捕まるのは嫌です
0349デフォルトの名無しさん
2008/04/10(木) 10:50:480350デフォルトの名無しさん
2008/04/10(木) 11:00:09バージョンの誤差さえ何とかすれば結構いい本だと思ってたんですが、、ダメなんでしょうか(´・ω・`)
->のこと大体把握できました、ありがとうございます。
そしてスレ違いすいませんでした。
0351デフォルトの名無しさん
2008/04/10(木) 13:38:30ちゃんと理解していなくて、なんとなく動いているプログラムを量産する、
いないほうがマシなプログラマを育成するタイプの本だな。
もちろん、作者の人の行為自体は馬鹿にできないが。
0352デフォルトの名無しさん
2008/04/10(木) 13:40:070353デフォルトの名無しさん
2008/04/10(木) 13:47:200354デフォルトの名無しさん
2008/04/10(木) 13:50:11猫のせいでどれだけ糞コードが世に出回ったと思っているんだ。
0355デフォルトの名無しさん
2008/04/10(木) 13:51:46使うんだったら分からなくもない
コード自体はどうしようもないほどに糞
0356デフォルトの名無しさん
2008/04/10(木) 14:32:250357デフォルトの名無しさん
2008/04/10(木) 14:33:34今となっては正直無くてもいいと思う
まあ最近は適当に検索すると.NETばっかり出てきて鬱になるがw
0358デフォルトの名無しさん
2008/04/10(木) 14:54:450359デフォルトの名無しさん
2008/04/10(木) 14:58:50EnableThemeDialogTextureを適用したダイアログに乗せる方法だと、
そもそもダイアログの背景にグラデーションがかからないのでダメでした。
トラックバーコントロールのWM_CTLCOLORSTATICで、DrawThemeParentBackgroundを呼び出す方法だと。
ウインドウが隠れてから復帰するときにトラックバーコントロールが消えてしまいダメでした。
もう完全に詰まってしまった感じなのですが、トラックバーコントロールを独自実装する以外で何か良い方法はないでしょうか?
0360デフォルトの名無しさん
2008/04/10(木) 15:12:37ウインドウから隠れて復帰するときだけデフォルトウインドウプロシージャを呼び出すようにすれば、
一応きちんと描画されるのですが、判定が難しく、あまり確実な方法ではないので、他の方法はないでしょうか。
0361359-360
2008/04/10(木) 16:23:32>>360の方法をどうにか詰めて、
WM_CTLCOLORSTATICが呼ばれる前にWM_ERASEBKGNDが1回呼ばれた時は、
タスク切り替えでウインドウが隠れてから復帰なので、
このときにデフォルトウインドウプロシージャを呼び出さないと、
トラックバーコントロールが消えてしまうので、
デフォルトウインドウプロシージャを呼び出す。
WM_CTLCOLORSTATICが呼ばれる前にWM_ERASEBKGNDが2回呼ばれた時は、
タスクの最小化から復帰したときで、
このときはDrawThemeParentBackgroundを呼び出さないと、
背景がおかしくなるのでDrawThemeParentBackgroundを呼び出す。
としたら、どうにかできました。
ただ、このやり方はあまりにも泥臭く、不確実な感じがするので、
引き続き、他の方法がありましたらよろしくお願いします。
0362デフォルトの名無しさん
2008/04/10(木) 18:24:220363デフォルトの名無しさん
2008/04/10(木) 18:30:360364デフォルトの名無しさん
2008/04/10(木) 18:39:14WinMain関数より前で確保されたメモリ領域が解放されない現象が発生しています。
自分で用意しているグローバル変数のコンストラクタ内では
メモリ確保に絡む処理は行なっていません(いないはずです)。
このメモリリークがどこで発生しているか調べる方法はないでしょうか?
0365デフォルトの名無しさん
2008/04/10(木) 18:43:23APIじゃないけどね
0366デフォルトの名無しさん
2008/04/10(木) 18:47:060367デフォルトの名無しさん
2008/04/10(木) 18:49:54それはVCの話であって、Win32APIの話ではないよ。
> WinMain関数より前で確保されたメモリ領域が解放されない
_CrtDumpMemoryLeaksが指摘してくる、ということ?
メモリが解放されなくて困っているのでなければ、
WinMain関数に入ってすぐの時点で、
_CrtMemCheckpoint を使ってスナップショットをとり、
WinMain関数からreturnする前に自分で、
_CrtMemDifferenceや_CrtMemDumpStatisticsを
呼んで、そのスナップショットとの差分をチェックしよう。
0368デフォルトの名無しさん
2008/04/10(木) 18:55:26すいませんWin32でしか使えないというようなことが書いてあったので
ここで質問してしまいました。
その関数は使用してみたのですがWinMain関数の先頭で呼んでも
ブレークしてくれず、確保番号も若かったので
WinMain関数より前に確保されたメモリ領域なのではないかと推測しました。
何よりも先にその関数を呼び出すようなことは可能なのでしょうか?
0369デフォルトの名無しさん
2008/04/10(木) 18:57:49>_CrtDumpMemoryLeaksが指摘してくる、ということ?
そうです。
その方法を試してみます。
0371デフォルトの名無しさん
2008/04/10(木) 19:28:06いわゆるIEコンポを利用しているプログラムのIEサーバウィンドウが
実際にアクセスしているURLを調べるにはどうすればいいでしょうか?
ウェブ検索してみるとSPY++で調べたと思われる記述を見つけましたが
あれこれためしてみても私にはその方法がわかりませんでした。
表示内容とプロセスが掴んでいるリソースを見れば想像つくものも
ありますが、今回の件ではよくわからなくて困っています。
※すれ違いが許容範囲を超えてるなら誘導頂けると助かります。
0372デフォルトの名無しさん
2008/04/10(木) 20:53:58一時的に見たいだけなら、これが一番簡単だと思う。
・ローカルプロクシサーバを建てて、IEのプロクシに設定。
・アクセス後、プロクシのログを見る。
0373デフォルトの名無しさん
2008/04/10(木) 21:21:28同じようなもんだが、Fiddlerを愛用してる。
一応MS製だし、簡単なので。
0374デフォルトの名無しさん
2008/04/10(木) 21:37:06KB249232で出来ないか?
0375デフォルトの名無しさん
2008/04/10(木) 21:46:07ネットワークのパケットをモニタするのがいいんじゃないの
EtherealとかMicrosoft Network Monitorとかいろいろある
0376デフォルトの名無しさん
2008/04/10(木) 22:09:04トップレベルウィンドウ→子ウィンドウとクラス名が"Internet Explorer_Server"のものを探してハンドルゲット
見つかったウィンドウにWM_HTML_GETOBJECTを投げてオブジェクトを得る
ObjectFromLresultを使ってIHTMLDocument2のインターフェイスポインタゲット
IServiceProviderのインターフェイスをクエリしてQueryServiceでIWebbrowserAppとIWebbrowser2を指定してIWebbrowser2のインターフェイスポインタゲット
get_LocationURLでURLを得る
どう?w
0377デフォルトの名無しさん
2008/04/10(木) 22:15:08部外者だがなかなか使えそうな情報サンクス
0378デフォルトの名無しさん
2008/04/10(木) 22:27:260379デフォルトの名無しさん
2008/04/10(木) 22:37:48あ、HTMLDocument2::parentWindowでIHTMLWindow2取得してからIServiceProviderクエリだったかも
0380デフォルトの名無しさん
2008/04/10(木) 22:37:51平均的な大学受験勉強ぐらい
0381デフォルトの名無しさん
2008/04/10(木) 22:38:410382デフォルトの名無しさん
2008/04/10(木) 22:38:43そのまんま使うほど馬鹿じゃないよb
0383371
2008/04/11(金) 04:18:24URLとかきましたがコンテンツの元がインターネットなのか
PEのリソースなのか、レジストリなのかローカルファイルなのか
コードに埋め込みなのかはたまたそれ以外なのかわかりにくいのです。
まだ良く見てないのですが後で読み直してけんきゅうしてみます。
ありがとうございました。
0384371
2008/04/11(金) 05:11:49早速なにかスクリプトでも書こうと思ったのですが、↓のページのVBサンプルのバイナリがあっさり
そのまま使えました。助かりました。
http://www.google.com/search?btnI=I%27m%2BFeeling%2BLucky&q=Me.Text+=+%22GetHtmlObject%22
0385364
2008/04/11(金) 11:03:50new演算子をオーバーロードして、そこで_CrtSetBreakAlloc関数を呼ぶことで
確認出来るようになりました。
問題の確保場所はグローバル変数のstd::mapのコンストラクタ内でした。
とりあえずグローバル変数をやめることで対処しました。
スレ違い失礼しました。
0386デフォルトの名無しさん
2008/04/11(金) 11:06:310387デフォルトの名無しさん
2008/04/11(金) 12:03:54他人事だからどうでもいいけど、その行動は馬鹿にされるから
匿名じゃないところでは人に話さない方がいいよ
0388デフォルトの名無しさん
2008/04/11(金) 12:33:55モードレスダイアログを非表示にしたいのですが、
ShowWindowを使っても出来ないのですが…
ちなみに
親のWM_INITDIALOGでモードレスダイアログを表示しています。
0389デフォルトの名無しさん
2008/04/11(金) 12:45:38自己解決wwwwww
0390デフォルトの名無しさん
2008/04/11(金) 13:14:450391デフォルトの名無しさん
2008/04/11(金) 18:53:19クラス内部にstaticなメモリHDCを用意して共有し、最後に表HDCに転送する形で描画しようと考えてるのですが
この場合、描画処理は排他的にした方が用意のでしょうか?
0392デフォルトの名無しさん
2008/04/11(金) 18:54:210393デフォルトの名無しさん
2008/04/11(金) 18:55:36何とか察してください
0394デフォルトの名無しさん
2008/04/11(金) 18:59:24当然だろ?
0395デフォルトの名無しさん
2008/04/11(金) 19:21:06だれかおじさんにこっそり教えてくれないか
0396デフォルトの名無しさん
2008/04/11(金) 19:22:010397デフォルトの名無しさん
2008/04/11(金) 20:23:06http://ruffnex.oc.to/kenji/text/api_hook/
このサイトをベースに勉強しました.
その過程で下記の2点の疑問が出てきました.
1.
SetWindowsHookExは, あくまでメッセージキューを持ったスレッドのみに
関連付けられるのですよね?
2.
上記サイトでは, LoadLibraryとGetProcAddressを常にフックしていますが,
アプリケーションの組み方によっては有効でない気がします.
というのは, ウィンドウを表示させるようなアプリケーションを作るとして,
メッセージループに入る前にInitial処理としてLoadLibrary及びGetProcAddress等を
行うことが多いかと思います.
となると, Initial処理の二つの関数はフックされずに正常なアドレスを返してしまいますよね.
この問題って通常どうやって対処するものなのですか?
それとも, 上記の様なことを行うのは珍しいとして, 気にしないものですか?
0398デフォルトの名無しさん
2008/04/11(金) 20:41:08だいたいのプロセスでフックが効けばいいんすよ! ってわけにいかないのなら気になるでしょ?
判りやすいのが親プロセスのCreateProcess系をフックしてエントリーポイント到達以前にDllをロードさせる方法
エントリーポイントを自己JMPに書き換えてループしてる隙にスレッド立てて読ませる
エントリーポイントをJMPに書き換えてJMP先で読ませる
IATを書き換えてローダにロードさせる
後者2つはそれぞれgdi++/detoursで実装が読める
0399397
2008/04/11(金) 21:10:23不勉強な故, 見当違いな質問だったら申し訳ないです。
"親プロセスのCreateProcess系をフックしてエントリーポイント到達以前にDllをロードさせる"
とありますが, これはHookプロセスをどのプロセスよりも前に起動する必要がある
ということになりますか?
また, SetWindowsHookExを使ってしまうとメッセージキューでのDLLロードになってしまうので, 使わない方がベターですか?
0400デフォルトの名無しさん
2008/04/11(金) 21:37:33方法と特徴を調べて目的に合う方法をとればいいんじゃない?
全プロセスが対象! ってのならユーザモードの仕事じゃないとは思う
0401デフォルトの名無しさん
2008/04/11(金) 22:02:38すみません. 抽象的な話で進めようとしていました...
目的は,
デバッグとして, 自作アプリケーション(不特定多数)からイーサネットに流しているデータを読む.
ただし, 極力, 自作アプリケーションはHookを意識したくない.
(LoadLibrary, GetProcAddressを禁止する等を行いたくない)
というものです.
Hookプロセスは常駐型にしようと思っていますが,
被Hookプロセスはメッセージキューを必ずしも持つとは限りません.
そこで, SetWindowsHookExは使えないと考え, 別の方法を探しました.
http://japan.internet.com/developer/20050830/26.html#section_2
上記アドレスの方法をやってみたのですが, プロセスIDから引っ掛けて
フックを行うようになるので,
この方法ではLoadLibrary/GetProcAddress系がダメだと考えて手詰まり状態になりました...
0402デフォルトの名無しさん
2008/04/11(金) 22:21:22自作アプリが対象なら、外部からインジェクションしてフックするのではなく、
それぞれの自作アプリからフックDLLを明示的にLoadLibraryしなよ。
0403デフォルトの名無しさん
2008/04/11(金) 22:26:250404デフォルトの名無しさん
2008/04/11(金) 22:27:160405デフォルトの名無しさん
2008/04/11(金) 22:57:42検索すりゃ腐るほどでてくるだろ
0406デフォルトの名無しさん
2008/04/11(金) 23:02:47アプリケーションがフックDLLを取り込むという意識が入り込んでいる為, その手法だと目的に反してしまいます...
また明示的に行うと, GetProcAddressにより正しいアドレスを取得できてしまう為,
それらの関数を禁止しなければなりません.
デバッグの時のみリンクを行ってHookさせる手法がシンプルだとは思いますが, 極力違う方法も検討したいのです.
(勿論, 他の方法を検討した結果, その手法がベストであればその手法を選択すると思います.)
0407デフォルトの名無しさん
2008/04/11(金) 23:06:48#ifdef _DEBUG
LoadLibrary(_T("mydebughook.dll"));
#endif
こんなのをWinMainの先頭に入れとけばいいじゃないか
0408デフォルトの名無しさん
2008/04/11(金) 23:29:58自作アプリなら "GetProcAddressでアドレスを取得しているか" なんて分かるだろ
で、必要に応じてGetProcAddressもフックするか、関数の先頭をJMP命令に書き換える方法を使えばいい
> 被Hookプロセスはメッセージキューを必ずしも持つとは限りません
これも自作アプリなら分かるだろ
スレッドを作った時やコンソールアプリはPeekMessage(NULL, NULL, ...)でもしてキューを作ればいい
なんか自作アプリと言ってる割には情報が不確か過ぎるが、本当に自作アプリをフックしたいのか?
0409デフォルトの名無しさん
2008/04/12(土) 01:06:26グローバル変数等静的なオブジェクトのコンストラクタ内など、
WinMain() や main() の実行よりも前に確保されたメモリは、main()関数終了前など早めの段階では
未だ解放されていないため、その辺で_CrtDumpMemoryLeaks()が呼び出されるとリ―クとして報告されてしまう。
実際には「まだ」解放されていないだけでリークではないのだけれども。
MFCを使っていないなら、_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF )とすれば、
諸々完了した正しいタイミングで自動的に_CrtDumpMemoryLeaks()を呼び出してリークのチェックを行ってくれる。
MFC は ExitInstance あたりで勝手に_CrtDumpMemoryLeaks()を呼びだすので、MFCを使用したコードの倍には
こうしても正しい結果を得られない。
こんな説明ではどうだろう。
0410デフォルトの名無しさん
2008/04/12(土) 01:09:08確か起動する全てのプロセスに指定したdllをロードさせるためのレジストリキーがあったと思う。
なんていったっけっかな・・・
0411デフォルトの名無しさん
2008/04/12(土) 01:21:42これは全てのプロセスじゃなくてuser32.dllをロードするプロセスのみだが。
0412デフォルトの名無しさん
2008/04/12(土) 01:23:42んではダメだなぁ。
0413デフォルトの名無しさん
2008/04/12(土) 02:30:14自作アプリのみのフックじゃなかったのか
つうか自作アプリなんて真っ赤な嘘で、本当はチートツールでも作りたいだけだろ
0414デフォルトの名無しさん
2008/04/12(土) 02:44:27もちろん外部からアドレス計算して書き込む事も可能だけど面倒だね。
SetWindowsHookExが楽なのは、権限無視して潜り込める事だ。
ネットワーク限定だと、ファイアーウォール等の実装と同じ方法で覗けた気もするけどやり方忘れた。
XP以上辺りからOSでそんな機能が用意されていたような。
他には、葱のような実装か。
0415デフォルトの名無しさん
2008/04/12(土) 02:45:32??
0416デフォルトの名無しさん
2008/04/12(土) 02:50:37権限は無視されないだろ
そんなことできたらUsers権限でサービスとかもフックできることになるしセキュリティもへったくれもねー
0417デフォルトの名無しさん
2008/04/12(土) 02:57:24mDC = CreateCompatibleDC(hDC);
で互換DCを取得し、mDCに対して文字の表示などの操作を行った後
表画面にmDCを転送したいのですが
転送はBITMAPなどと同じようにBITBLITで転送でよいのでしょうか?
色々試しているのですが何も表示されません
0418デフォルトの名無しさん
2008/04/12(土) 03:01:21キモいフックネタが続いてる時に君のような質問を見るとホッとするよ。
0419デフォルトの名無しさん
2008/04/12(土) 03:12:11何がわからないのかがわからない。
>>413の疑問はもっともだろが。
0420デフォルトの名無しさん
2008/04/12(土) 03:14:01最初は上に乗る女子も恥ずかしかったらしく男子の腕にお尻をつけないようにして戦っていた
でも次第に騎馬の体勢が崩れてきて右側を支えていた奴がこけてしまったので
上に乗っていた女子は左側を支えていた自分の右腕にまたがるような格好になった
自分も右腕だけで支えるのはきつかったがなんとか崩れないように右腕で女子を上に押し上げていた
するとその女子は
「あっ・・・まって・・・ちょっと・・・あっ・・・あたってる・・・あたってる・・・あっ・・・」
と自分の右腕を挟みこむようにして腰を捻った。
小学生の自分に「あたってる」のが何なのか分かるはずもなく、
「今はまだがまんして!」
と訳も分からず励ましていた。
女子は「う、うん」と頷いたきり前を見据えてこちらを見ようともせず、力んだ顔をしている。
横から敵の騎馬が突進してきた。
旋回しようとするがバランスが崩れてしまい、右腕を思いっきりその子の股間に押し付けるように
突き上げてしまった。
「ひゃぅんッ」と声が漏れた。
なんだ?今の
見上げると真っ赤な顔とした女子と目が合った。
その喘ぎ声の理由を知る由もなく、「痛かった?」と尋ねると、
何も言わずにフルフルと首を振った。
「よし!このまま攻め込むぞ!」と隣の友人が叫んだ。
俺もそれに乗じて二人で前方へ疾走する。
が、当然それには上下運動を伴い、上に乗る女子の股間は何度も俺の右腕に押し付けられる。
「んっんっんっ・・・」
振動に合わせて彼女の鼻にかかった息が漏れる。
俺は小学生なりに何か淫靡なオーラを感じ取っていた(恐らく友人もだろう)が
勝負中に立ち止まるわけにも行かず、相変わらず女子に上下運動を与え続けていた。
しかし次第に彼女の「んっんっ」が「んっあっふっ」と声音を帯びてきた。
俺の頭に乗せていた手に次第に力がこもり、ギュウとつかんでいるのが分かった。
しかしここでアクシデントが。友人が足を捻り、転びかけ、体勢を立て直すために踏ん張ったが、その時に彼女の股間に最大の衝撃を与えてああ30行だ
0421デフォルトの名無しさん
2008/04/12(土) 03:32:23DC には何も描画したり表示したりできない。
したがってもちろん描画結果も格納されない。
ビットマップやプリンタに描画したり表示したり「するために」DCを使う、というだけ。
417 のやりたいようなことをするためには、CreateCompatibleBitmapでビットマップを作り、
それに (適切なDCを用いて) 描画しておいて 、BitBlt でそのビットマップを表示すればよい。
オフスクリーンビットマップやメモリDCでググればサンプルは多数見つかるだろう。
0422デフォルトの名無しさん
2008/04/12(土) 05:01:53色々調べてやってみたのですが
mDC = CreateCompatibleDC(hDC);
bitmap = CreateCompatibleBitmap(mDC ,800 ,600);
SelectObject(mDC ,bitmap);
HBRUSH brush = CreateSolidBrush((COLOR_BTNFACE+1));
SelectObject(mDC , brush);
PatBlt(mDC,0,0,800,600,PATCOPY);
BitBlt(hDC, 0, 0, 800, 600, pHDC, 0, 0, SRCCOPY);
この処理をすると背景が黒字に灰色の点が点々と表示されるようになってしまいましたorz
0423デフォルトの名無しさん
2008/04/12(土) 05:08:180424デフォルトの名無しさん
2008/04/12(土) 05:10:420425デフォルトの名無しさん
2008/04/12(土) 05:48:59CreateCompatibleDCで作られたメモリDCには初期状態で1*1の
モノクロビットマップがセットされている。
CreateCompatibleBitmapでそのDCを指定してしまうと、
モノクロのビットマップが作られてしまう。
っていうか、それ以前の問題として、そのBitBltのところのpHDCは
どこから出てきたんだ?
0427デフォルトの名無しさん
2008/04/12(土) 06:00:010428デフォルトの名無しさん
2008/04/12(土) 06:33:31phdcは古いコードの名残で誤植でした
とりあえず塗りつぶしまでは上手くいきました、ありがとうございます
PatBltで背景を塗りつぶすときウィンドウ標準の灰色で塗りつぶしたい場合は
ブラシで直接色を指定しか方法はないのでしょうか?
0429デフォルトの名無しさん
2008/04/12(土) 06:42:570430デフォルトの名無しさん
2008/04/12(土) 10:03:08なる。でありがとう
非MFCであれば、あえて_CrtDumpMemoryLeaksなどを使わなくても_CrtSetDbgFlagで正しい結果が得られる
むしろmainとかの段階では得ることができない。
にも関わらず_CrtDumpMemoryLeaksで頑張ろうとしているうえ
対策としてプログラム構造まで変えてしまったのが364 ってわけか
良くあることだけど確かに恥ずかしいね 超がんばれ
0431デフォルトの名無しさん
2008/04/12(土) 11:33:52メモリリーク云々の問題に関係なく、グローバル変数にするのはやめるべき。
0432デフォルトの名無しさん
2008/04/12(土) 12:38:20それどこの国の常識?
0433デフォルトの名無しさん
2008/04/12(土) 12:41:15クラスのインスタンスに限って邪悪とするのは非常識。
0434デフォルトの名無しさん
2008/04/12(土) 13:01:28親ウィンドウを最前面に表示させるにはどうすればよいですか?
0435デフォルトの名無しさん
2008/04/12(土) 13:04:29標準関数の中で使われてないか?
結局内輪でルール統一できれば問題ないよ。
プログラム上のどこでも使う変数や構造体を関数にわざわざ
渡していくことはナンセンスだ。
ひとつの変数をいろんな用途に使う方がよっぽど邪悪。
0436デフォルトの名無しさん
2008/04/12(土) 13:10:36それが、main関数に入る前に他の関数を呼び出すこと、だから。
>>435
> プログラム上のどこでも使う変数や構造体を関数にわざわざ渡していくことはナンセンスだ。
> ひとつの変数をいろんな用途に使う方がよっぽど邪悪。
明らかにダメなやりかたと比べてマシだというのは、ナンセンスだと思う。
0437デフォルトの名無しさん
2008/04/12(土) 13:13:220438デフォルトの名無しさん
2008/04/12(土) 13:15:290439デフォルトの名無しさん
2008/04/12(土) 13:18:56グローバル変数使ってる標準関数は軒並み糞だと言われている。
乱数列2つ使いたいのに使えないよこの糞がとか、
strtok をスレッドセーフにしてくれよこの糞がとか。
0440デフォルトの名無しさん
2008/04/12(土) 13:19:07APIと何の関係が?
0441デフォルトの名無しさん
2008/04/12(土) 13:31:11CreateDialogに指定してみたたら親ウィンドウを最前面に表示出来ましたが、
親ウィンドウから文字列をモードレス側のリストビューに追加出来ません。
何故ですか?
0442デフォルトの名無しさん
2008/04/12(土) 13:34:06朝食にパンを食べたら、雨が降りました。何故ですか、
と聞いているようなもんだよ。
0443デフォルトの名無しさん
2008/04/12(土) 13:34:170444デフォルトの名無しさん
2008/04/12(土) 13:35:25可能かどうかと、やるべきかどうかは、別問題。
0445デフォルトの名無しさん
2008/04/12(土) 13:38:11コンストラクタ/デストラクタ内で変な事してなけりゃ同じことだろ。
クラスがどうかとか無関係。
0446デフォルトの名無しさん
2008/04/12(土) 13:47:16私が提示している情報以外に必要なものを教えて下さい。
0447デフォルトの名無しさん
2008/04/12(土) 13:48:340448デフォルトの名無しさん
2008/04/12(土) 13:55:55変なこと、ねぇ。
たとえばnewを使うとか、な。
0449デフォルトの名無しさん
2008/04/12(土) 13:57:230450デフォルトの名無しさん
2008/04/12(土) 13:59:53具体的に
0451デフォルトの名無しさん
2008/04/12(土) 14:00:44他の翻訳単位内にある初期化の必要なグローバル変数に依存する
処理を記述する(初期化前に使ってしまうかもしれない)ってところだな。
逆に言えば、それさえしなけりゃ大した問題は無い。
0452デフォルトの名無しさん
2008/04/12(土) 14:02:23newが投げた例外をmain関数でもcatchできないのはマズいだろう。
0453デフォルトの名無しさん
2008/04/12(土) 14:03:32その場で catch して abort しろよ・・・。
0454デフォルトの名無しさん
2008/04/12(土) 14:04:17catch できなくても大した問題ではない。
0455デフォルトの名無しさん
2008/04/12(土) 14:07:43static std::vector<int> hoge(100);もダメ、
struct Point {
int x,y;
Point(int x_, y_) : x(x_), y(y_) {};
}; で、
static Point ptZero(0,0); もダメか。
こんなのも全部シングルトンにすんのかw
0456デフォルトの名無しさん
2008/04/12(土) 14:08:580457デフォルトの名無しさん
2008/04/12(土) 14:10:29少ないに越した事は無いが、利便性を考えると欲しい事はあるな。
0458デフォルトの名無しさん
2008/04/12(土) 14:17:580459デフォルトの名無しさん
2008/04/12(土) 14:27:170460デフォルトの名無しさん
2008/04/12(土) 14:38:400461デフォルトの名無しさん
2008/04/12(土) 14:42:15何そのグローバル変数で配置されることを前提の実装
0462デフォルトの名無しさん
2008/04/12(土) 15:10:12次はgotoネタか?
0463デフォルトの名無しさん
2008/04/12(土) 15:19:030464デフォルトの名無しさん
2008/04/12(土) 15:21:080465デフォルトの名無しさん
2008/04/12(土) 15:37:420466デフォルトの名無しさん
2008/04/12(土) 15:49:340467デフォルトの名無しさん
2008/04/12(土) 16:40:080468デフォルトの名無しさん
2008/04/12(土) 17:21:432人ではなく病気の彼1人だろ
0469デフォルトの名無しさん
2008/04/12(土) 17:59:320470デフォルトの名無しさん
2008/04/12(土) 18:03:34逆恨みしてスレに粘着して荒らすなんて、もうね。
プログラミングを勉強する前に、勉強すべきことがあるでしょうに。
ま、コミュニケーション能力が低いまま就職して、痛い目にあえばいいんだよ。
0471デフォルトの名無しさん
2008/04/12(土) 18:13:12答えられない屑は黙ってろ
0472デフォルトの名無しさん
2008/04/12(土) 18:16:260473デフォルトの名無しさん
2008/04/12(土) 18:17:04知ったかで回答して周囲から叩かれたのをまだ根に持ってるようだな
0474デフォルトの名無しさん
2008/04/12(土) 18:39:19本当にありがとうございました。
0475デフォルトの名無しさん
2008/04/12(土) 19:04:24ってのを作って分離しようよ
0476デフォルトの名無しさん
2008/04/12(土) 19:05:32sizeof(char)が必ず1でも、省略すべきではない
http://pc11.2ch.net/test/read.cgi/tech/1187521586/
0477デフォルトの名無しさん
2008/04/12(土) 19:37:18お前がそのスレ立てろ、今すぐに(笑)
0478デフォルトの名無しさん
2008/04/12(土) 19:49:11状況は次の通りで, 2.の消える問題を解決したいです.
1. 他のウインドウが重なっても, 重なっているウィンドウを移動させると
隠れていた部分が再描画される.
2. 他のウインドウが重なっていて, 重なっているウィンドウを終了させると
隠れていた部分が消える.
やっている処理はこんな感じです.
1. 裏画面に表示データをセット → InvalidateRect
2. WM_PAINT処理では, BeginPaint → BitBlt → EndPaint
何をトリガーに再描画指示を出せばよいか, アドバイスお願いします.
0479デフォルトの名無しさん
2008/04/12(土) 20:18:22WM_PAINTじゃね? 最近(Vista)のアエロじゃ発生しないらしいけど
0480デフォルトの名無しさん
2008/04/12(土) 20:20:43> 何をトリガーに再描画指示を出せばよいか
その発想が間違ってる。
表示内容が変ったらOSに伝える
再描画タイミングはOSが判断する
WM_PAINTが適切に送られてこない、あるいは、
BeginPaintで適切な領域が指示されないために、
正しく表示されないのであれば、
OSに不適切な値を渡していると思われる。
0481デフォルトの名無しさん
2008/04/12(土) 20:21:530482デフォルトの名無しさん
2008/04/12(土) 20:25:06ウィンドウを内容を表示したまま移動 → WM_PAINTを何度も受け取るので多少失敗していても気がつかない
だったりして。
0483デフォルトの名無しさん
2008/04/12(土) 20:25:32それ関係ない?
0484デフォルトの名無しさん
2008/04/12(土) 20:32:13自身の権限と取得されたACEの中で一番有効なACEと比較しなければならないとおもうのだが、
どのACEが有効となっているかの判断はどうすればよろしいでしょうか?
※関連:GetFileSecurity、GetSecurityDescriptorDacl
0485デフォルトの名無しさん
2008/04/12(土) 20:51:24ピクチャーボックスってVBか.NETの事か?
それともStaticコントロールをそう呼んでるのか?
いずれにしろピクチャーボックスなんてコントロールはWin32には無い
Staticコントロールに描画したいならSS_OWNERDRAWスタイルにしてWM_DRAWITEMに応答しとけ
0486デフォルトの名無しさん
2008/04/12(土) 21:05:37最近ニュースで話題の学校裏サイト状態w
でも、ほんとはここはWin32APIスレですよ。
0487デフォルトの名無しさん
2008/04/12(土) 21:06:34Aeroをローマ字として読むとアエロになるから別におかしくないだろ
無知は黙ってろよ
0488デフォルトの名無しさん
2008/04/12(土) 21:33:26無知は黙ってろ
Yahooはヤホーって読むんだよ
無知は黙ってろ
gooはゴーって読むんだよ
無知は黙ってろ
0489デフォルトの名無しさん
2008/04/12(土) 21:34:190490デフォルトの名無しさん
2008/04/12(土) 21:39:41少し聞きたいことがありまつ。
Viewで処理前にWM_CHARをとらえて、それでBSおよびCtrl+BSを禁止する方向で
BSの場合は、VK_BS(0x09)で検知できた。<= OK
BS+Ctrlが捕えられなかったので調べると、wparamに0x7fが入ってた。 <= これが不思議
0x7fを調べるとVK_F16。まずF16なんて使ったことないしF16ってなんなの?押せるの?
0x7fって昔の記憶ではDELETEボタンだったなあと思いつつ、それとは何か関係ある?
0x7fで処理してしまえばそれでプログラム的にはOKなんだけど、
詳しい人もけっこういるので質問させて。
0491デフォルトの名無しさん
2008/04/12(土) 22:09:25ASCIIとかの文字コードだと見なすべきだと思う。
そういう意味では0x7f = DELに1票。
VK_BACK = 0x09もASCIIではBSだし。
仮想キーコードが出てくるのはWM_KEYDOWN/UP系だよ。
0492デフォルトの名無しさん
2008/04/12(土) 22:11:27どうもありがとう!
0493デフォルトの名無しさん
2008/04/12(土) 22:18:03VK_BS(0x09)って書いたけど、厳密には0x08でした。
ASCIIでももちろん0x08です。
0494デフォルトの名無しさん
2008/04/12(土) 22:25:46SetRectの存在意義がわかりません
0495デフォルトの名無しさん
2008/04/12(土) 22:41:150496デフォルトの名無しさん
2008/04/12(土) 22:44:050497デフォルトの名無しさん
2008/04/12(土) 22:44:390498デフォルトの名無しさん
2008/04/12(土) 22:44:480499デフォルトの名無しさん
2008/04/12(土) 22:58:110501デフォルトの名無しさん
2008/04/12(土) 23:39:50何も答えてないけど
0502デフォルトの名無しさん
2008/04/13(日) 00:35:04氏ね
0503デフォルトの名無しさん
2008/04/13(日) 00:50:070504デフォルトの名無しさん
2008/04/13(日) 03:10:350505デフォルトの名無しさん
2008/04/13(日) 03:15:27落ち着いてシャワーでも浴びてFPUについてググってみれ
0506デフォルトの名無しさん
2008/04/13(日) 03:19:210507デフォルトの名無しさん
2008/04/13(日) 04:51:29ソースファイルを別のプロジェクトにコピーして使用したら
'/DUNICODE' がプリコンパイル済みヘッダーに定義されていますが、現在のコンパイル処理には定義されていません。
'/D_UNICODE' がプリコンパイル済みヘッダーに定義されていますが、現在のコンパイル処理には定義されていません。
'/D_DLL' がプリコンパイル済みヘッダーに定義されていますが、現在のコンパイル処理には定義されていません。
というエラーがいっぱい出てきてしまったのですがこれは何なのでしょうか?
今までは問題なく動作してたのですが・・・
0508デフォルトの名無しさん
2008/04/13(日) 05:14:150509デフォルトの名無しさん
2008/04/13(日) 05:18:220510デフォルトの名無しさん
2008/04/13(日) 11:34:46プロジェクトのプリコンパイルヘッダの項に指定されてるヘッダをcppで#includeしてみそ
0511デフォルトの名無しさん
2008/04/13(日) 12:19:300512デフォルトの名無しさん
2008/04/13(日) 13:49:140513デフォルトの名無しさん
2008/04/13(日) 14:35:13Unicodeで文字を取得したいんですがうまくいきません
取得した文字(例えばABC123)と
_T("ABC123")をwcscmpで比較すると一致しませんでした
Unicodeで英数字を取得する方法はありませんか
XPSP2,VC2008です
0514デフォルトの名無しさん
2008/04/13(日) 14:42:23デバッガで変数に格納されてる文字列を見比べて見れ
0515デフォルトの名無しさん
2008/04/13(日) 14:58:59ありがとう
取得した文字のNULの前にごみがついてることがわかりました
解決できそうです
0516デフォルトの名無しさん
2008/04/13(日) 14:59:120517デフォルトの名無しさん
2008/04/13(日) 15:22:39どう考えても改行コードだろそれ
0518デフォルトの名無しさん
2008/04/13(日) 15:26:30初歩的なミスで申し訳ない
0519デフォルトの名無しさん
2008/04/13(日) 15:46:250520デフォルトの名無しさん
2008/04/13(日) 15:54:32お前は少しでも探す努力をしたのかと。
ttp://msdn2.microsoft.com/en-us/library/aa383687(VS.85).aspx
0521デフォルトの名無しさん
2008/04/13(日) 15:57:32( ゚д゚) ・・・
(つд⊂)ゴシゴシ
(;゚д゚) ・・・
(つд⊂)ゴシゴシゴシ
_, ._
(;゚ Д゚) …!?
ほんと、何処見てたんでしょうね・・・(Functions by Categoryの中探してたところで力尽きました)
0522デフォルトの名無しさん
2008/04/13(日) 20:40:47DirectSoundで再生したサウンドの終了を検出するために
イベントオブジェクトを使うのですが、
WaitForMultipleObject関数って、イベントがシグナル状態になるまで
制御が帰ってこないんですよね。
作っているのはゲームで、音が終了したら何かしたい、
終了するまではゲームを進行したいというわけなんですが
わざわざイベントをチェックするためのスレッドを作るしかないんでしょうか。
「指定したハンドルのイベントが現在どっちの状態か取得する関数」
なんてものがあれば、解決するんですが。
(毎ゲームフレーム毎にそれを呼んでチェックすれば済む)
0523たぶん522
2008/04/13(日) 20:41:02ウィンドウのアプリケーションによって取得方法をたくさん用意しなきゃ駄目ですかね?
あと、キャプチャソフトに良く有るように画面上で矩形範囲を指定して、その範囲内に
あるウィンドウのテキストを取得する場合はどうすればいいですかね?
0524デフォルトの名無しさん
2008/04/13(日) 20:50:25複数のウィンドウが入る場合があるから。
ある点にあるウィンドウは ChildWindowFromPoint を
デスクトップウィンドウから始めて何度も適用すれば取得できるのかな?
やったことないから分からないけど。
あとはそれがエディットボックスなら(ウィンドウクラス名で判定できるか)、
普通に取得すりゃええんでないかな。
0525デフォルトの名無しさん
2008/04/13(日) 20:52:49( ´,_ゝ`)プッ
0526デフォルトの名無しさん
2008/04/13(日) 20:53:14WaitForSingleObject
使い方はMSDNライブラリで。
0527デフォルトの名無しさん
2008/04/13(日) 20:53:59最初から名前欄にレス番号を入れる必要ないよ。
おかげで522である俺がいきなり別の質問したみたいじゃないか。
0528522
2008/04/13(日) 20:55:25コピペミスです。Singleを意図してました。
というか、SingleでもMultipleでも質問の意図するところは同じなんですが…
あー、もしかして、タイムアウトを0ミリ秒に指定すれば済む、ってこと?
0529デフォルトの名無しさん
2008/04/13(日) 20:56:50> あー、もしかして、タイムアウトを0ミリ秒に指定すれば済む、ってこと?
聞く前に、まずはMSDNライブラリ見ろって。
0530522
2008/04/13(日) 21:02:17ずっとMultipleで検索してたからMSDNもヒットしなかったのです。
というわけで解決です。恥ずかしい。
0531522
2008/04/13(日) 21:09:11ヒットしないのがそもそもおかしいわけで…良く見てみたら
どっかのコピペだったので、最後のsが無かったからヒットしなかった模様。
それくらい、ヒットして欲しいなぁMSDN。
0532デフォルトの名無しさん
2008/04/13(日) 21:21:13キーワードに
WaitForMultipleObject
を入れれば、
WaitForMultipleObjects
WaitForMultipleObjectsEx
が出てきますが?
0534デフォルトの名無しさん
2008/04/13(日) 23:31:150535デフォルトの名無しさん
2008/04/13(日) 23:35:580536デフォルトの名無しさん
2008/04/13(日) 23:44:590537デフォルトの名無しさん
2008/04/13(日) 23:46:130538デフォルトの名無しさん
2008/04/13(日) 23:53:460539デフォルトの名無しさん
2008/04/13(日) 23:57:0320世紀からタイムマシーンでやってきたのか?
0540デフォルトの名無しさん
2008/04/14(月) 00:03:350541デフォルトの名無しさん
2008/04/14(月) 00:07:040542522
2008/04/14(月) 00:17:33本当にありがとうございました。
いっとくけど、コピペ範囲ミスじゃなくて
参考にしたサイトが間違ってたんだからねっ!
0543デフォルトの名無しさん
2008/04/14(月) 00:20:000544デフォルトの名無しさん
2008/04/14(月) 00:21:400545デフォルトの名無しさん
2008/04/14(月) 00:22:53んな言い訳が通るかよ。
甘え杉。
0546デフォルトの名無しさん
2008/04/14(月) 00:25:46Google日本語版を使わないのはプログラマの常識
ttp://www.google.com/search?num=100&hl=en&q=WaitForMultipleObject
二つ目の検索結果がMSDNなわけだが。
0547デフォルトの名無しさん
2008/04/14(月) 00:33:03Wait For Multiple Object site:microsoft.com - Google Search
http://www.google.com/search?num=100&hl=en&q=Wait+For+Multiple+Object+site%3Amicrosoft.com
0548デフォルトの名無しさん
2008/04/14(月) 00:34:54これだから英語の苦手な日本人はダメなんだよ
0549デフォルトの名無しさん
2008/04/14(月) 00:39:07site:microsoft.comを付けると1番上に出てくるのだが。
http://www.google.co.jp/search?hl=ja&q=waitformultipleobject+site%3Amicrosoft.com
0550デフォルトの名無しさん
2008/04/14(月) 00:39:310551デフォルトの名無しさん
2008/04/14(月) 00:41:110552デフォルトの名無しさん
2008/04/14(月) 00:43:58間隔とか、英語の前に日本語を・・・
0553デフォルトの名無しさん
2008/04/14(月) 00:47:19それはおバカなIMEを作ったMSに言いたまへ
0554デフォルトの名無しさん
2008/04/14(月) 00:58:24で、反日が愛国的だと思ってる連中がまともなの作ると思うか?
この間も、魔性でニュースざたになったセン公いただろ?
見事に反日工作の罠にはまっちゃったんだよ。
わざとヘナチョコに作ってある。
0555デフォルトの名無しさん
2008/04/14(月) 00:59:500556522
2008/04/14(月) 01:14:44・Google日本語版を使わない
・site:microsoft.com をつける
・単数形/複数形ぐらい間隔で判断
・日本語版作ってるのシナチク=反日が愛国的=まともなの作らない
全てプログラマの常識、ということですね、わかります。
>>545と>>550
うろ覚えどころか初めて知ったので。
まぁ、ちょっとでもアヤシイと思ったら
windows.hを検索するくらいのことはしろ、甘えるなと。
0557デフォルトの名無しさん
2008/04/14(月) 01:18:260558デフォルトの名無しさん
2008/04/14(月) 01:21:29じゃあ、VC2005を使ってるので、
エディタのどっかに適当に貼り付けて、
右クリックして「宣言へ移動」をやることにします。
0559デフォルトの名無しさん
2008/04/14(月) 02:01:22毎フレームチェックするなら、そもそもイベントを使う必要ないんじゃないか?
0560522
2008/04/14(月) 03:00:12DirectSoundの説明に、「終了(や、音が任意の再生位置にきたこと)を
検知するためには、CreateEventでもらったハンドルを
これこれの構造体にいれてこれこれ設定しろ」と。
それ以外に終了を知る方法がどうにも見当たらないのですよ。
一応、なんかのフラグで取得できるらしいことは見つけたのですが
ミリ秒単位の精度が悪いようなので却下。
DirectXスレの話題になっちゃいますね。
0561デフォルトの名無しさん
2008/04/14(月) 03:09:550562デフォルトの名無しさん
2008/04/14(月) 03:58:57GetStatusじゃ駄目なのか?
0563デフォルトの名無しさん
2008/04/14(月) 08:35:52どおりで普段使わないような中国人名や中国の地名が一発変換できるわけだw
世界史をまとめるときに相当役立ったが。
0564デフォルトの名無しさん
2008/04/14(月) 08:53:400565デフォルトの名無しさん
2008/04/14(月) 09:22:07マイクロソフトにユーザ登録した数年後にリリースされたWindows付属のIMEでも、俺の名字は変換できない。
個人情報保護云々以前の時代の話なので、ユーザ登録のデータから人名辞典を作るくらい、やって当然だろうに。
0566デフォルトの名無しさん
2008/04/14(月) 09:30:12既に日本のかな漢字変換の歴史は終わった。
0567デフォルトの名無しさん
2008/04/14(月) 09:31:15IMM32?
0568デフォルトの名無しさん
2008/04/14(月) 09:51:31OS付属のIMEを使うのが当たり前というのは、おかしいと思う。
0569デフォルトの名無しさん
2008/04/14(月) 09:53:180570デフォルトの名無しさん
2008/04/14(月) 10:27:500571デフォルトの名無しさん
2008/04/14(月) 11:58:57推敲しないのをIMEの責任にすりかえる莫迦と
特定アジアに対して差別的表現をするのが「愛国的」だと思い込んだ莫迦が
暴れているだけです。
0572デフォルトの名無しさん
2008/04/14(月) 12:21:30ユーザの変換の学習を送らせて、辞書を強化するとしても、
ある程度の量がないと追加しないだろ。
お前の名前が相当珍しいんじゃないか。
辞書ツールで何を学習したか眺めるのは面白いけどな。
大抵、文節の区切りだと認識できなかったらしいものが、サ変形動名詞として入っているけれど。
0573デフォルトの名無しさん
2008/04/14(月) 13:09:23俺の書き方が悪くて誤解させてしまってスマン。
ユーザ登録というのは、
ローカルの辞書への単語登録ではなく、
ソフトを買った時にハガキやFAXを送ってやるアレのことですよ。
0574デフォルトの名無しさん
2008/04/14(月) 14:22:50>>411
AppInit_DLLsってVistaで廃止されなかったっけ
0575デフォルトの名無しさん
2008/04/14(月) 14:25:210576デフォルトの名無しさん
2008/04/14(月) 14:26:590577デフォルトの名無しさん
2008/04/14(月) 14:27:120578デフォルトの名無しさん
2008/04/14(月) 14:32:240579デフォルトの名無しさん
2008/04/14(月) 14:38:160580デフォルトの名無しさん
2008/04/14(月) 16:35:190581デフォルトの名無しさん
2008/04/14(月) 16:42:560582デフォルトの名無しさん
2008/04/14(月) 16:48:330583デフォルトの名無しさん
2008/04/14(月) 16:50:080584デフォルトの名無しさん
2008/04/14(月) 18:14:21あれやっぱり、コールバック関数のなかでCRT使ったらリソースリーク起こすよね。
使いどころが分からない。
0585デフォルトの名無しさん
2008/04/14(月) 18:29:430586デフォルトの名無しさん
2008/04/14(月) 18:44:580587デフォルトの名無しさん
2008/04/14(月) 18:46:51きっとドトネト厨のWin32API撲滅運動だろう。そうとしか考えられない。
0588デフォルトの名無しさん
2008/04/14(月) 20:20:05スタティックリンク版はリーク起こすけど、DLL版は大丈夫かもしれない。
ドキュメントには、Libcmt.libにリンクする実行可能ファイル、と書いてあった。
0589デフォルトの名無しさん
2008/04/14(月) 20:44:11msvcr*のほうじゃなくて?
0590デフォルトの名無しさん
2008/04/14(月) 20:48:03ん? どういうこと?
CRTのスタティックリンクかダイナミックリンクかがかかわってくるの?
というかMSDNのどこにそんなことが書いてあるの?
0591デフォルトの名無しさん
2008/04/14(月) 20:58:02のコラムを読むとか
0592デフォルトの名無しさん
2008/04/14(月) 22:13:19DLL版はDLL_THREAD_DETACHを使えるので、
CreateThreadで作られたスレッドでCRTが使われたとしても、解放できるって事か。
なるほどなるほど。
0593デフォルトの名無しさん
2008/04/15(火) 00:20:420594デフォルトの名無しさん
2008/04/15(火) 00:23:170595デフォルトの名無しさん
2008/04/15(火) 07:07:52友人に見せたいと思って、友人のパソコンに実行ファイルとグラフィックをコピーしました。
実行してもエラーが出るだけで動きませんでした。デバッグビルドが悪いのかと思い、リリースビルドを行ってから
友人のパソコンに持って行きました。動きませんでした。
win32APIで作成した後の話なのですが、フリーウェアのような配布型はどのように作成するのでしょうか?
僕のPC、友人のPC共にXPです。開発環境はVC.netです。友人のPCには開発ソフトは入ってません。
よろしくお願いします。
0596デフォルトの名無しさん
2008/04/15(火) 07:12:500597デフォルトの名無しさん
2008/04/15(火) 07:16:110598デフォルトの名無しさん
2008/04/15(火) 07:31:05manifestを付け忘れてる可能性もあるけど
0599デフォルトの名無しさん
2008/04/15(火) 07:42:06どうしてエラーメッセージを無視してまで
エスパー募集するのだろうか?
私はそれが知りたい
0600デフォルトの名無しさん
2008/04/15(火) 09:10:42win95で必要なDLLがなかったらそんな感じだったなー
0601デフォルトの名無しさん
2008/04/15(火) 09:14:410602デフォルトの名無しさん
2008/04/15(火) 09:51:36ありますでしょうか?
ユーザー名はGetUserName()で取れました。
よろしくお願いいたします。
0603デフォルトの名無しさん
2008/04/15(火) 10:04:08パスワードは取得できない。
0604デフォルトの名無しさん
2008/04/15(火) 10:32:000605デフォルトの名無しさん
2008/04/15(火) 10:35:080606デフォルトの名無しさん
2008/04/15(火) 10:47:332000ならwinlogonに対してReadProcessMemoryすれば取れた気がする
0607デフォルトの名無しさん
2008/04/15(火) 12:29:320608デフォルトの名無しさん
2008/04/15(火) 12:30:250609デフォルトの名無しさん
2008/04/15(火) 12:49:27誰でもwinlogonに対してReadProcessMemoryできるわけじゃないぞ。
デバイスドライバとして送り込んで物理メモリをスキャンして探すとか、
ページファイルの中身をスキャンして探すとか、
そういうことまでするのと一緒だと思うのだが。
0610デフォルトの名無しさん
2008/04/15(火) 13:12:12まあ2000に限らずadmin権限で使ってる奴はアホだと思うが
0611デフォルトの名無しさん
2008/04/15(火) 13:39:34セキュリティに真っ先に大穴を開けるのは人間だな。
0612デフォルトの名無しさん
2008/04/15(火) 14:36:51文脈が理解できてない気がするのは気のせい?
0613デフォルトの名無しさん
2008/04/15(火) 15:45:44とよく言われる。
0614デフォルトの名無しさん
2008/04/15(火) 16:27:420615デフォルトの名無しさん
2008/04/15(火) 18:16:580616デフォルトの名無しさん
2008/04/15(火) 18:41:09仕方が無い部分じゃないのか。
0617デフォルトの名無しさん
2008/04/15(火) 18:52:15確かMSの言い訳が「デバッグ権限取れるアカウント(=Administrators)を常用するな」だったような
0618デフォルトの名無しさん
2008/04/15(火) 19:13:34デバッグ権限さえあれば、
lsass.exeにアドレス空間にコード注入してCreateRemoteThreadすることだってできる。
0619デフォルトの名無しさん
2008/04/15(火) 19:30:120620デフォルトの名無しさん
2008/04/15(火) 19:33:580621デフォルトの名無しさん
2008/04/15(火) 19:35:46・デバッグ権限が取れてwinlogonにReadProcessMemoryできる状況などというのは
システムプロセスにコード注入して青画面出したりできるのでセキュリティ云々以前の話
・そんなアカウントを常用してるやつはアホ
・利便性と安全性は反比例の関係にある
・管理権の無い管理者には残業代が支給される
0622デフォルトの名無しさん
2008/04/15(火) 20:46:08だったら普段Users(かつDebugger Users)で、
管理者じゃないぞと勇んでいた俺ワロスなんだが\(^o^)/
0623デフォルトの名無しさん
2008/04/15(火) 20:59:34XPだとGINAをこっそり入れ替えてWlxLoggedOutSASから拾ったり
0624デフォルトの名無しさん
2008/04/15(火) 21:33:340625デフォルトの名無しさん
2008/04/15(火) 21:58:210626デフォルトの名無しさん
2008/04/15(火) 22:05:29「結局何でもデバッグできるんだからAdmini持ってるのと同じ。
セキュリティ用の機構じゃなくて、転ばぬ先の杖。
Admini常用してrmdir /s %windir%とかしたら痛いでしょ」
0627デフォルトの名無しさん
2008/04/15(火) 22:21:57内部のswitch(LOWORD(wParam))の一部を
自作GUIクラスに取り込みたいのですが
switch文は上から評価されるから末尾にLOWORD(wParam)を引数に取ればいいとは思うのですが
必要かった場合defaultにどうやって渡せばいいでしょうか?
0628デフォルトの名無しさん
2008/04/15(火) 22:25:180629デフォルトの名無しさん
2008/04/15(火) 23:46:30何を言ってるのか、わかんない。
0630デフォルトの名無しさん
2008/04/16(水) 00:12:58確かによくわからん日本語やね
0631デフォルトの名無しさん
2008/04/16(水) 00:16:40数が少なかったり飛び飛びだとif-elseif-elseif-...で二分探索
という風にコンパイラが最適化していた気がする
0632デフォルトの名無しさん
2008/04/16(水) 00:26:200633デフォルトの名無しさん
2008/04/16(水) 01:18:25>>562
たぶんそれが、簡単に取得できるけど精度がわるいってやつです。
バッファがサウンドボードに確保された場合に、タイミングがおかしいらしい。
イントロ1回→ずっとサビ みたいなのを流したいので
ストリームと同じで、シビアなタイミングが要求されるので却下です。
試してないけど。
もうイベント式で自作ライブラリに組み込んだから変えるのもメンドイ。
0634デフォルトの名無しさん
2008/04/16(水) 01:29:17switch(LOWORD(wParam))
{
case :
case :
}
とcaseの部分に色々処理がかかれてますが
foo(LOWORD(wParam))として一部のメッセージだけを自作GUIオブジェクトにて処理をさせたいのですが
不必要なメッセージをどうやってスルーしたらいいかということでした
0635デフォルトの名無しさん
2008/04/16(水) 01:37:21こういうこと↓?…じゃないと思うけど
switch(LOWORD(wParam))
{
case : WM_自作で処理しない
break;
case : WM_自作で処理しない
break;
case : WM_自作で処理する
case : WM_自作で処理する
case : WM_自作で処理する
自作のやつ( wParam, lParam );
break;
}
0636デフォルトの名無しさん
2008/04/16(水) 02:02:30別に叩くとかではないんだけど、マジでわからん
どうやってスルーとかって書いてあるけど、文章のままにとると>>635みたいな回答になる。
そもそも自作GUIがなんなのかよくわからん(MFCアプリってこと?)
具体的にどういったところに、どういう意図をもって、どうしたいのか
また、そのときにどういう制限があるのか
質問をもっと整理してから頼む
0637デフォルトの名無しさん
2008/04/16(水) 02:57:52そういう用途ならMIDIの方が向いてると思う
音源依存しまくるのがアレだが
0638デフォルトの名無しさん
2008/04/16(水) 10:18:12> わるいってやつです。
> 却下です。
人にモノを聞く態度じゃないな。
それはともかくとして、
シビアなタイミングが要求される、という時点で何か間違ってるぞ。
シビアなタイミングが要求されないようにするためのバッファだ。
0639デフォルトの名無しさん
2008/04/16(水) 11:15:080640デフォルトの名無しさん
2008/04/16(水) 14:32:19DefWindowProcを自前で作ったらどれぐらい大変なんだろう
処理すべきメッセージ数だけで1000ぐらいありそう
0641デフォルトの名無しさん
2008/04/16(水) 14:43:10実際、Windows 3.1時代に、ドキュメント化されていたすべてのメッセージを自前で処理して、
DefWindowProcを使わないプログラムがあった。
いくつかのメッセージは、戻り値が通常と異なったりするが、
それすらちゃんと実装していたので、Windows 3.1では問題なく動いた。
Windows 95にアップグレードすると動かなかった。
自分で処理しないメッセージはDefWindowProcに、常にDefWindowProcに渡すべき。
0642デフォルトの名無しさん
2008/04/16(水) 14:47:36XPで仮に全実装しててもVistaでDWM関連メッセージ増えてあぼーん
0643デフォルトの名無しさん
2008/04/16(水) 14:50:440644デフォルトの名無しさん
2008/04/16(水) 15:14:21RegisterClassで指定するウィンドウプロシージャにDefWindowProcを直接渡しちゃってもいいんだろうか。
0645デフォルトの名無しさん
2008/04/16(水) 16:03:240646デフォルトの名無しさん
2008/04/16(水) 16:23:050647デフォルトの名無しさん
2008/04/16(水) 16:35:40合法だとしても、自関数を一回挟んだほうが気持ちよくない?(気分的に)
0648デフォルトの名無しさん
2008/04/16(水) 16:48:370649デフォルトの名無しさん
2008/04/16(水) 16:49:47>>628が至極的確な答だと思うのだが。
0650デフォルトの名無しさん
2008/04/16(水) 17:21:22DefWindowsProcかよw
てか、CreateWindowsExならちょっと欲しい気もする。
BOOL CreateWindowsEx(const CREATEWINDOWINFO* lpcwi, HWND* phwnd, int nNumInfo);
みたいな感じ。
Explorerみたいなのを作るときにToolbar/TreeView/ListView/StatusBarを一括して作れそう。
まあそんなの作るなら普通はMFCかWTLを使ってウィザードで自動生成するけどね。
0651デフォルトの名無しさん
2008/04/16(水) 17:21:36それは実現方法の変更というレベルではなく仕様が違う。
流すのは実は自分の歌声とかだったら無理な話だし
>>639
まぁ、解決したんでいいんです。その後のレスに反応した流れなだけです。
>>648
GetNewKeyboardInBigCamera
0652デフォルトの名無しさん
2008/04/16(水) 17:24:36> IRunnableObject
OLEコントロール
0653デフォルトの名無しさん
2008/04/16(水) 17:33:350654デフォルトの名無しさん
2008/04/16(水) 17:56:14とりあえずOLEの本を一冊読むべし。
必読書のくせに絶版になってたりするが。
0655デフォルトの名無しさん
2008/04/16(水) 18:00:290656デフォルトの名無しさん
2008/04/16(水) 18:07:29細かいけどBicCameraな
0657デフォルトの名無しさん
2008/04/16(水) 18:08:38本屋で探し回ったけど、見つかんなかったんだよ('A`)
0658デフォルトの名無しさん
2008/04/16(水) 18:10:08中身を知って自分で使い方を考えろなんてアホらしい。
中身なんかどうでもいいから、適切な使い方だけを教えてくれればいい。
ところが、そういう本は見つからなかったりする。
なぜならば、
多くのプログラマはサンプルコードを見て使い方を真似ることで、事足りているからだ。
0659デフォルトの名無しさん
2008/04/16(水) 18:12:04カプセル化がいいかげんなC++なんか使うのやめてC#を使いなよ。
0660デフォルトの名無しさん
2008/04/16(水) 18:27:360661デフォルトの名無しさん
2008/04/16(水) 18:38:21Inside本は中身を知りたいときのためのもんだろ。
(とは言っても、往々にして知りたいではなく知らざるを得ないときなんだけどね)
0662デフォルトの名無しさん
2008/04/16(水) 18:47:00そうなのだが、
「使い方について」いちばん詳しく解説している本
だと思う人が少なからずいるんですよ。
0663デフォルトの名無しさん
2008/04/16(水) 18:50:56MFCだのATLだの、コードすらみたことない。
ボタン一つ作るのにも、CreateWindowExなんちゃらかんちゃら。
けど慣れちゃったw
ウィジィウィッグなリソースエディタが無いのだけはつらいが……
0664デフォルトの名無しさん
2008/04/16(水) 18:54:00System.Windows.Forms以下のコモンコントロールなんて旧VBのライブラリを移植しただけとしか思えないし
少し前までソースコードも見れなかったし、よくこんなので開発できるなあと逆に感心する
0665デフォルトの名無しさん
2008/04/16(水) 18:55:280666デフォルトの名無しさん
2008/04/16(水) 19:20:36さてはお前全角野郎ってことはお前プログラムしたことないな?
0667デフォルトの名無しさん
2008/04/16(水) 19:35:14プログラムするって何だよ
お前もプログラムしたことない(笑)だろ
0668デフォルトの名無しさん
2008/04/16(水) 19:41:070669デフォルトの名無しさん
2008/04/16(水) 19:44:28よしなよ負け犬の遠吠えは
0670デフォルトの名無しさん
2008/04/16(水) 19:49:280671デフォルトの名無しさん
2008/04/16(水) 19:50:56んなこたぁない。
internalなClassやprivateなメンバは多々ある。
0672デフォルトの名無しさん
2008/04/16(水) 19:51:220673デフォルトの名無しさん
2008/04/16(水) 19:57:01ソースは混沌としていた。簡単じゃなかった。くりきんとんくいたい
0674デフォルトの名無しさん
2008/04/16(水) 19:57:010675デフォルトの名無しさん
2008/04/16(水) 20:00:540676デフォルトの名無しさん
2008/04/16(水) 20:06:080677デフォルトの名無しさん
2008/04/16(水) 20:08:40.NETか。
当初はもっとマシだったらしいが、
VB信者からVBと同じにしろという意見が出て、今のようになったそうな。
0678デフォルトの名無しさん
2008/04/16(水) 20:09:140679デフォルトの名無しさん
2008/04/16(水) 20:20:27MSのクラスライブラリを使わなくてはいけないという縛りはないから、
文句があるなら別のものを使えばいいんじゃないか?
0680デフォルトの名無しさん
2008/04/16(水) 20:42:170681デフォルトの名無しさん
2008/04/16(水) 21:09:41誰かおしえてください
0682デフォルトの名無しさん
2008/04/16(水) 21:13:360683デフォルトの名無しさん
2008/04/16(水) 21:15:13get_kernel_baseっていう関数の「uint address = return_address & 0xFFFF0000」と「address -= 0x10000」
の部分はドスヘッダがきりのいい値であることをあてにしてる感じなのですがこれは保証されてるのでしょうか?
0684デフォルトの名無しさん
2008/04/16(水) 21:24:230685デフォルトの名無しさん
2008/04/16(水) 21:24:39マイクロソフトのデバッグ用のヘルパーAPIを使って、
プロセスにロードされているモジュールの一覧を取得したほうがいいと思うぞ。
ま、変なことしたいのなら、たまたま偶然動いている・・・でも構わないだろ。
0686デフォルトの名無しさん
2008/04/16(水) 21:28:54保証はされていない。
しかし現状のWindowsでは
EXEやDLLのImageBaseは64KBの倍数でなければならない
という制限があるので、64KBの倍数になっている・・・はず。
繰り返すが、保証はされていない。
0687デフォルトの名無しさん
2008/04/16(水) 21:44:59意見としてはまったく同意なのだけど、参考までに横から聞いてみたい
>という制限があるので、
の根拠は以下のリンカの制限から導いたもの?
/BASE (ベース アドレス)
ttp://msdn2.microsoft.com/ja-jp/library/f7f5138s(VS.80).aspx
個人的にはWindowsアーキテクチャ(メモリ構造とか)により制限、
みたいな根拠があったりするとしっくりくるんだけど、そういうのがあれば教えてもらえると嬉しい
0688デフォルトの名無しさん
2008/04/16(水) 22:30:55カーネルレベルではプロセスの生成時に CreateFileMapping 相当のことをやってるから、
原理上最小のアライメントはページサイズ。(x86 では通常 4KB)
64 KB という制限はそのページの内容で合ってると思われる。
0689デフォルトの名無しさん
2008/04/16(水) 22:56:35AlphaAXPのおかげなんだよ、っていうところでぐぐったのがこれ
http://blogs.msdn.com/oldnewthing/archive/2003/10/08/55239.aspx
要するにAlphaAXPには上16bitロードと下16ビット加算命令があるんで
64KB境界と決めておけば、、リロケーションするときに上16ビットロード
命令だけを相手にすればいいので楽ちん、みたいな話。
0690デフォルトの名無しさん
2008/04/16(水) 22:56:31なる。まあページ単位を下回るのはさすがに不自然に感じる
ただASLRの件もそうだし、たとえばベースアドレスを手動で64K単位未満に書き換えて
さらにPEヘッダを再調整したりするとどうなるのか、とか(そもそもできるのか知らないけど)思ったりした
0691デフォルトの名無しさん
2008/04/16(水) 22:57:50呼び出されるというのは将来のWindowsで保証されてるのか?
まぁインラインアセンブラで[ebp+4]にリターンアドレスがあると決め付けてる時点で環境依存だが。
0693デフォルトの名無しさん
2008/04/16(水) 23:03:340695688
2008/04/16(水) 23:14:35サブシステムが Win32 なら保証はされてなくても仮定はして OK だとは思う。
Windows NT 系列では確か初期化フローは次のような感じ。
[プロセス生成時]
・ カーネル中の ZwCreateThread
・ ntdll 中のプロセスエントリポイント
・ kernel32 のロードと初期化
・ kernel32 のエントリポイント
・ 各 DLL のエントリポイントの呼び出し
・ EXE のエントリポイントの呼び出し
[スレッド生成時]
・ カーネル中の ZwCreateThread
・ ntdll 中のスレッドエントリポイント
・ kernel32 中のスレッドエントリポイント
・ 各 DLL のエントリポイントの呼び出し
0696デフォルトの名無しさん
2008/04/16(水) 23:24:430697686
2008/04/16(水) 23:26:42ttp://msdn2.microsoft.com/en-us/library/ms680339(VS.85).aspx
0698デフォルトの名無しさん
2008/04/16(水) 23:30:39プロセスの初期化フローに依存したプログラムを書いたことがあるが、
Windows Updateで提供されるHotFixあてたら、動かなくなったことがあるよ。
0699デフォルトの名無しさん
2008/04/17(木) 02:25:350700デフォルトの名無しさん
2008/04/17(木) 06:27:250701デフォルトの名無しさん
2008/04/17(木) 06:28:50読めない
0702デフォルトの名無しさん
2008/04/17(木) 08:07:58MapViewOfFileだのLoadLibrary/Ex、MapAndLoad辺りでロード
エントリポイントをコールって感じで試したけど上手く行かないです
デバッグしてみるとポインタ自体はきちんとエントリポイントを指しているので
ロード時のアドレステーブルをなんやかんやする部分ができていないのかな
もしかして自前で書かなくちゃいけないんだろうか
0703デフォルトの名無しさん
2008/04/17(木) 08:45:39そういうときは、その語でぐぐれ。
0704デフォルトの名無しさん
2008/04/17(木) 10:04:510705デフォルトの名無しさん
2008/04/17(木) 10:51:160706デフォルトの名無しさん
2008/04/17(木) 13:43:37wmvの再生するとカクるというか、数秒ごとに瞬間的に停止して
ブツ切れ再生?になる。
flvを再生(FLV Splitterを後入れ)すると全く正常。
コードはこれと殆ど同じもの
http://www.geekpage.jp/programming/directshow/renderfile.php
Windows Media Playerで同じwmvを再生しても正常。
これ何がまずいんでしょうか?
真空波動研↓
640x480 24Bit Windows Media Video 9 29.97fps 1372.00kb/s
Windows Media Audio 9 44.10KHz 16Bit 2ch 128.02kb/s
0707デフォルトの名無しさん
2008/04/17(木) 13:56:180708デフォルトの名無しさん
2008/04/17(木) 13:57:56大域変数を使用するしかないのでしょうか?
0709デフォルトの名無しさん
2008/04/17(木) 14:01:33http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_dialogbox.asp
読め
0710デフォルトの名無しさん
2008/04/17(木) 14:10:07うーん、なんかint型しか返せないみたいですね・・・
0711デフォルトの名無しさん
2008/04/17(木) 14:16:160712デフォルトの名無しさん
2008/04/17(木) 14:22:250713デフォルトの名無しさん
2008/04/17(木) 14:29:150714デフォルトの名無しさん
2008/04/17(木) 14:31:170715デフォルトの名無しさん
2008/04/17(木) 14:33:190716デフォルトの名無しさん
2008/04/17(木) 14:35:20DialogBoxParamの最後の引数に、構造体のポインタを渡し、
ダイアログボックスで、その構造体に値を格納してデータを帰す
そういう感じ。
0717デフォルトの名無しさん
2008/04/17(木) 14:41:23c のライブラリ関数ならともかく、OSのAPI を処理系依存で
サイズも知れぬ型で規定できるわけないじゃん。
0718デフォルトの名無しさん
2008/04/17(木) 14:56:110719デフォルトの名無しさん
2008/04/17(木) 15:01:26メシマズになる
0720デフォルトの名無しさん
2008/04/17(木) 15:20:41煽るのはやめろ
0721デフォルトの名無しさん
2008/04/17(木) 16:36:17煽るのはやめろ
0722デフォルトの名無しさん
2008/04/17(木) 16:47:31WritePrivateProfileSection(_T("Section1"),_T("key 2= 2"), path);
として
[Section1]
key1 = ・・・
key2 = ・・・
とiniファイルに登録していきたいのですが
[Section1]に登録されるのは最後に実行したWritePrivateProfileSectionの内容だけになってしまいます
使い方が間違ってるのでしょうか?
0723デフォルトの名無しさん
2008/04/17(木) 16:55:11間違ってる。
0724デフォルトの名無しさん
2008/04/17(木) 16:55:55MSDNライブラリで、WritePrivateProfileSection のページを読め。
0725デフォルトの名無しさん
2008/04/17(木) 16:56:48どっか厨向けのインチキ解説サイトに変な記事でも出たのか?
0726デフォルトの名無しさん
2008/04/17(木) 17:13:28お騒がせしました
0727ヽ・´∀`・,,)っ━━━━━━┓
2008/04/17(木) 17:27:53[Setting1]
NumOfElement=3 ;; ここで要素数を定義
Element0="Kuso"
Element1="Notanpe"
Element2="Hage"
とかやって、NumOfElementの値を元に、読み書き時にキー名をsprintfで動的に組み立てて
配列要素を読み書きするのって一般的?
某インフラ向けの開発やってたときの厨テクだけど。
0728デフォルトの名無しさん
2008/04/17(木) 17:30:060729デフォルトの名無しさん
2008/04/17(木) 18:02:08一般的というか普通はそうするかと。最近使ったファイルの履歴とか。
ところで、GetPrivate〜系って行中の ; 以降をコメント扱いにしてくれないのが気に食わない
GetPrivateProfileStringA("Setting1", "NumOfElement", ...);
とすると "3 ;; ここで要素数を定義" が返ってくる
(この場合は数値が取れればいいからあまり問題ないが)
0730デフォルトの名無しさん
2008/04/17(木) 18:03:51INIファイルを読み書きするのは、あくまでも、過去との互換性のためで、
本来はレジストリを読み書きするための代物だからね。
0731デフォルトの名無しさん
2008/04/17(木) 18:22:270732デフォルトの名無しさん
2008/04/17(木) 19:33:08んなの、自分でパースすべきもんだろう。
0733デフォルトの名無しさん
2008/04/17(木) 19:35:000734ヽ・´∀`・,,)っ━━━━━━┓
2008/04/17(木) 19:36:260735デフォルトの名無しさん
2008/04/17(木) 19:45:570736デフォルトの名無しさん
2008/04/17(木) 19:46:040737デフォルトの名無しさん
2008/04/17(木) 19:46:520738ヽ・´∀`・,,)っ━━━━━━┓
2008/04/17(木) 19:53:310739デフォルトの名無しさん
2008/04/17(木) 19:55:54ヽ・´∀`・,,)っ━━━━━━┓
0740ヽ・´∀`・,,)っ━━━━━━┓
2008/04/17(木) 19:57:390741デフォルトの名無しさん
2008/04/17(木) 20:17:27時にはBOOSTのシリアライズを使ってもいいだろう。
0742デフォルトの名無しさん
2008/04/17(木) 20:17:390743デフォルトの名無しさん
2008/04/17(木) 22:12:58なんだ一般的なのか。俺、そのやり方思いついたとき「俺SUGEEwwwwww」とか思ったのにw
0744デフォルトの名無しさん
2008/04/18(金) 02:52:38アイコンオーバーレイを含めた完全なアイコン情報を取得するにはどうすればいいですか?
0745デフォルトの名無しさん
2008/04/18(金) 06:08:38Googleって知ってますか?
0746デフォルトの名無しさん
2008/04/18(金) 06:25:57SHGetFileInfo
IExtractIcon
IShellIcon
IShellIconOverlay
好きなの使え。
0747デフォルトの名無しさん
2008/04/18(金) 08:32:51midiOutGetDevCaps()でMIDIデバイスを取得したんですが、MIDI Yokeの仮想MIDI Outデバイスが含まれていませんでした。
midiOutGetNumDevs()でデバイス数を取得してもその分の数は含まれていませんでした。
しかしMusic Studio ProducerなどのDAWソフトではそのデバイスが表示されていて正常に使えています。
何か他に取得する方法があるんでしょうか?
解決策やヒントがあれば教えてください。
ちなみにOSはXP x64です。
0748デフォルトの名無しさん
2008/04/18(金) 11:51:210749デフォルトの名無しさん
2008/04/18(金) 12:18:110750デフォルトの名無しさん
2008/04/18(金) 12:32:110751デフォルトの名無しさん
2008/04/18(金) 13:53:41そもそもMIDI Yokeってx64に対応してたか?
0752デフォルトの名無しさん
2008/04/18(金) 13:57:530753デフォルトの名無しさん
2008/04/18(金) 15:09:35無知が適当に答えると的外れすぎるのは見ていて恥ずかしい
0754デフォルトの名無しさん
2008/04/18(金) 15:48:160755デフォルトの名無しさん
2008/04/18(金) 15:50:180756デフォルトの名無しさん
2008/04/18(金) 15:58:310757デフォルトの名無しさん
2008/04/18(金) 17:23:50まぁ今のところDTM/DAW用途で64ビットOSを使うなんて正直馬鹿げているとは思うが
0758デフォルトの名無しさん
2008/04/18(金) 18:17:44SONARとか本体は64bit対応進んでるんだが
0759デフォルトの名無しさん
2008/04/18(金) 19:15:44デスクトップ画面がアクティブな時に特定の処理をしたいと思い、
GetDesktopWindowで取得した値とGetForegroundWindowで取得した値を比較することで
解決しようと思ったのですが、どうやら値が一致しません。
ウィンドウではなく、デスクトップがアクティブかどうかを判別するにはどうするとよいのでしょうか?
0760デフォルトの名無しさん
2008/04/18(金) 19:34:02NULLだったりしない?
どのウィンドウにもフォーカスが当ってない場合、GetForegroundWindowはNULLを返すよ。
0761759
2008/04/18(金) 20:06:20C#からDllImport経由で呼び出して、IntPtrとして値を受け取っていたのですがl、65688という値が表示されていたのでNULLではないようです。
質問した後も色々と試してみたりした所、FindWindow("Progman", "Program Manager") で得られた値と
GetForegroundWindowで得られた値を比較する事でデスクトップ上にあるかどうかを特定する事ができましたので
この方法でやってみようと思います。 どうもありがとうございました。
0763デフォルトの名無しさん
2008/04/18(金) 21:40:30IEのように.doc拡張子から、関連付けられたActiveXコントロールを取得するには、レジストリのどこを読めばいい?
0764デフォルトの名無しさん
2008/04/18(金) 22:24:55Windows9x系でファイル名にNEC 特殊文字とかIBM選定IBM拡張文字の重複した文字を
使用した場合どういう扱いになるんでしょうか?
試した分にはどっちかに変換されてるっぽいのですが、詳しいサイトとかあれば教えてください〜。
0765デフォルトの名無しさん
2008/04/18(金) 22:55:04レジストリを自分で読むより、OleCreateFromFileを使おう。
0766デフォルトの名無しさん
2008/04/18(金) 23:45:07ありがとです。
でも、それだとWord.Document(Embed)になってしまうのです。
0767デフォルトの名無しさん
2008/04/18(金) 23:46:13[PRB] SHIFT - JIS と Unicode 間の変換問題
http://support.microsoft.com/kb/170559/ja
0768デフォルトの名無しさん
2008/04/19(土) 02:02:530769デフォルトの名無しさん
2008/04/19(土) 10:59:390770デフォルトの名無しさん
2008/04/19(土) 23:47:480771デフォルトの名無しさん
2008/04/19(土) 23:50:230772デフォルトの名無しさん
2008/04/19(土) 23:56:230773デフォルトの名無しさん
2008/04/20(日) 00:02:150774デフォルトの名無しさん
2008/04/20(日) 00:11:40メディアプレイヤーとかオーバーレイ使ってると、見た目と違う値が取れちゃうけどね。
0775デフォルトの名無しさん
2008/04/20(日) 00:23:34光学的な測定器を用いるしかない。
0776デフォルトの名無しさん
2008/04/20(日) 00:43:55770が聞いているのは色じゃなくてRGB値だから、そこまで持ち出すことないだろうに。
0777デフォルトの名無しさん
2008/04/20(日) 00:48:28770が聞いているのはRGB値じゃなくてRBG値だろ
0778デフォルトの名無しさん
2008/04/20(日) 01:03:35IMultiLanguage interfaceを使って、UTF8の文字列をUTF16(UCS2?)に変換する
ことは可能でしょうか?UTF16のCodePageの値が見つからなくて。
ちなみにIMultiLanguage interfaceを使って、UTF8 <=> SJISは成功してます。
SJISでなくてもローカルコードなら通るようになってます。
--
自分の作ろうとしてるのはVC6で
* 処理は外からUTF8で文字列が入ってくる
* 内部的に文字列処理を行う
* 国際対応予定のソフト
UTF8 → SJIS(ローカルコード) → A2Wマクロ → 文字列処理でいいじゃんとふと思ったけど、
SJISを一瞬通過させただけで、マルチ言語が扱えなくなる。
なのでUnicode Projectにして、外から来るUTF8は直接UTF16にしなきゃいけない。
という背景でつ
0779デフォルトの名無しさん
2008/04/20(日) 01:04:30めざといなw
0780デフォルトの名無しさん
2008/04/20(日) 01:18:12IMultiLanguage は使ったことないのでパラメタがどうなってるかしらないけど、
Windows のコードページで UTF-16 なら 1200(Unicode) か 1201(Unicode Big-endian) じゃないの。
0781デフォルトの名無しさん
2008/04/20(日) 01:22:26IMultiLanguageのConvertFromUnicodeとConvertToUnicodeはだめ?
あと、ここによれば、1200(リトルエンディアン)や
1201(ビッグエンディアン)とあるけど、使えるかどうかは知らない。
http://msdn2.microsoft.com/en-us/library/ms776446(VS.85).aspx
0782デフォルトの名無しさん
2008/04/20(日) 01:24:02れすありがとう!おいらも今見つかってちょうど試し始めてたとこ。
(ついでの質問失礼かもしれないけど)
ちなみにUnicode ProjectのLPWSTRってLE?BE?
LEかなと思って試し始めたんだけど、自分のマシンで動いたとしても
機種依存だったらいやだなと思っていて。
0783デフォルトの名無しさん
2008/04/20(日) 01:29:080784デフォルトの名無しさん
2008/04/20(日) 01:31:11convertFromとCnvertToはIMLangConvertCharsetのらっぱだとおもうので
IMLangConvertCharsetで試しているとこです。
自分のマシンで結果出たら一応法こくしまつ。
0785デフォルトの名無しさん
2008/04/20(日) 01:32:39厳密にはWCHARがLittle EndianかBig Endianかということなんだけど
なんか変なこと聞いてるかな?
0786m
2008/04/20(日) 01:35:42○アーキテクチャ依存
いいかた悪かったです。
0787デフォルトの名無しさん
2008/04/20(日) 01:37:20心配する必要はないだっしょ。
0788デフォルトの名無しさん
2008/04/20(日) 01:38:350789デフォルトの名無しさん
2008/04/20(日) 01:46:49もしIMultiLanguageでダメだったら同じかもしれないけど、
MultiByteToWideCharで1200を指定して変換するとかでいけないかな?
って凄い遅いね、スマ。
0790デフォルトの名無しさん
2008/04/20(日) 01:46:520791デフォルトの名無しさん
2008/04/20(日) 01:50:57クラス名ではなくインタフェース名で呼ぶのはどうなのよ。
同じインタフェースを実装し、
そのインタフェースの仕様どおりの動作をするが、
実はまるで別のクラスだったりしたら、どーすんの。
いや、そんなのない、っていうのはわかってるんだが。
0792デフォルトの名無しさん
2008/04/20(日) 01:52:250793デフォルトの名無しさん
2008/04/20(日) 01:54:010794デフォルトの名無しさん
2008/04/20(日) 01:57:20インターフェイスってそういうものだろ
0795デフォルトの名無しさん
2008/04/20(日) 01:58:420796デフォルトの名無しさん
2008/04/20(日) 02:00:18同一ジャンルの関数を集めただけのクラス
なんだよな。
クラスである必要は全くなくて、
CスタイルのAPIでもいいのにな。
しかも引数がBSTRですらないし。
0797デフォルトの名無しさん
2008/04/20(日) 02:11:17なんて質問があって、てっきりIEかと思っていたら、別のブラウザだった
なんてことで混乱すると思うんだが。
単一のクラスしか実装しないのなら、それはインタフェースではないわな。
COMの制約上、インタフェースではないものまでインタフェースとして実装しなきゃならん弊害だ。
0798デフォルトの名無しさん
2008/04/20(日) 02:12:19ほかのバグにはまってしまったんで、中身の話までできないけど。。
ひとまずありがと!
0799デフォルトの名無しさん
2008/04/20(日) 02:13:06このあたりはオブジェクト指向の基本だから、勉強してみるとおもしろいよ。
0800デフォルトの名無しさん
2008/04/20(日) 02:15:26おめ!VC6は昔よくフリーズして泣かされたよ
それより誰か>>795のインド人に突っ込んであげてくれ
0801デフォルトの名無しさん
2008/04/20(日) 02:28:38円バグも明日起きたら治ってるでしょう。
0802デフォルトの名無しさん
2008/04/20(日) 02:50:30オーバーロードできないのも、勘弁して欲しい。
0803デフォルトの名無しさん
2008/04/20(日) 03:59:59COMはC++じゃなくてCでも実装できるからオーバーロードなんてできなくて当然
0804デフォルトの名無しさん
2008/04/20(日) 05:51:19転送の間違いなのか、仮想画面にちゃんと描けていないのかチェックしたいと思ってます。
デバッグで仮想画面のを見る方法知りませんか?
オーナードローリストなのですが、実画面だと表示できるのに、仮想画面だと表示できない問題で悩んでおります。
ご教授お願いします
0805804
2008/04/20(日) 09:48:10でも、デバッグで仮想画面見ることできたら便利なんだけどなぁ
0806デフォルトの名無しさん
2008/04/20(日) 10:39:52RFCにそのものずばりのがあった。
0807デフォルトの名無しさん
2008/04/20(日) 10:57:48手動でオーバーロードを解決する方法を残しておけばよかっただけだから、
それは理由にならんだろう。
0808デフォルトの名無しさん
2008/04/20(日) 10:59:20自分で書いてないじゃんw
0809デフォルトの名無しさん
2008/04/20(日) 12:06:17IDispatchは、マルチ言語ブリッジ運用のための巧妙な仕掛け。
scripting hostあたりのMSDN精読するとおもしろさがわかる。
このあたりの考え方は.netに違う形で引き継がれている。
IDispatchは運用上のものだったが、IDispatchExになると真価を発揮。
もれもIDispatchEx対応のコンポーネントはかなり作ったよ。
興味があれば動的オブジェクト指向あたりのキーワードで。
まあ、ここはwin32 apiなのでこのあたりで
0810デフォルトの名無しさん
2008/04/20(日) 12:07:22Thanks.
おいらもどっかでそのコードみかけた。Plan B的にはそれかなと思ってた。
0811デフォルトの名無しさん
2008/04/20(日) 12:32:41RFCの仕様をみれば、自分でフルスクラッチで作れるってことだろw
0812デフォルトの名無しさん
2008/04/20(日) 13:14:21仮想画面ってメモリDCのことか?
BMPデータとしてファイル保存して見ればいいだろ
0813デフォルトの名無しさん
2008/04/20(日) 13:35:30> マルチ言語ブリッジ運用のための巧妙な仕掛け。
あまりに下手な仕掛けでムカつくのですが。
scripting hostの実装者の激しい手抜きでしかない。
IDispatchなしの任意のクラスやインタフェースを
スクリプトから使うための仲介をするクラスを作れるのだから、
なぜscripting hostが、それを実装しなかったのか、と。
0814デフォルトの名無しさん
2008/04/20(日) 13:41:48うーん、何を言いたいのかわからない。
興味がなければ議論にならないので、このあたりでご勘弁。
興味があれば、まずは中立な気持ちでIDispatch関連、あさってみてください。
0815デフォルトの名無しさん
2008/04/20(日) 13:55:300816デフォルトの名無しさん
2008/04/20(日) 13:57:090817デフォルトの名無しさん
2008/04/20(日) 14:23:29いや、コードは自分で書かないといけないんだけど、アルゴリズムが単純で
RFCに解説があるからすぐ書ける。
以前、std::codecvt書いたときにRFC見た。
0818デフォルトの名無しさん
2008/04/20(日) 14:26:31とっても興味があるので激しくやりあってください。
0819デフォルトの名無しさん
2008/04/20(日) 14:38:18ネタにマジレスすると、IDispatch自身はCOMインタフェースであれば何でも
取り扱えるようにするのが目的だからこれ以上具象化はできないと思う。
この界面では利便性よりも普遍性を取ったってことで、これは理性的な判断だと思う。
でも、直接これを利用して実装を始めると各言語に落ちたときにやるべきことが
多すぎるのも事実だと思う。
そういう意味では+αのユーティリティが欲しくなるのも頷ける。
というわけで>>813はCodeProjectあたりにその仲介してくれるユーティリティクラスを公開してくれw
0820デフォルトの名無しさん
2008/04/20(日) 15:01:370821デフォルトの名無しさん
2008/04/20(日) 15:02:160822デフォルトの名無しさん
2008/04/20(日) 15:08:40残念だがお前の仕事はデザインだ
0823デフォルトの名無しさん
2008/04/20(日) 15:12:04宿題スレの事か!
0824デフォルトの名無しさん
2008/04/20(日) 15:15:592ちゃんに自動投稿するスクリプトをコーディングしていたのだよ
0825デフォルトの名無しさん
2008/04/20(日) 15:17:190826デフォルトの名無しさん
2008/04/20(日) 15:20:28なんとなくわかった。
あざーす!
0827デフォルトの名無しさん
2008/04/20(日) 15:39:27スクリプトなどのグルー言語から使われるような粒度のクラスは、
IUnknownなどの屋台骨かつ裏方さんのインターフェースを除くと、
実装しているインターフェースは大概1つでしょう。
0828デフォルトの名無しさん
2008/04/20(日) 15:50:04一昔前に大盛り上がりしたネタだから、振られれば楽しい話がいっぱいあるけど
すれ違いなので矛収めさせていただいたんで、Closeしましょ。
0829デフォルトの名無しさん
2008/04/20(日) 15:50:28そのクラス専用のインターフェース以外に、
スクリプトに見せるものがあるのか、と。
そういうインターフェースが複数あるということは、
そのクラスは複数の機能を持っているわけで、
そういうのはクラス設計が悪い。
とはいえ、IDispatchやIDispatchExは、
各個のクラスが実装すべきものではないな。
0830デフォルトの名無しさん
2008/04/20(日) 15:52:280831デフォルトの名無しさん
2008/04/20(日) 15:57:29IWebBrowser2を引くと、
「Custom Implementation: No」とある。
というわけで、これは残念ながらIE専用のインタフェース。
ほかの実装はあり得ないと仮定していいだろう。
http://msdn2.microsoft.com/en-us/library/aa752127.aspx
まあWineなんかが実装するという可能性はあるだろうけど。
0832デフォルトの名無しさん
2008/04/20(日) 16:02:56自分で実装すれば、IDispatchでもオーバーロードは可能だろ。
引数はみんなVARIANTなんだから、中身のデータ型を見て処理を変えるようにするなり、
(オーバーロードされた)実際の処理を行う関数を呼び分けるようにするなりすればいい。
0833デフォルトの名無しさん
2008/04/20(日) 16:10:35IIDに対してカスタム実装すんなよ、ということなのであって、
IWebBrowser2という名前を使うなよ、ということではないだろ。
>>832
まず、オーバーロードできないのはIDispatch特有の問題ではない。
次に、システムがやるべき処理を、個別の実装がやるのはオカシイ。
0834デフォルトの名無しさん
2008/04/20(日) 16:20:58Interfaceをわかってない。
0835デフォルトの名無しさん
2008/04/20(日) 16:21:250836デフォルトの名無しさん
2008/04/20(日) 16:32:32そうなの?
オレはわかってないクチなんだけど、インターフェースという概念と
オーバーロードが合わない理由をkwsk
0837デフォルトの名無しさん
2008/04/20(日) 16:33:30当のマイクロソフトは、.NETで方針転換してる
ttp://www.microsoft.com/japan/msdn/net/upgrade/overloadingmethods.aspx
0838デフォルトの名無しさん
2008/04/20(日) 16:35:08というか、VBの内部構造を公開したような代物。
0839デフォルトの名無しさん
2008/04/20(日) 16:39:46書くと荒れそうなんで、Javaでいうところのextendsとimplimentsの違いとだけ。
基本的にオブジェクト指向一般の議論範疇。
>>819がきれいにまとめてくれたように、Win32とかんけいない。
0840デフォルトの名無しさん
2008/04/20(日) 16:51:41オーバーロード云々ってのは、
IFoo::Hoge()
IBar::Hoge()
を、IDispatchで両方扱えないっていう話ではなく、
IFoo::Hoge(int x)
IFoo::Hoge(BSTR* y)
が、できないってことでしょう。
そういうのはVARIANTで受ければいいんだけど、
それは実装で回避しているに過ぎない。
0841デフォルトの名無しさん
2008/04/20(日) 16:52:36extends?
オーバーライドと混同してないか?
0842デフォルトの名無しさん
2008/04/20(日) 16:55:340844デフォルトの名無しさん
2008/04/20(日) 17:03:270845デフォルトの名無しさん
2008/04/20(日) 17:07:14どのオーバーロードも結局同じもの(例えば一番引数の詳しいオーバーロード)を呼び出す
というのであれば、NVIパターンで仮想関数を1つにまとめるのが便利。
もはやCOMと関係ない話だけど。
0846デフォルトの名無しさん
2008/04/20(日) 17:13:33要するに、知ったか乙ってことだな
0847デフォルトの名無しさん
2008/04/20(日) 17:36:07「俺、神・・・ふぅ」とか悦に入ってた
先輩から「アルゴリズム見直して衝突起こってるところ減らして。そこ高速化しても変わらないから」と当たり前の指摘を受けて沈没した
仕方ないので、再び賢者になるべくエロ画像探し<今ココ
VC 2008 Expressのおかげで家でもコーディングできて嬉しいなっと(涙
0848デフォルトの名無しさん
2008/04/20(日) 18:07:00>>847にミルコ・クロコップお願い
0849デフォルトの名無しさん
2008/04/20(日) 18:20:10"InterLock" じゃなくて "Interlock" な。"Internet" と同じ。
0850デフォルトの名無しさん
2008/04/20(日) 18:39:27仕事なら、それなりのプロファイラ使って調べてから、コードいじろうぜ。
0851デフォルトの名無しさん
2008/04/20(日) 18:59:47指摘ありが�d
適当ななんちゃってプログラマでごめんね
>>850
まあ実は高速化の必要もなかったんだ・・・
そして暇もてあましてJudeのクラス図でやるおを書く俺<今ココ
0852デフォルトの名無しさん
2008/04/20(日) 19:50:39COMに影響を与えたVBは偉大だな。
ってそんな訳ねえよ。逆だよ、逆。
0853デフォルトの名無しさん
2008/04/20(日) 20:08:41知ったか厨のホラ話は聞き飽きたのでもういいよ
0854デフォルトの名無しさん
2008/04/20(日) 20:13:020855デフォルトの名無しさん
2008/04/20(日) 20:18:520856デフォルトの名無しさん
2008/04/20(日) 20:43:09VBに影響を与えたCOMは偉大ですよね、わかります
0857デフォルトの名無しさん
2008/04/20(日) 20:53:46128スレまでもう一息だな
0858デフォルトの名無しさん
2008/04/20(日) 21:01:01何を使うのが最速? 何を使うのがCPU負荷最小?
0859デフォルトの名無しさん
2008/04/20(日) 21:03:270860デフォルトの名無しさん
2008/04/20(日) 21:08:51MSCSとかを使ってディスクを共有して、所有権とかを移すってことですか?
0861デフォルトの名無しさん
2008/04/20(日) 21:11:540862デフォルトの名無しさん
2008/04/20(日) 21:13:00データ量に依っては十分最速になり得るし、CPU負荷は0。
0863デフォルトの名無しさん
2008/04/20(日) 21:26:11ファイバーチャネルやiSCSIを使って繋ぎ換えるんですか。
SANまで入れるとなると、とてもではないけど、手が出ない。
0864デフォルトの名無しさん
2008/04/20(日) 21:28:48PCじゃないの???
0865デフォルトの名無しさん
2008/04/20(日) 21:35:41PCです。
0866デフォルトの名無しさん
2008/04/20(日) 21:44:050867デフォルトの名無しさん
2008/04/20(日) 22:00:32人間が手で、転送元のPCのHDDのケーブルを抜いて、転送先のPCに差し込む
という話だったんですか?
それはWin32APIとは違う次元の話だと思うんですが。
0868デフォルトの名無しさん
2008/04/20(日) 22:03:25それをしてはいけない(できない)状態ってこと?
例えば顧客情報のぶっこぬきがしたいとか?
0869デフォルトの名無しさん
2008/04/20(日) 22:23:18PCIバス並みの転送速度だから速度に不満は無いだろう。
0870デフォルトの名無しさん
2008/04/20(日) 22:24:180871デフォルトの名無しさん
2008/04/20(日) 22:34:380872デフォルトの名無しさん
2008/04/20(日) 22:36:56そうです。
というレスが返ってきたらどういうアドバイスをするつもりなのか知りたい
0873デフォルトの名無しさん
2008/04/20(日) 22:39:36大きめに確保しておくかvectorで読み込むたびに増やしていくしかない?
事前にファイルの容量わかる方法ってないですか?
0874デフォルトの名無しさん
2008/04/20(日) 22:49:32返さないサーバもあるから、絶対確実な方法は無いよね
0875デフォルトの名無しさん
2008/04/20(日) 22:50:27ほとんど全部がこのAPIの呼び出しに時間くってるみたいだし
0876デフォルトの名無しさん
2008/04/20(日) 22:51:340877デフォルトの名無しさん
2008/04/20(日) 22:56:490878デフォルトの名無しさん
2008/04/20(日) 23:08:590879デフォルトの名無しさん
2008/04/20(日) 23:14:230880デフォルトの名無しさん
2008/04/20(日) 23:17:31InternetReadFileで受け取った時にはとりあえずlistにポインタつっこんどいて、
最後に繋げたらどうよ。
0881デフォルトの名無しさん
2008/04/20(日) 23:17:520882デフォルトの名無しさん
2008/04/20(日) 23:38:43読み込むバイト数はどうやって求めるんでしょうか?
128KBで読んだらほぼ取れましたが、全部取ろうと思って256KBを指定
したらエラーコード299で失敗してしまいました。
少しづつ読んで失敗するまでループさせるのが正しいやり方なのかな?
0883デフォルトの名無しさん
2008/04/20(日) 23:38:470884デフォルトの名無しさん
2008/04/20(日) 23:46:29我々はきゃつらに思い知らせる必要がある。
情報統制を打ち破らねばならん。これは聖戦(ジハード)である!
0885デフォルトの名無しさん
2008/04/20(日) 23:55:22VirtualQueryで4KBずつチェックしてから読むべし
0886デフォルトの名無しさん
2008/04/21(月) 00:03:23マンションなんかに住んでいたら耐震偽装でいつ倒壊するか分からんし
コンビニでペットボトル買って飲もうとしたら毒物が入ってるかも知れんし
餃子なんて何が混ざってるか分からんから喰えた物じゃない
生死にかかわらない分、まだインターネットは安全な方だと思うが
0887デフォルトの名無しさん
2008/04/21(月) 01:48:35サイズが分からないものを入れる場合は、vectorよりもdequeの方がいい。
0888デフォルトの名無しさん
2008/04/21(月) 10:50:450889デフォルトの名無しさん
2008/04/21(月) 13:04:230890デフォルトの名無しさん
2008/04/21(月) 13:06:290891764、843
2008/04/21(月) 13:38:01SHIFT-JISとUnicode間の変換問題に関係してたのか。
ずっとSHIFT-JISで記録されてると思ってた。
>>767
番号間違ってた。ありがとう
0892デフォルトの名無しさん
2008/04/21(月) 18:39:210893デフォルトの名無しさん
2008/04/21(月) 18:55:31大方の環境ではその項目を説明する「ポップヒント」が出ますよね?
それをダイアログボックスに貼り付けたチェックボックス等に
実装したいのですが、Win32APIではその様なことってできますか?
やっぱりカーソル座標とか調べて全部作らないと無理でしょうか?
0894デフォルトの名無しさん
2008/04/21(月) 18:56:280895デフォルトの名無しさん
2008/04/21(月) 19:02:17そうです
0896デフォルトの名無しさん
2008/04/21(月) 19:34:51ttp://www.kumei.ne.jp/c_lang/sdk/sdk_65.htm
猫だが参考程度にはなると思う
0897デフォルトの名無しさん
2008/04/21(月) 19:34:580898デフォルトの名無しさん
2008/04/21(月) 19:50:31とりあえずMSDNライブラリでtooltipを検索してみ。
一通り説明しているドキュメントが出てくるから。
0899デフォルトの名無しさん
2008/04/21(月) 20:53:080900デフォルトの名無しさん
2008/04/21(月) 21:51:04お前の頭が一番悪い
0901デフォルトの名無しさん
2008/04/21(月) 22:11:16>>900
>>900
>>900
0902デフォルトの名無しさん
2008/04/21(月) 22:12:500903デフォルトの名無しさん
2008/04/21(月) 22:49:16急な用事でレスが遅くなりましたが・・・
今からしばらく時間があるのでちょっと調べてみます。
助かりました、お付き合いくださってありがとうございました。
0904デフォルトの名無しさん
2008/04/22(火) 00:25:37Windowsでunicodeでも非unicodeでも対応できるように _T(x) のマクロを使っていますが、
良く参考に行くサイトでは TEXT(x) マクロを使用しています。
他にもunicode用として __T(x) とか _TEXT(x) とかのマクロがありますが、
汎用性(Windows環境限定で他プロジェクトへの移植)を考えた場合、
どのマクロを使えば問題が起きる可能性が少ないでしょうか。
_T(x) はtchar.hに、TEXT(x) はwinnt.hに定義があるようです。
0905デフォルトの名無しさん
2008/04/22(火) 00:36:15好きなのを使え。
ttp://blogs.msdn.com/oldnewthing/archive/2004/02/12/71851.aspx
0906デフォルトの名無しさん
2008/04/22(火) 00:50:08MSに振り回されたくなければ自分で定義し直す事。
#define MYENC(x) TEXT(x)
0907デフォルトの名無しさん
2008/04/22(火) 00:52:250908デフォルトの名無しさん
2008/04/22(火) 00:57:560909デフォルトの名無しさん
2008/04/22(火) 01:10:36将来、UTF-8か32になったらしらんけど。
0910デフォルトの名無しさん
2008/04/22(火) 01:11:08変な人だな
0911デフォルトの名無しさん
2008/04/22(火) 01:17:42変な人だな
0912デフォルトの名無しさん
2008/04/22(火) 01:21:50どちらか片方固定でコーディングしたほうがいいと思う。
マクロを使って書かれているけど、実はUnicodeでしか正しく動かない
なんていうことになると酷いからね。
必要になったときに、結局はコードをすべて点検・テストするなら、
そのときに変更したほうが、いい。
0913デフォルトの名無しさん
2008/04/22(火) 01:22:01現状はおk。将来もたぶんおk。
ただしその場合、whcar_tをつかうこと。WCHARではない。
というかL自体をワイド文字リテラルとして、C++の規格に入れようぜって話になってる。
ほかには、uとかUとか、それに対応するchar16_tとかchar32_tとか。
ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
>>906のいう「経験」とは、
俺様のエスパー能力では、
Windows 3.1向けに書いた、freeした後のポインタにアクセスしているあほなプログラムを、
Windows 95に持っていったら動かなくなったということなのだろう。
0914デフォルトの名無しさん
2008/04/22(火) 01:55:15L""は既にCにもC++にも入っている。
0915デフォルトの名無しさん
2008/04/22(火) 02:17:300916デフォルトの名無しさん
2008/04/22(火) 02:44:280917デフォルトの名無しさん
2008/04/22(火) 03:03:19やべ、今までずっとMS独自拡張だと思ってた。恥ずかしい。
0918デフォルトの名無しさん
2008/04/22(火) 05:38:20D&Dされた物をフォルダかどうか判別するにはどうすればいいですか
DragQueryFileで得た文字列ではフォルダと拡張子無しファイルの区別が付きません
0919デフォルトの名無しさん
2008/04/22(火) 05:41:32GetFileAttributes
あるいは
PathIsDirectory
を呼んで確認してみるのはどう?
0920デフォルトの名無しさん
2008/04/22(火) 06:44:38サンクスコ
インクルードファイル増やしたくないのでGetFileAttributes使いましたけど、うまく動きました
0921デフォルトの名無しさん
2008/04/22(火) 09:31:53static LV_FINDINFO lvf;
static int nItem1, nItem2;
static char buf1[30], buf2[30];
lvf.flags = LVFI_PARAM;
lvf.lParam = lp1;
nItem1 = ListView_FindItem(hList, -1, &lvf);
lvf.lParam = lp2;
nItem2 = ListView_FindItem(hList, -1, &lvf);
ListView_GetItemText(hList, nItem1, (int)lp3, buf1, sizeof(buf1));
ListView_GetItemText(hList, nItem2, (int)lp3, buf2, sizeof(buf2));
if (sortno[(int)lp3] == UP) return(strcmp(buf1, buf2));
else return(strcmp(buf1, buf2) * -1);
}
参考したHP http://www.kumei.ne.jp/c_lang/sdk2/sdk_110.htm
猫でも分かる様のサイトで比較関数の勉強しています
デバッグ時に動作を確かめてみた結果、繰り返しても、nItem1,nItem2に0しか入ってこないため、
同じ文字列の比較になり、ソートが行われないという結果になってます
初期アイテムにもLVIF_PARAMをつけています。
正常動作だと、nItem1とnItem2は別の数値が入ると考えています。
どういった原因が考えられるのでしょうか?
0922921
2008/04/22(火) 09:40:45勘違いしてました。LPARAM統一を忘れてました。
0923デフォルトの名無しさん
2008/04/22(火) 11:36:56何その酷いコード。
いくら試しで動けば何でもいいにしても、酷すぎる。
0924デフォルトの名無しさん
2008/04/22(火) 12:26:19ここ
0925デフォルトの名無しさん
2008/04/22(火) 12:30:05黙れ
0926924
2008/04/22(火) 12:32:40すいません…
0927921
2008/04/22(火) 12:46:27今まではリストのハンドルから構造体配列に一度全データを入れて、クイックソートでソートして構造体配列からリストハンドルに戻すといった処理をしてました。
かなり力押しです。。そこで猫でも分かるのサイトを見させていただいたのですが、int CALLBACKだとデータ数関係なく処理してくれるのと
コードがスマートに感じたので試してみたかぎりです。。しかし、猫様のやり方だとデータを追加すると昇順、降順に並びません。。
CALLBACKを使ったスマートなソート知ってる方、ご教授してほしいです。。
環境はVC+SDKです。よろしくお願いします
0928デフォルトの名無しさん
2008/04/22(火) 12:48:290929デフォルトの名無しさん
2008/04/22(火) 12:50:280930デフォルトの名無しさん
2008/04/22(火) 12:55:08アイテムのLPARAMに、それぞれユニークなIDを持たせてる?
0931921
2008/04/22(火) 12:55:14いい方法があったら、本当に知りたいんで。。
0932デフォルトの名無しさん
2008/04/22(火) 12:55:310933デフォルトの名無しさん
2008/04/22(火) 12:56:35メモリ確保して文字列コピーしておいてもいいし
アイテム破棄するときに開放すればいい
0934デフォルトの名無しさん
2008/04/22(火) 12:58:26Windowsでは無理じゃないか?
Linuxなら簡単にできるが。
0935933
2008/04/22(火) 12:59:150936デフォルトの名無しさん
2008/04/22(火) 13:01:15あなたはプログラミングに向いてない。
引き返して別の道を進めるのなら、ぜひ、そうするべき。
0937921
2008/04/22(火) 13:03:12ユニークIDとは、初期の設定の部分(☆)でしょうか?
現在、こうなっています。
for(i=0;i<5;i++){
item.mask = LVIF_TEXT | LVIF_PARAM;
wsprintf(szbuf, "aa[%d]",i);
item.pszText=szbuf;
item.iItem = i;
item.iSubItem = 0;
☆item.lParam = i;
ListView_InsertItem(hList, &item);
item.mask = LVIF_TEXT;
item.pszText="aafc";
item.iItem = i;
item.iSubItem = 1;
ListView_SetItem(hList, &item);
}
アイテムを途中で追加しない場合、昇順、降順にソートはできているのですが、
たとえば、途中でアイテムを追加した場合はうまくソートできていません。(CALLBACKを使った場合)
0938デフォルトの名無しさん
2008/04/22(火) 13:04:08あるいは、
直に使うのに慣れてしまって他のものに眼が向かなくなってる人のスレ。
手段を選べるなら、C#を使いなされ。
0939921
2008/04/22(火) 13:07:43ZeroMemory(&item, sizeof(LV_ITEM));
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = data->str1;
item.iItem = itemno;
item.iSubItem = 0;
item.lParam = itemno;
ListView_InsertItem(hList, &item);
item.mask = LVIF_TEXT;
item.pszText = data->str2;
item.iItem = itemno;
item.iSubItem = 1;
ListView_SetItem(hList, &item);
0940デフォルトの名無しさん
2008/04/22(火) 13:08:05途中でアイテムを追加したときにLPARAMに何を指定してるかが問題
つーか俺の話を聞けよ
0941デフォルトの名無しさん
2008/04/22(火) 13:09:110942デフォルトの名無しさん
2008/04/22(火) 13:13:06彼には何を言われているのか、理解できていない予感。
でもね、
LPARAMにポインタを入れるのは、よく行われているけれども、悪い慣習だよ。
LVM_SETITEMを他の人が投げただけで不正な動作するんだよ?
0943921
2008/04/22(火) 13:13:58試してみているので時間がかかっています。。
申し訳ないです。
LPARAMにデータということですが、第3引数にソートフラグと必要ななにかの構造体を渡すということでしょうか?
int CALLBACK CompProc(LPARAM, LPARAM, ☆LPARAM);
0944デフォルトの名無しさん
2008/04/22(火) 13:22:40LV_ITEMってcchTextMaxってlpszTextの文字列長設定するメンバなかったっけ?
lpszTextは単純なLPTSTRだから必要だったような希ガス
0945デフォルトの名無しさん
2008/04/22(火) 13:23:42似たような事例
ttp://m--takahashi.com/bbs/pastlog/01200/01167.html
0946デフォルトの名無しさん
2008/04/22(火) 13:28:11>LVM_SETITEMを他の人が投げただけで不正な動作するんだよ?
ポインタが入ってなくとも行儀のよろしい行為ではないと思うが
ってか外部からLVM_SETITEMなんかしてたら
LPARAMにユニークID入れてる場合だって正常動作しないだろ
0947デフォルトの名無しさん
2008/04/22(火) 13:30:160948921
2008/04/22(火) 13:30:40アイテム追加したとき、ユニークIDが重複してました。。
IDを全アイテムの数で増やす度に+1すれば、うまくいきそうです。
0949デフォルトの名無しさん
2008/04/22(火) 13:31:410950デフォルトの名無しさん
2008/04/22(火) 13:31:42SETITEMの度にID振りなおせばいい
0951デフォルトの名無しさん
2008/04/22(火) 13:36:05ソート処理中のListViewに触るのは、なんか恐いんだが。
0952デフォルトの名無しさん
2008/04/22(火) 13:40:360953デフォルトの名無しさん
2008/04/22(火) 13:45:300954デフォルトの名無しさん
2008/04/22(火) 13:49:180955921
2008/04/22(火) 14:01:00CALLBACK を使った比較関数をもう少し勉強してみます。
0956デフォルトの名無しさん
2008/04/22(火) 14:09:04なんて本がありゃいいのにな。
0957デフォルトの名無しさん
2008/04/22(火) 14:33:43どうやら脳内プログラマの暇人ニートが多いようだ
0958デフォルトの名無しさん
2008/04/22(火) 14:33:49後者の下巻は出た覚えがないが
0959デフォルトの名無しさん
2008/04/22(火) 14:39:540960デフォルトの名無しさん
2008/04/22(火) 14:40:450961デフォルトの名無しさん
2008/04/22(火) 14:43:49パワフル → 強引かつ乱暴な方法なので、何かとトラブルになる。Windowsのバージョンが上がると悲劇に。
スーパー → 俺って天才? とかいう思い込みに似た変なやりかた。
欲しいのはスタンダードだ。
いちばん普通の、いちばん無難な、そういうのがいい。
0962デフォルトの名無しさん
2008/04/22(火) 14:44:010963デフォルトの名無しさん
2008/04/22(火) 14:44:450964デフォルトの名無しさん
2008/04/22(火) 14:44:51ま、プロなら既存のライブラリを使うわな。
0965デフォルトの名無しさん
2008/04/22(火) 14:54:30結局まともに実用する機会もないまま現在に至るが
・・・あれって何かバッチリ適合する使い道あるのか?
0966デフォルトの名無しさん
2008/04/22(火) 14:56:120967デフォルトの名無しさん
2008/04/22(火) 14:57:030968デフォルトの名無しさん
2008/04/22(火) 14:57:55MCIは期待するところではない
0969デフォルトの名無しさん
2008/04/22(火) 14:58:540970デフォルトの名無しさん
2008/04/22(火) 15:03:150971デフォルトの名無しさん
2008/04/22(火) 15:05:220972デフォルトの名無しさん
2008/04/22(火) 15:07:20やっぱMCIは駄目か。使いにくそうだもんな。
0973デフォルトの名無しさん
2008/04/22(火) 15:07:29GDIは今も昔も、速度としては悪くないと思うが。
XPまでは、GPUによるアクセラレーションがあったし、
Vistaからは、ソフトウェア処理に変わったけれど、それもCPUが十分早くなったからだし。
2Dグラフィックと入力は問題ないけど、
音は難しいよな。
0974デフォルトの名無しさん
2008/04/22(火) 15:17:05紙芝居なんてGDIで十分だろ。
>>973
XPでも、最新のビデオカードでは、GDIやDirectDrawがソフトウェア処理だったりするんよ。
0975デフォルトの名無しさん
2008/04/22(火) 15:25:25>XPでも、最新のビデオカードでは、GDIやDirectDrawがソフトウェア処理だったりするんよ。
詳しくは知らないけれど、GPUのドライバ側が決められるんだったっけ?
0976デフォルトの名無しさん
2008/04/22(火) 15:25:450977デフォルトの名無しさん
2008/04/22(火) 15:26:38Yes。
GDIやDirectDrawを処理するのはドライバであって、OSは仲介するだけだから。
0978デフォルトの名無しさん
2008/04/22(火) 15:53:34http://pc11.2ch.net/test/read.cgi/tech/1208847084/
0979デフォルトの名無しさん
2008/04/22(火) 17:07:54waveOut系で鳴らせばいいだろ
MCIはそういう用途に使わない
0980デフォルトの名無しさん
2008/04/22(火) 17:30:04ありがとうございます。
MCIはそういう使いかたしないんですね。1つ勉強になりました。
知らないならレスしないでください。
これからwaveOut系でちょっと試してみます。
0981デフォルトの名無しさん
2008/04/22(火) 17:30:500982デフォルトの名無しさん
2008/04/22(火) 17:33:120983デフォルトの名無しさん
2008/04/22(火) 17:33:240984デフォルトの名無しさん
2008/04/22(火) 17:35:280985デフォルトの名無しさん
2008/04/22(火) 17:54:230986デフォルトの名無しさん
2008/04/22(火) 17:58:34「知っているならレスしてください」の方がいいと思う。
否定文より肯定文の方が言われた側の印象は全然違う。
0987デフォルトの名無しさん
2008/04/22(火) 18:00:430988デフォルトの名無しさん
2008/04/22(火) 18:01:490989デフォルトの名無しさん
2008/04/22(火) 18:02:240990デフォルトの名無しさん
2008/04/22(火) 18:09:360991デフォルトの名無しさん
2008/04/22(火) 18:13:170992デフォルトの名無しさん
2008/04/22(火) 18:15:500993デフォルトの名無しさん
2008/04/22(火) 18:19:020994デフォルトの名無しさん
2008/04/22(火) 18:37:500995デフォルトの名無しさん
2008/04/22(火) 18:39:410996デフォルトの名無しさん
2008/04/22(火) 18:40:580997デフォルトの名無しさん
2008/04/22(火) 18:43:06スレの残りで
0998デフォルトの名無しさん
2008/04/22(火) 18:43:160999デフォルトの名無しさん
2008/04/22(火) 18:49:521000デフォルトの名無しさん
2008/04/22(火) 18:50:2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。