1 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:44:55 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
175 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:04:06 ] >>172 WinMain が管理すべきものはフレームウインドウだけであって、 クライアントウインドウはフレームウインドウが管理すべきだから。 oo に従っておくと同時に考えなくてはいけないことが減ってうれしい。 というか不正なウインドウを操作しようとするようなバグが減る。
176 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:04:59 ] >>148 XP以降限定でもいいならPrintWindow()でも使え。 www.microsoft.com/japan/msdn/windows/windowsxp/xpvisualstyles.aspx // メモリ デバイス コンテキスト hdcMem に格納されている、 // ウィンドウ hwnd のスナップショットを受け取ります。 HDC hdc = GetWindowDC(hwnd); if (hdc) { HDC hdcMem = CreateCompatibleDC(hdc); if (hdcMem) { RECT rc; GetWindowRect(hwnd, &rc); HBITMAP hbitmap = CreateCompatibleBitmap(hdc, RECTWIDTH(rc), RECTHEIGHT(rc)); if (hbitmap) { SelectObject(hdcMem, hbitmap); PrintWindow(hwnd, hdcMem, 0); DeleteObject(hbitmap); } DeleteObject(hdcMem); } ReleaseDC(hwnd, hdc); }
177 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:24:05 ] >>175 > WinMain が管理すべきものはフレームウインドウだけであって、 > クライアントウインドウはフレームウインドウが管理すべきだから。 なるほど目から鱗ですWinMainから除きます そういう考え方ってどうやったら身に付くのでしょうか 本屋行ってもWin32APIのいい本になかなか出会えないです > oo に従っておくと同時に考えなくてはいけないことが減ってうれしい。 ooはメッセージキューという意味ですよね??
178 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:25:35 ] oo = オブジェクト指向 だ
179 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:27:31 ] >>177 >ooはメッセージキューという意味ですよね?? たぶんオブジェクト指向( object oriented )のことだと思うよ。
180 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:28:24 ] oo == おっぱいおっぱい
181 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 21:31:55 ] oo == ∞
182 名前:148 mailto:sage [2007/03/26(月) 21:58:56 ] >>170 >>176 やった!できました。すげー!! ありがとうございました。
183 名前:176 mailto:sage [2007/03/26(月) 22:06:53 ] あ、>>170 で既出だったのか。ポイントしてるURLまで一緒だし。orz
184 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:28:24 ] XPでVistaのサムネイルみたいなの実現してるフリーソフトがあるけどあれは どうやってるんだろう やっぱりPrintWindow?
185 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:35:26 ] >>178 >>179 ありがとうございます無知なのが恥ずかしいです>< てっきり無限→ループ→キューかと・・
186 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:35:36 ] >>184 それって Vista みたいにリアルタイムで表示が更新されてるってこと? だとしたら PrintWindow() じゃないと思う。 そうじゃないなら多分、PrintWindow() だと思う。
187 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:36:56 ] >>185 の想像力に脱帽。
188 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 22:42:03 ] 〜 ∞ [ノ゚д]ノ <キュー待ってー [_] ■■■■◇_◇_□□□□_□ / >
189 名前:高橋尚子 mailto:sage [2007/03/26(月) 23:42:10 ] >>184 マジレスすると、 IExtractImageインターフェイス
190 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:52:30 ] >>189 ウィンドウじゃなくてファイルの話だったのか?
191 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:19:17 ] 指定したフォルダに書き込み権限があるかどうかというのは、 どのAPIを使えばいいんでしょうか? サンプルとか置いてあるサイトをご存知でしたら、教えてください。
192 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 02:18:35 ] 実際に書き込んでみる…という手がVistaまでは使えた
193 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 05:43:39 ] >>192 サンクス! Vistaでもそれでいけるんだね!・・・という意味になるぞ。お前の日本語ちょっと変。
194 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 06:41:40 ] じゃあXPまでは使えたに訂正
195 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 06:53:12 ] に、2003は……?
196 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 10:46:09 ] 書き込めたと思ったら、仮想ナンチャラフォルダに書かれてた、ってことがあるから使えないんじゃね?
197 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 10:46:37 ] ACLちゃんとたどる
198 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 11:52:29 ] (Media Playerの様に、アプリケーション再利用を行いたい為) 多重起動を抑止のアプリケーションを作るのですが、 後起動のアプリケーション(多重起動を抑止破棄される予定)から 既に起動しているアプリケーションにデータを送るには、 WM_COPYDATAの他にどういう手法があるのでしょうか? 説明が不明瞭ですかね?
199 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 12:18:07 ] >>198 ファイルを介してもいいしメッセージでもいいしイベントでもいいし、プロセス間通信の好きな手段が使える。
200 名前:198 mailto:sage [2007/03/27(火) 12:24:55 ] >>199 ご回答ありがとうございます。 数点質問させてください。 @ファイルというのは、FindFirstChangeNotification関数を利用する事でおk? AメッセージはWM_COPYDATAの他なにかいいのがありますか? あれば、メッセージ名を教えていただきたいです。 (メッセージ動作は調査しますんで) B先も書いたとおり、メディアプレイヤーの様な動作を想定する場合、 プロセス間通信ではパイプ?メールスロット?どっちがお勧めでしょうか? 以上です。
201 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 12:28:53 ] 多重起動禁止なんてぐぐればいくらでも
202 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 12:46:49 ] >>201 この場合、意図は多重起動禁止というより、 プロセス間通信なんでしょうかね?
203 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 12:56:19 ] WM_COPYDATAじゃいやなのは何で? 他のアプリから送ることが可能になるから?
204 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:12:02 ] >>200 (1)通知は別にやった方が安全だから、情報量が多くないならファイルにする必要はないかと。 (2)通知するだけなら、ユーザ定義メッセージでもできる。そのとき32bitのデータは一緒に送ることができる。 (3)どれだけデータを送りたい? それによって手段は変わるわけだけど。
205 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:24:06 ] 俺はファイルを経由するくらいなら、VirtualAllocExを選ぶな。 送りたいのが255文字以下の文字列ならアトムを使うという手もあるよ。
206 名前:198 mailto:sage [2007/03/27(火) 13:38:23 ] >>201-205 WM_COPYDATAの場合、FindWindow→SendMessageの手順となります。 この時、FindWindowでキャプションをヒントにウィンドウを検索するのに抵抗があり、 もっとスマートでエレガントな方法があるんではないかと思って、 皆様に質問をだした次第です。 ちなみに、コマンドライン情報(ファイルパス)を渡そうと考えています。
207 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:45:32 ] >>206 多重起動抑止はどうやってるの?
208 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 13:57:58 ] FindWindowでタイトル検索するしか知らないならしょうがないな 名前付きパイプでもメールスロットでも好きなほう使えばいいじゃん
209 名前:デフォルトの名無しさん [2007/03/27(火) 14:01:24 ] セカンダリのディスプレイにアプリケーションを起動するにはどうすればよいのでしょうか? GDIでデバイスコンテキストとかモニタハンドルとか探ればセカンダリのディスプレイは特定出来そうですけど, それとCreateProcessのデスクトップ/ウィンドウステーションとどう結びつけるのか良く判りません.
210 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 14:17:59 ] >>198 FMOにウィンドウハンドルつっこんどけば? 多重起動抑止かつプロセス間通信だとFMOが定石じゃね?
211 名前:198 mailto:sage [2007/03/27(火) 14:26:23 ] >>207 Mutexを利用して判定していますね。 んで、既にハンドルがあれば死にに行くみたいなことをしています。 >>208 パイプは考えていましたが、メールスロットは知りませんでした。 調査してみます。 一度ここで質問をクローズしますね。 レスを下さったみなさま、ありがとうございました。
212 名前:198 mailto:sage [2007/03/27(火) 14:27:48 ] >>210 申し訳ありませんが、 FMOってなんですか?
213 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 14:28:01 ] FRONT MISSION ONLINE
214 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 14:28:41 ] ファイル マッピング オブジェクト のことだと思う
215 名前:198 mailto:sage [2007/03/27(火) 15:38:44 ] >>214 ありがとうございます。 皆様、ご回答ありがとうございました。
216 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 18:58:20 ] そういうのってDDEを使ったり そうか、ROTに登録してGetObjectしたりとか
217 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 21:58:14 ] DDE は Vista でほぼ廃止と聞いた(NetDDE が廃止なのは確実)
218 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:53:45 ] VistaでDDEがごく一部しかまっとうに動かないって嘆いていた人がいたのはこのスレだっけ?
219 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 05:08:10 ] >>197 それでもVistaでは仮想フォルダにファイルが作成済みだとうまくいかない場合がある。 それを何とか検出しようとすると泥沼になるから(つーか検出させないための互換性機能 なわけだし)素直にmanifest付けるのが良さそうだ
220 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 07:49:29 ] こんにちは、質問させて下さい。 WindowsXPにて、MFCライブラリを使わずに、 バイナリデータを転送する方法ってありますか?? もしあるのでしたら、サンプルを下さい。御願いします。
221 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 07:58:06 ] どこに転送するのさ
222 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 08:39:23 ] int a = 1;
223 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 08:40:09 ] これはエスパーの出番だな
224 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:13:59 ] socket
225 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:24:19 ] これだけ情報が抜けてるってことはhttpで転送とか?
226 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:40:23 ] MDIのフレームウィンドウにステータスウィンドウを表示させたら MDIの子ウィンドウが表示されなくなったんだけど、原因なんでしょう? エスパーさん助けて
227 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:41:18 ] ステータスウィンドウ→ステータスバーです
228 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:49:05 ] 呼んだ?
229 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:51:18 ] >>228 ステータスバー表示させるだけで、他のウインドウが表示されなくなる バグってあるんですか??
230 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:01:05 ] LRESULT CALLBACK FrameProcの中の以下が追加されるとMID子ウィンドウが 表示されなくなるみたいです、、、助けて、、 // ウィンドウサイズが変更されたとき case WM_SIZE: SendMessage(hStatusbar, WM_SIZE, wp, lp ); return 0;
231 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:04:12 ] returnの下に文が続いてるとか言わないよな? とりあえず return 0; ↓ break; にしてみ
232 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:07:47 ] >>230 DefFrameProc呼んどけ
233 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:08:01 ] >>231 すごい!!!!出てきました!!!ありがとうエスパー! case WM_CREATE:とかだとreturn 0;でいいのに なんでcase WM_SIZEはbreak;なんだろう!?
234 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:14:44 ] ttp://www.geocities.jp/ky_webid/win32c/034.html ttp://wisdom.sakura.ne.jp/system/winapi/common/common9.html どっちもreturn 0;なのに・・・・・
235 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:20:57 ] switchのdefaultにDefWindowProc入れて他はbreakしてreturn 0;にしてる。
236 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:22:10 ] げ、俺が学習に使ったページまで・・ こういう場合ってreturn 0;が定石なのか? デフォルトプロシージャに処理させたくないとき以外は デフォルトプロシージャに処理がわかるようにするもんだと思ってた。
237 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:30:45 ] DefWindowProcには自分が処理しないメッセージだけを渡せばよい。 しかしDefFrameProcはこんなメッセージを処理すると書いてあるのだから、それらのメッセージは渡してやるべき。 msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/multipledocumentinterface/multipledocumentinterfacereference/multipledocumentinterfacefunctions/defframeproc.asp
238 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:39:59 ] >>237 その4個だけでDefWindowProcに渡す必要があるのならこれが正解? { case ↓の4個以外のWM_ break; case WM_COMMAND: case WM_MENUCHAR: case WM_SETFOCUS: case WM_SIZE: default DefWindowProc break }
239 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:42:57 ] とりあえずC言語の勉強からがんばれ…
240 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:46:39 ] >>238 DefWindowProcじゃなくて、DefFrameProcの話しだろ
241 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:47:56 ] >>239 その前に日本語の勉強から頑張れと言うべき
242 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 10:52:37 ] ごめん寝起きでボケてたんで書き直したw DefFrameProcはDefWindowProcと異なり、WM_COMMAND,WM_MEMUCAHR, WM_SETFOCUS,WM_SIZEの4つのメッセージに関しては、ユーザーで行いさせ たい処理を記述した後に、DefFrameProcを呼ぶ必要がある ってことね { case WM_CREATE等 //WM_COMMAND,WM_MEMUCAHR,WM_SETFOCUS,WM_SIZE以外のメッセージ break;// breakしてDefFrameProcに処理を渡す必要なし case WM_COMMAND: case WM_MENUCHAR: case WM_SETFOCUS: case WM_SIZE: default: DefFrameProc(); break; }
243 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:15:30 ] 自分が処理しないメッセージだけを渡せばよい。 というのは 例えばWM_SIZEなら 「自分でサイズ変更の処理を書く」や「新しいサイズを調べて制限値に引っかかるならサイズ変更しない」というのが「自分で処理した」にあたる。 だから「フォームのどこかに新しいウィンドウサイズを表示する」といった処理は 「自分で処理した」内に入らないのでデフォルトプロシージャを呼び出す必要がある。 こんな風に理解していたんだが間違ってる?
244 名前:220 mailto:sage [2007/03/28(水) 12:26:34 ] どうもすみません、質問の仕方が悪かったです。 2台のPC間で、SOCKETを使い、 片方をサーバー、もう片方をクライアントにして通信しているのですが、 一方から一方にバイナリデータのファイル(拡張子が jpeg, exe 等)を送りたいのです。 テキストデータなら、send,recvで簡単に送受信できたのですが、 バイナリデータは同じ方法で転送できない事に気付きました。 ググってみたところ、MFCを使う方法しか探せなかったんです・・・。 もしかして、バイナリデータを送受信できるSocketAPIって、 提供されていないんでしょうか?? コンパイラはVC.NET 2003です。 エスパーの皆様、ヨロシクお願いいたします m(。−_−。)m
245 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:29:47 ] バイナリデータをsend/recvで送受信できないわけが無い。 MFCのソケット関連だって所詮winsockのラッパに過ぎない。
246 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:45:07 ] バイナリもsend/recvで送受信できるお
247 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 12:56:58 ] ファイルをテキストモードでオープンして送ってんじゃないの?
248 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 14:01:46 ] MDI子ウィンドウをステータスバーに重ねると、ステータスバーが消えてしまいます。 消えないようにするにはどうすればいいのですか? WM_PAINTになにかすればいいのはわかるのですが、うまくいきません・・・。 (消えたステータスバーはMDIフレームウィンドウのサイズを変えるとまた表示されます) (1)MDIフレームウィンドウ (2)MDI子ウィンドウ (3)ステータスバー +---------------------+ |(1). +---------+ | | |(2).. | | | +---------+ | +---------------------+ |(3). | +---------------------+ ↓ (2)を(3)に重ねてから、(2)を元の位置に移動するとこうなる +---------------------+ |(1). +---------+ | | |(2).. | | | +---------+ | +-----+ +----+ |(3).. | | | +-----+---------+-----+ ↑ステータスバー消える!!
249 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 14:55:58 ] ステータスバーの親を MDIフレーム から MDIフレームの親にすれば?
250 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 15:24:41 ] >>249 できました だめだ親とか子とか全然理解してないみたい・・・Orz=3
251 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 16:53:59 ] 親の心子知らず
252 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 18:18:41 ] 子の心親知らず アスペ親子乙
253 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 19:30:13 ] >>244 まさか strlen(buf) とかやってないよな?
254 名前:デフォルトの名無しさん [2007/03/28(水) 19:38:04 ] SetBkMode(hdc , TRANSPARENT)するとして、 透過度の濃度はどうやって設定するのでしょうか?
255 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 19:58:11 ] 無理 AlphaBlend
256 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 19:58:21 ] strlenしててもbase64とかでエンコしてればだいじょぶさー してないだろうけど
257 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:11:11 ] IEのお気に入り表示した時のように、お気に入りの画面とIE本体の画面と バー(?)のようなもので自由に画面分割を変えるのってどうやってるんですかね?
258 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 20:23:15 ] スプリットウィンドウでぐぐるといい感じになれるけど、 実装していくうちにやな感じに面倒くさくなってくると思う WTLとか使っちゃうのが楽なのかな
259 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 21:23:07 ] >>258 どうもです ぐぐってみたけど面倒だねこれ・・
260 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 23:42:17 ] MFCを使わずにDAOかADOでSQLServerかAccessとアクセスするサンプルどこかに落ちて無いでしょうか。 ぐぐってみたらMFCばっかでした。
261 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 00:40:27 ] ODBCじゃダメなわけ?
262 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 01:51:45 ] ぶっちゃけ、ADOならVBのサンプルみれば判らないとおかしい。 あとデータアクセスなら、ATL OLEDBという手もあるが
263 名前:260 mailto:sage [2007/03/29(木) 02:02:09 ] 解決しましたありがとうございました。
264 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 02:12:21 ] メニューの開くと終了の間にセパレータを入れたい場合、 リソースにはどのように書けばいいのでしょう? IDM_MAIN MENU { POPUP "ファイル(&F)" { MENUITEM "開く(&O)" , ID_OPEN ---ここにセパレータ入れたい--- MENUITEM "終了(&X)" , ID_EXIT } }
265 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 02:50:17 ] MENUITEM SEPARATOR つーか、それくらいぐぐれ
266 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 07:38:07 ] メッセージフックでWMメッセージを破棄する場合、CallNextHookExしなければいいんだっけ?
267 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 07:39:21 ] WM_NULL に置き換えればいい。
268 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 07:46:03 ] サンクス!
269 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 10:25:10 ] >>265 そんなこといわないで ありがd
270 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 10:28:12 ] リソースエディタで作って、ソース見るという手もある
271 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 10:33:08 ] >>270 最初XN Resource Editorでそうしようと思ったんですけど 出来たファイルがバイナリーで見れなかったよ
272 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 13:33:38 ] 名前無しパイプとメールスロットは、 どっちもWaitForSingleObjectで待機できないの? それとも実は待機できるとか? やっぱ、ポール牧んぐしなきゃ無理?
273 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 13:46:16 ] スレッドでポーリング
274 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 14:25:25 ] つか、スレッドなら待ちっぱなしでいいか
275 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 14:26:16 ] ・標準入力に対するReadFile()でブロックしている状態に他スレッドから 割り込んでブロックを解除する良い方法はありますか。 ・cookedモードで動作しているConsoleへの入力を、Unixのselect() のように待機する方法はありますか。 改行が入力され、プログラム側が読み込み可能になった時点で待機が 解除されることが望ましいです。
276 名前:272 mailto:sage [2007/03/29(木) 14:37:31 ] >>273−274 おー。その手があったんですね。 姉さん感動したわ。
277 名前:デフォルトの名無しさん [2007/03/29(木) 17:35:30 ] ATL使ってCOM DLL作っているんだが、 メソッド内でCreateDialog呼び出す際のhInstanceって何設定すればいいんだ? hwndないからGetWindowLongも呼べないし え?もしかしてすげー低次元な質問?
278 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 17:39:25 ] >>277 GetModuleHandle(NULL)
279 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 17:40:02 ] DllMain
280 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 17:44:30 ] CComModule::m_hInstだっけな?
281 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 17:50:36 ] ATLならGetResourceInstance?
282 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 17:52:10 ] >>275 ・たぶん無い。 ・それなら普通に読めばいいのでは? >>277 たぶんこれ。 support.microsoft.com/kb/309705/ja
283 名前:280 mailto:sage [2007/03/29(木) 17:53:54 ] >>282 これは知らなんだ。 さんくすこ
284 名前:デフォルトの名無しさん [2007/03/29(木) 18:49:13 ] >>278-282 thx!! 皆のアドバイスから紐解いていったら _Module.m_hInst に入ってた! まじありがとう
285 名前:284 mailto:sage [2007/03/29(木) 18:49:45 ] sage忘れスマソorz
286 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 19:57:59 ] DLLファイルとDEFファイルとHPPファイルがあって LIBファイル無しでコンパイルする方法教えてください
287 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:00:33 ] >>286 DEF があれば LIB を作ることは可能 gcc だと LIB 作らずに DLL をリンクに加えるだけでもコンパイルできる 他のコンパイラはどうだか知らない
288 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:08:38 ] GCCってmingwのことですか? dlltoolをつかったらエラーが出てlibが作れませんでした。 lib.exeでdefからlibは作くれても リンクで「〜は未解決です」の エラーが出来ませんでした
289 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:28:56 ] 開発環境がMSVCだとして話をするが。 dumpbin -EXPORTS foo.lib してみて、インポートライブラリのエクスポートシンボルを確認汁。 ヘッダとつきあわせて、名前がヘッダで宣言されている呼び出し規約と 適合しているかチェック汁。 cdeclなら_で始まっているのが正しいし、 stdcallならうしろに@ほにゃららがつく。 つうかC++か。名前マングルされてるとマンドいな。 DEFファイルは本当に正しいのか?
290 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:06:45 ] XXX.h #ifdef _EXPORT_LIB_ #define __PORT __declspec(dllexport) #else #define __PORT __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif __PORT WINAPI プロトタイプ定義 #ifdef __cplusplus } #endif
291 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:18:37 ] すみません↓をビルドするとエラーが出ます HINSTANCEの型は後ろから二番目の引数なのでキャストしたのですが消えません どこが間違ってるのでしょうか?? (コード) hChild1 = CreateWindowEx( WS_EX_CLIENTEDGE, clsChild1Window, (LPCWSTR)"", //タイトルバーにこの名前が表示されます WS_CHILD | WS_VISIBLE | WS_THICKFRAME, //ウィンドウの種類 -frame, // x座標 -frame, // y座標 x1, // 幅 y1, // 高さ hWnd, // 親ウィンドウのハンドル、親を作るときはNULL (HMENU)1, // メニューハンドル、クラスメニューを使うときはNULL (HINSTANCE)hInstance, // インスタンスハンドル NULL ); (エラー) error C2440: '=' : 'HWND' から 'HINSTANCE' に変換できません。
292 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:20:26 ] hChild1の宣言を確認してみればいい予感
293 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:20:29 ] 「hChild1の型がHINSTANCEだからだ死ねぼけ」 みたいなエラーに思えるがどうか?
294 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:22:45 ] とりあえずあれだ、何も考えずにキャスト乱用するの止めれ。
295 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:23:58 ] HWND型の方は確認してないだろ。CreateWindowExの戻り値の型はHWND
296 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:26:02 ] >>292 >>293 >>294 >>295 hChild1の型が間違ったました HINSTANCEからHWNDにしたらビルドできました すぐ吊ってきます
297 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:43:31 ] >>296 よーし吊って来いwwwwwwwww
298 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:58:12 ] みなさん、質問があります。 CreateMutex, CreateSemaphore, CreateEventとか、 引数に名前があるCreate〜関数がありますよね。 また、これと対のOpen〜関数もありますよね。 これらは以下のシナリオで利用されると思いますが・・・ ・ハンドルが定義されてない場合 @.Open〜関数→失敗(ハンドルがない) A.ハンドルがないのでCreate〜関数→成功 B.(゚Д゚)ウマー ・既にハンドルが定義されている場合 @.Open〜関数→成功(ハンドルがある) A.ハンドルを流用 B.(゚Д゚)ウマー しかし、ハンドルが定義されてない場合で @とAの間に別プロセスかスレッドで、 ハンドルが生成される可能性もあるんですよね? もし可能性があるなら、矛盾がないように生成シナリオを組むには どういう手法をとるべきでしょうか? それとも、考え違いなんでしょうかね?
299 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 22:20:58 ] 常に Create 使えば良し。
300 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 22:21:21 ] クレアテ
301 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 22:30:18 ] Create〜系は、既に同名のオブジェクトがあればそれを開くという動作をする。
302 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 23:20:18 ] >>299-301 へー知りませんでした。 調査してみます。
303 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 00:02:46 ] MSDN読んでればこんな疑問湧かないのに
304 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 00:24:47 ] MSDNがどんな専門書籍よりも早く正確に理解できるのに なんで読まないんだろうね
305 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 00:30:59 ] MSDNは重いし目次分かりにくくて調べにくいからキライとか言ってみる
306 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 00:48:31 ] 関数の詳細調べるにはいいけど、 「何をしたいときには、どの関数を使えばいいか」 っていうのは調べられない
307 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:25:03 ] まあ、リファレンスマニュアルだしな。
308 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 01:33:00 ] あと、リファレンスって結構サンプルコードがあってなんぼな面もあるのに MSDNはサンプルコードがろくになかったり、あっても酷いサンプルだったりする。 まぁ、昔に比べれば少しはよくなりつつあるようにも見受けられるが。
309 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 02:57:04 ] MSの解説って日本語でおkなとこが一杯あるしな。 関数リファレンスとかはまだマシだけど。
310 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 02:59:46 ] SDKの中にサンプルあるだろ?
311 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 03:04:31 ] >>310 お前、ちゃんと見たことないだろ。 メチャクチャだぞ、SDKのサンプルは。 あんまりにも酷いんで近年はあんまりみてないけど、ひょっとして最近はマシになってんのか?
312 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 07:20:34 ] そういえば最新版のWindowSDKからSampleがいくつか削除されてるな ATLとMFCを使ってた奴がが全滅っぽい
313 名前:298 mailto:sage [2007/03/30(金) 08:12:39 ] >>303 MSDN読んだ上の疑問だったのです。 用途としての理由というか裏づけがイマイチだったし、 家にある参考文献も役に立たなかったので・・・ また、関数の命名上、Create〜系とOpen〜系には ルールがあるんではと思い、ここに質問した次第です。
314 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 08:25:50 ] >戻り値 >関数が成功すると、ミューテックスオブジェクトのハンドルが返ります。 >この関数を呼び出す以前にそのミューテックスオブジェクトが存在していた場合は、 >この関数は既存のオブジェクトに対するハンドルに返し、GetLastError 関数は >ERROR_ALREADY_EXISTS を返します。 MSDNのCreateMutexより。本当にMSDNを読んでいたのであれば、 >>301 が初耳だなんてことはないのだが。
315 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 09:38:20 ] そろそろカチンときそうです。
316 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 09:44:39 ] メインスレッドから直接リストボックスにログ表示していますが、 ログが増えるとメイン処理の速度低下が著しいので、 ログ表示スレッドを分離しようかと思います。 ログ情報(テキスト)はパイプで渡そうかと考えているのですが、 他に良い方法ありませんか?
317 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 09:51:50 ] 分離ってどこに分離? syslogにのっとって作ると何かと便利
318 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:29:38 ] WM_SETREDRAW
319 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 10:38:06 ] スレッドって言ってるな・・・ 同じプロセスならパイプ使うまでもないと思うんだけど。 メモリ空間は同じだぜ?
320 名前:デフォルトの名無しさん [2007/03/30(金) 12:09:53 ] ChooseFont関数でフォント名とサイズを初期設定する方法を教えてください
321 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 12:16:39 ] LOGFONT構造体に値をセットして CF_INITTOLOGFONTSTRUCT フラグ入れればできないか? つか説明に書いてあると思うんだけど
322 名前:デフォルトの名無しさん [2007/03/30(金) 13:39:28 ] >>321 ありがとう。 確かにかいてあった・・・ >FlagsメンバにCF_INITTOLOGFONTSTRUCTを指定した場合は、この構造体で指定したフォントに最も近いフォントが選択されている状態でダイアログボックスが初期化されます。 これちょっと説明的にわかりずらかった・・
323 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:03:55 ] >>316 同一プロセス内のスレッド間通信なら、普通にポインタを渡すだけでいい。 (バッファの確保・更新・解放には同期処理が必要) ただし、リストボックスを作成したのがメインスレッドだと、リストボックスの管理は メインスレッドが行うので、リストボックスの動作そのものが問題になっていると 意味がない。この場合、ログ表示スレッドからSendMessage等をしても、それを実際に 実行するのはメインスレッドになる。 (ログ表示スレッドはメインスレッドがメッセージ処理を終えるまで待たされる) また、上手くスレッドを分けたところで、マルチプロセッサでなければ魔法のように 速くなるわけではないので、単純に処理が重いだけだとスレッドを分けても 全体の速度は変わらない。
324 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 17:08:28 ] 逆に、可能であれば速度低下を嫌うメイン処理こそワーカスレッドにするとよいのだけれど。
325 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 19:35:28 ] リストボックスをLVS_OWNERDRAWFIXED|LVS_NODATAで作成して オーナードローで描画、実データを持たさないようにすれば多少速くなるかな。
326 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 22:42:52 ] スレッドにしたところでリストボックスが著しく負荷高いってことには変わりがないと思うよ。 標準のコントロールは大量データを高速に処理できるようになっていないと思う。
327 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 23:19:35 ] 大量のデータを高速に処理するために標準機能として仮想リストがついているんだが。
328 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 05:01:29 ] 重くなるってリストに何件データ保持してるんだろ? 実際にそこまで過去のログを表示しておく必要があるか考えてみる …これは実装とは関係ないか
329 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 08:50:27 ] 3Dモデリングのライブラリってありますか? 街作ったり、車作ったりの
330 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 08:57:07 ] スレタイよく嫁
331 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 11:15:05 ] 自アプリのwebbrowserコントロール内でユーザが文字列を選択し、 コンテキストメニューから「コピー」を選んだとき、 クリップボードに書き込まれる前になんらかのイベントを 捕捉することはできますでしょうか? おねがいします。
332 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:04:43 ] >>331 ヒント:DDK
333 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:35:32 ] ヒント:DDR
334 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:38:25 ] ヒント:DDR2
335 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:46:45 ] ヒント:DDRMAX
336 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:48:55 ] EDORAM SIMM
337 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 18:04:40 ] EROIM ESSAIM
338 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 18:49:05 ] ┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 雑談は ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで.┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ ┗━━━┛
339 名前:316 mailto:sage [2007/03/31(土) 22:49:05 ] 共有のメモリでリードライトポインタを制御するって意見が多いですね。 パイプにしとけば別プロセスにしたときにも使えるかなってのはあるんですが。。。 速度低下ってのは言葉足らずで、メイン処理を一定周期で 回したいのでログが多くなった瞬間にメイン処理が 待たされるのを避けたいという意味です。 最悪、ログのバッファオーバーフローもあり得るってことで。
340 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:55:04 ] ソケットにしておけば別マシンからでも使えるぞ。
341 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 23:38:49 ] DLLの中からCreateWindowでウィンドウを表示できますか? でもってその場合hInstanceにはHMODULEを渡すですか?
342 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 23:56:00 ] >>341 出来る。それでおk。つーか試した方が早くね?
343 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 23:57:42 ] ありがと
344 名前:デフォルトの名無しさん [2007/04/01(日) 00:15:48 ] しつもんがあります。 かなり大量のメモリ確保したいのですがGlobalLockは最高何個まで メモリ確保できますか?上限とかありますか?メモリが許す限り 無制限でしょうか? よろしくお願いします。
345 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:18:24 ] ヒント32ビットOS
346 名前:デフォルトの名無しさん [2007/04/01(日) 00:24:18 ] 2^32個ということですね ありがとうございました
347 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:27:19 ] ポインタやハンドルは4バイトだから それを記録する変数のために(2^32)*4を引くのを忘れるなよ。
348 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:31:26 ] SysListView32で「キーボードカーソル」 の現在位置の取得及び設定はどうやるのですか? ウィンドウの中で点線で囲まれていて、 Ctrl + 上下キーで移動する部分です。
349 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:54:39 ] >>344 >>346 Win32では、基本的にリニアアドレス空間の半分をシステムが持っているので、 実際にユーザが使えるのは理論上2^31Byte、つまり2GiB。 ただしNT系ではリンク時の/LARGEADDRESSAWAREと boot.iniの/3GBオプションにより、3GiBまで広がる。 /LARGEADDRESSAWARE付けた32ビットEXEをWin64で動かしたら4GiBまでいけるという話もある。 実際にはそこからEXE/DLL、つまりコードやリソース、 それにスタックなどの分も差し引かれるのでもう少し減る。 勿論空き仮想メモリの量が実際的な上限。 ところで1度に1MiB以上の確保するときにはVirtualAllocが推奨されている。 msdn.microsoft.com/library/ja/jpmemory/html/_win32_globalalloc.asp msdn.microsoft.com/library/ja/jpmemory/html/_win32_virtualalloc.asp
350 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 01:06:56 ] GiBってなんだ
351 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 01:13:44 ] >>350 ttp://hwb.ecc.u-tokyo.ac.jp/current/4857422FBEF0CAF3A4C8C9E4B9E6B2BD2FC3B1B0CC.html
352 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 02:13:53 ] MiBはあちこちで記憶を消して回るやつらのことだろ
353 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 04:11:05 ] >>352 DELIVER THE GALAXY OR EARTH WILL BE DESTROYED. SORRY!
354 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 04:13:49 ] ウィルスミスカコイイ
355 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 05:05:59 ] virus miss?
356 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 08:44:47 ] 32ビットでもWindows Server 2003 R2 Datacenterなら128GBまでOK。 Windows 2000 Datacenter Serverでも64GB
357 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:03:57 ] 知識としては良いのかも知れんが 本当に2GBのメモリを要求するようなプログラムは 設計から間違ってる気がする
358 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:38:31 ] 科学計算やるソフトなら本当に2GBまで使ったりするけどね〜
359 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:54:45 ] 32bitのWindowsでやるようなことじゃないな。
360 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:00:23 ] >>331 IHTML*Events::oncopy() 書き込み前か書き込み後かは知らん
361 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:10:13 ] >>356 1プロセスは4GBまでだろ
362 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:11:01 ] タスクトレイのアイコンはウィンドウがないと作れないの?
363 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:21:29 ] >>361 志村、AWE、AWE >>362 ウィンドウがないとタスクトレイメッセージが受け取れない
364 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:21:46 ] >>361 AWEとか抜け道はあるだろ。
365 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:25:33 ] >>359 修士論文ならそれでもなんとかなる@理論化学
366 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:42:14 ] >>362 っ コールバック関数
367 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 13:38:48 ] Shell_NotifyIconにもNOTIFYICONDATAにも コールバック関数を指定する所は見当たらんが
368 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:27:23 ] プロフィールなどに Microsoft MVP for Windows SDK とか書いてる人がいるんですが、どう言う意味なんでしょうか?
369 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:29:41 ] MVPって(藁) コピペ2回目 pc11.2ch.net/test/read.cgi/tech/1175087786/
370 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:24:12 ] しっ、見ちゃいけません
371 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:05:11 ] クライアント領域の更新にInvalidateRect(hWnd,NULL,TRUE);を使っているのですが画面がちらつきまくります。 他に良い方法はないでしょうか?
372 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:12:03 ] InvalidateRect(hWnd,NULL,FALSE);
373 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:23:08 ] >>372 ありがとうございます。 マシにはなりましたが書き直す量が多くなって間隔が短くなるとどうしてもちらつくもんですね……
374 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:39:51 ] >>373 背景を消す 新しいのを書く これを繰り返すからちらつくんだよ。 WM_ERASEBKGNDが呼ばれているなら何もせずreturnする。 ダブルバッファリングをつかう。 方法は検索すれば見つかると思う。 要するにメモリ上で背景や絵を描画して その完成させた絵をウィンドウに描画する。
375 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:36:17 ] カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか? PNG GDI+ libpng カスタムリソース等であらかたググってみましたが理解できませんでした。 hp.vector.co.jp/authors/VA016379/cpplib/libpng.htm も試してみましたがlibpng.libに変な部分があるという旨のエラーが出て(bcc32)コンパイルできませんでした。 うぐぅ
376 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:45:22 ] 全然確認してないけど後者はマングリの問題な気がする
377 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:50:16 ] >>375 エラーはコピペしろ。エスパーに期待するな。 だけど俺も>>376 に一票。 そのlibpngもbccでビルドしたのか?
378 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:59:06 ] Error: 'C:\PROGRAM FILES\BORLAND\BCC55\LIB\LIBPNG.LIB' contains invalid OMF record, type 0x21 (possibly COFF) です。すいません。 ビルドは説明通りVC++EEでやりました。それがいかんのですね。 bccならどうコンパイルしていいのかがわからなかったもので。
379 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:00:48 ] >>378 っ coff2omf.exe
380 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:04:12 ] 逆にお前が書くプログラムもVC++でコンパイルすればいい。
381 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:13:13 ] >>379 コンパイルはうまくいったみたいなのでこれから実際にloadpngが使えるか試してみます。 >>380 猫で始めたんですがVC++の使い方がよくわからないんですよね。 PSDKのインストールまではやってみたんですがコンパイルもエラーでまくるし……
382 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:23:59 ] プログラム→Visual C++ 2005 Express Edition→Visual Studio Tools→Visual Studio 2005 コマンド プロンプト コンパイラのコマンド名はbcc32ではなく、VC++ではcl。これでVC++コンパイラが使える。 コンパイラオプションも色々違うが、MSDN2を見てくれ。
383 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:26:56 ] 連投すいません。 プログラム内で hBmpBackGround = LoadPng("./images/background.png"); 記述したところ Error: 外部シンボル '_png_create_read_struct' が未解決(D:\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\****.OBJ が参照) などのエラーが16個出ました。 そのままloadpng.cppをコンパイルすると 警告 W8017 loadpng.cpp 1: マクロ 'STRICT' の重複定義 エラー E2109 loadpng.cpp 123: 許されない型(関数 LoadPng(const string &) ) エラー E2108 loadpng.cpp 124: typedef 'png_color' の使い方が間違っている(関数 LoadPng(const string &) ) とかforループの行に対して 警告 W8008 ****.cpp 432: 条件が常に真(関数 ***() ) が出るので1、4、11行目はコメントアウトしています。 他の必要なファイルは***.cppと同じディレクトリです。画像は./images/以下にあります。
384 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:29:28 ] >>382 bcc32もVisual Studio 2005 コマンド プロンプトから動かしているんですが、 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\windows.h(28) : warning C4068: 不明なプラグマがありました。 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\windows.h(200) : fatal error C1083: include ファイルを開けません。'windef.h': No such file or directory というエラーが出てコンパイルできないので仕方なくbccを使ってます……
385 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:44:11 ] 英語だからって条件反射でエラー文読むの拒否してないか?
386 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:47:03 ] >>385 ではなくて、自分の作ったファイルならともかくVCの用意してるファイルでのエラーなんかどう対処すればいいんだ…… ってのとマイクロソフトへの不信感から勝手にお手上げしてる感じですね……
387 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:48:08 ] はあ?
388 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:51:08 ] 面白くなってまいりました
389 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:55:06 ] >>384 なぜbcc32でVCのインクルードフォルダが現れる?
390 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:56:27 ] 1つめは対処法がわからないのでとりあえず置いておいて、 2つめに関してはPSDKのincludeにあったものをVCのディレクトリにコピーしました。 とりあえずC1083になるファイルは全部コピーしたのですが C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xlocale(326) : warning C4530: C++ 例外処理を使 っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 d:\my documents\visual studio 2005\projects\nyaopuyo\loadpng.cpp(121) : error C2664: 'memset' : 1 番 目の引数を 'std::_Vector_iterator<_Ty,_Alloc>' から 'void *' に変換できません。(新しい機能 ; ヘルプ を参照) with [ _Ty=png_color, _Alloc=std::allocator<png_color> ] この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 等のエラーが多数出ます。
391 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:57:19 ] >>389 あ、それはVC++コマンドからclでコンパイルしたときのものです。
392 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:01:03 ] >>384 > bcc32もVisual Studio 2005 コマンド プロンプトから動かしているんですが エラーメッセージの内容から言って、それはVC++のclコンパイラが出しているものだ。 bcc32じゃない。 それにしても、clがwindows.hを読んでunknown pragmaとか、 windef.hが無いだとか、明らかにおかしい状態になっているな。 インストールミスかなにかじゃないのかな。あるいはウィルスにでも 食い荒らされたか。
393 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:02:40 ] >>390 C4530はエラーではなくワーニングだが(それぐらいは区別しろ、頼むから) clに-GXオプションを与えればよい。 2番目はあんたのユーザコードloadpng.cppの問題だろ。
394 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:07:32 ] >>390 >memset(vPalette.begin(), 0, nPal * sizeof png_color); こんなことをやっている糞コードのようだな。 こんなコードはドブに捨ててしまえ……と言いたいところだが、とりあえず vPalette.begin -> &vPalette[0] とでも書き換えるんだな。
395 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:10:41 ] >>390 コピーする必要は無い。 単にPlatfrom SDKのIncludeフォルダをインクルードディレクトリに追加すれば十分だ。
396 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:11:39 ] >>393 -GXよりも警告メッセージのとおり/EHscがお勧め。 VC++ 8からGXは推奨しないというような警告が出るようになったはず。
397 名前:デフォルトの名無しさん [2007/04/01(日) 23:15:04 ] コンパイルが通ったら今度は「うまく動きません。どうすればいいんでしょうか?」と長いソースを張り付ける予感。 しかし、画像のロードとセーブだけならもっと簡単なライブラリがあるんだけどなw
398 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:15:27 ] >>390 2番目のはイテレータとポインタをごっちゃにしているのが悪い。 イテレータ⊇ポインタだが、逆は成り立たない。 std::vector<png_color> v;というのがあったとしたら、 vの先頭要素へのポインタは&v[0]で取得できる。 memsetを使わずに、std::fill使えとか、vectorのメンバでどうにかしろとも言えるが。
399 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:19:10 ] みなさんありがとうございます。+゚:。(つД`)*.゚。 >>392 自分でincludeディレクトリいじったことはもちろん無いし、ウィルスも恐らく無かったので インストールミスなんでしょうかね…… >>393 >>396 仰る通りで申し訳ないです。/EHscでコンパイルを試みました。 >>394 3箇所書き換えたらエラーが loadpng.cpp(121) : error C2064: 0 引数を取り込む関数には評価されません。 に変わりました。 >>395 そうだと思ったんですがその方法を調べるとまた時間がかかりそうだったのでその場しのぎの苦肉の策ということで……
400 名前:デフォルトの名無しさん [2007/04/01(日) 23:23:15 ] >カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか? >PNG GDI+ libpng カスタムリソース等であらかたググってみましたが理解できませんでした。 この質問を自分もしたかったので、成り行きに注目していたんだが。。。
401 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:26:04 ] >>399 vPalette.begin() -> &vPalette[0] ↑ かっこぬけてはるみたいやね。 もう一つも同じ要領。
402 名前:394 mailto:sage [2007/04/01(日) 23:26:07 ] >>399 悪い悪い、 &vPalette[0]()にしちゃったのか? 正しくは、 vPalette.begin() -> &vPalette[0] だ。
403 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:31:35 ] コンパイルはできてオブジェクトファイルまでは作成できました。 ライブラリが見あたらないと出たのでSDKから根こそぎコピーしました。 MSVCRT.lib(MSVCR80.dll) : error LNK2005: _abort は既に LIBCMT.lib(abort.obj) で定義されています。 LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 error LNK2019: 未解決の外部シンボル __imp__ReleaseDC@8 が関数 "struct HBITMAP__ * __cdecl LoadPng(中略) で参照されました。 等のエラー、警告が山ほど出てきました…… 根こそぎコピーがマズかったのでしょうか。
404 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:32:24 ] memset(&vPalette, 0, nPal * sizeof png_color); もしこう書いているのであれば、単にvPalette.resize(nPal)で十分なはず。 png_colorはどうせただのPODな構造体だろ。 デフォルト初期化と0クリアは同じような結果になるはず。
405 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:35:23 ] >>400 いやはや実は俺もなんだ・・・
406 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:36:17 ] もう働きたくない
407 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:43:26 ] つうか>>375 のリンク先のLoadPng()って、ファイルからロードする仕様じゃん。 カスタムリソースをロードしたいんじゃなかったの? つうかVC++持ってるんなら素直にCImage使えやってのは禁句か。 GDI+が対応してるフォーマット(PNGを含む)は全対応だし、リソースからの ロードも出来るぞ。 atlimage.hな。
408 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:44:39 ] Express EditionにはATLないだろ。
409 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:47:30 ] ああ、Express Editionか。これは失礼。
410 名前:375 mailto:sage [2007/04/01(日) 23:53:23 ] >>407 カスタムからロードしたかったんですが、できるかどうかわからなかったのでとりあえずやってみようって感じです。 で、できないんですか……残念です。 VC++はウィンドウ表示するだけのプログラムすらコンパイルできなかったので(↑でコンパイルまでは解決)bccに乗り換えてました。 本格的にやりたいので製品版も買おうと思うんですが、製品版も今のような調子だったりしないか怖くて手が出ません。 あと、EEでも猫の本とだいぶ違っているし(猫のが古いんだと思いますが)、C++はまだ始めたてだったりするのでそれも手が出ない理由です。 ちなみに製品版買うならVisual Studio 2005 Standard Edition(Academic Edition)ですかね? やりたいことはWINAPI(将来的にはDirectXでも)でゲーム制作です。
411 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:54:54 ] libpngはPNG_SETJMP_NOT_SUPPORTEDを指定してビルドしない限り、 longjmp()でエラーレポートを行う。 >>375 のコードはsetjmp()を呼んでいないようだから、多分全く エラーに対応していないな。 もっとマシなコードを探せ。 setjmp(), longjmp()である以上、デストラクタは実行されないから、 その区間でvectorなんぞを使うのは論外だ。 ま、CreateDIBSection, png_create_read_structあたりのキーワードで google codesearchでもすれば、色々引っかかるだろ。
412 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:58:56 ] >>410 > 本格的にやりたいので製品版も買おうと思うんですが、製品版も今のような > 調子だったりしないか怖くて手が出ません。 PlatformSDKはEnterprise Editionではそもそも付属してなくて自分で別途 インストール&環境設定しなきゃいけないからな。 あんたがインストールにミスったってだけの話だろ。 Visual Studioの品質の問題じゃない。 あんたに問題解決能力がないだけの話。それは、どんな製品を使おうが変わらないよ。
413 名前:348 mailto:sage [2007/04/02(月) 00:02:25 ] おながいします・・・orz
414 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:04:50 ] >>411 VC++ならSEHとの絡みでsetjmp/longjmpでも自動変数のデストラクタが呼ばれるはず
415 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:05:28 ] お前らスルー汁
416 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:06:03 ] ていうかもう、API全然関係ないなwww
417 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:06:38 ] >>414 へぇ。それはいいことを聞いた。教えてくれてありがとう。 ま、それに依存したコードは書く気になれないが……
418 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:07:01 ] 何だこのスレの伸び具合は
419 名前:375 mailto:sage [2007/04/02(月) 00:08:05 ] >>411 ちょっくら頑張ってきます( `・ω・´) >>412 了解、明日にでもVCとSDK再インスコしまつ。 >>416 サーセンwww
420 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:12:50 ] Platform SDKよりもWindows SDKのほうがお勧め。 スタートメニューの中にVS 2005への設定を行うショートカットがある。 それを実行するだけで、VSコマンドプロンプトからもIDEからも インクルードパスの設定を含めWindows SDKを使用できる状態になる。
421 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:19:56 ] 開発環境すらちゃんと構築できないような奴には無理ということで
422 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:25:05 ] >>413 取りあえず LVM_ 以下の全メッセージを調べてみろ。話はそれからだ。
423 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:25:22 ] 初心者叩きはその辺にしておいて結局のところこれは誰もわからんのだね? >カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか?
424 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:29:04 ] 普通にLoadResourceで読んでBITMAPに変換すれば
425 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:33:19 ] EE使ってるちょちんちゃだから、PNGのリソースは妄想に過ぎないに1000ペリカ と思ったら今日は四月馬鹿じゃんw
426 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:54:53 ] もう四月馬鹿は終了している件
427 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:55:13 ] >>423 リソースをバイナリデータとして読み取り、それをストリーム化、 Gdiplus::BitmapのIStream*を受け取るコンストラクタへ渡す。 そしてメンバのGetHBITMAPでビットマップハンドルを得る。 これでいい?
428 名前:デフォルトの名無しさん [2007/04/02(月) 01:01:58 ] UpdateLayeredWindowでウィンドウを透明化させると黒色が完全透明扱いに なっちゃうんだけどどうやったらSetLayeredWindowAttributeと同じような処理にできるかな
429 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:13:59 ] 黒でもアルファ値は255にする
430 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:38:46 ] >>427 横やりでなんですが僕も気になるので実装を詳しく書いて頂けると助かります。
431 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:45:04 ] >>430 詳しくも何も、書いてあることそのままやればいいだけじゃないのか?
432 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:49:10 ] さっきから「僕も気になる」って人が多い件
433 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:49:14 ] GDI+を使うんならPNGのローディングの面倒はGDI+が見てくれる。 >>427 そのままでいいはずよ。
434 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:01:09 ] Bitmap::Bitmap(HINSTANCE,WCHAR*) 使えるか知らんがこんなコンストラクタもあるみたいだ
435 名前:デフォルトの名無しさん [2007/04/02(月) 02:39:41 ] TreeViewのExpandをキャンセルするにはどうしたらいいんでしょうか?
436 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:48:06 ] 僕も気になってるので完全なソースコードをください
437 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:50:12 ] 僕も絶対に気になります。 ソースコードお願いしますこれは絶対に必要ですね。
438 名前:432 mailto:sage [2007/04/02(月) 03:10:06 ] すまない。俺が悪かったwww
439 名前:432 mailto:sage [2007/04/02(月) 03:15:06 ] >>435 ツリーが展開される直前に親ウィンドウに TVN_ITEMEXPANDINGが通知されるからそれを引っ掛ける
440 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 05:18:15 ] 僕も「僕も気になります」が大杉て気になります
441 名前:デフォルトの名無しさん [2007/04/02(月) 07:05:30 ] 質問スレで言うのもなんだけど、>>427 のレスだけでコードが書けない奴って真性のバカだろ。
442 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 07:12:51 ] 確実に言えるのは書けなかったとしたらもはやこのスレで扱う内容ではない
443 名前:428 [2007/04/02(月) 08:24:22 ] >>429 SetPixelで0x00ffffffは白が表示されて0xffffffffだと透明になるから アルファ値は読んでるみたいなんだけど、 0x00000000でも透明になっちゃうんだよ
444 名前:デフォルトの名無しさん [2007/04/02(月) 11:37:15 ] >>439 ありがとうございました。 もうひとつお願いしたいんですが、 イメージインデックスを変える方法はどうしたらいいんでしょうか。
445 名前:439 [2007/04/02(月) 11:47:50 ] >>444 イメージリスト作ってLVM_SETIMAGELISTでSendする
446 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 11:50:33 ] 間違えたTVM_だった
447 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:16:19 ] ttp://msdn2.microsoft.com/en-us/library/ms650018.aspx
448 名前:デフォルトの名無しさん [2007/04/02(月) 12:26:55 ] 猫でも分かる〜でWin32プログラミングの基礎は分かりますか?
449 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:30:27 ] 猫のWin32は言っちゃ悪いけどひどいコーディングしてると思う メニューのとこ見たら右クリックごとにメニューの生成と破棄繰り返してたよ。
450 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:36:43 ] オブジェクト指向的でいいじゃん
451 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:37:27 ] >>449 そうですか・・・ 本を買う金がないので、400章まであるサンプルを一つ一つ手打ちで勉強してるんですが、 ところどころ非効率なコードが書いてあるということですね。注意して読みます。 ありがとうございました。
452 名前:デフォルトの名無しさん [2007/04/02(月) 12:38:09 ] 方法論を学ぶ所であってコードを学ぶ所ではないと意識しておけばおk
453 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:25:27 ] 効率に限らず、独学の初心者的な泥臭いコードが多い あれは教科書ではなくノートだと考えろ 丸写しすると他人の変な癖まで取り込むことになる
454 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:31:01 ] 反面教師なんだよ。
455 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:36:47 ] ついでに思うのは果たして400章までやる必要があるかどうか? 応用って言葉の意味が無いよな
456 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:39:28 ] 必要な動作を追うには、再利用性を考えて効率的に使えるように書かれたコードよりも見やすい。 STLやboostのコードを逐次追うような状態を想像してみると分かりやすいだろう。
457 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 14:14:27 ] まぁでもなーーーーんもわかんない人にはわかりやすいとは思う。 俺も猫からプログラミング入ったクチだし。数年前の話だけど。
458 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 15:21:10 ] 猫は雰囲気だけ掴んで詳細はMSDNって感じだな。
459 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 16:20:28 ] 猫とMSDNの間に差ありすぎだろ
460 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:18:33 ] 猫を含めたWEBサイトだけで窓プログラミングを覚えた (正確にはMFCの本を1冊だけ買ったけど)俺でも 猫のコードを「あまり良くない」と思えるぐらいには成長した 結局>>452 と>>456 だと思う
461 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:41:54 ] 猫はほとんど見ないで解説サイトだけで勉強したけど 猫のコードが何故よくないのかわからない俺もいますよ まだまだ勉強不足ってことだろうか・・・
462 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:13:38 ] 猫のコードは普通に醜いし 処理過程も追いにくいと思うぞ 窓初心者ならこっちのほうがお勧め ttp://wisdom.sakura.ne.jp/system/winapi/index.html トピック毎のサンプルが短いから C言語の知識なくても解説見て丸写ししてるうちに分かるはず ちょっとバグってる所もあるけど猫ほどじゃないし
463 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:22:46 ] 後学のために質問なんだけど、 GDI+とか他のライブラリ使わないで、 PNGの画像ファイルをDCに描画する方法って、 どうやればいいのか、解説してるところあったら教えてほしい。
464 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:30:43 ] libpngでテンポラリメモリ上に展開したのち、SetDIBitsToDeviceとか DIBSectionのメモリ上に展開してBitBltとか。 OleLoadPictureしてRenderとか。
465 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:37:11 ] windowを必要としないソフトでメッセージだけを受け取られますか?
466 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:37:59 ] 投げる側がPostThreadMessage使うなら、ウインドウは要らない。
467 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:41:35 ] libpngが既に外部ライブラリだと思うんだけど そういうことでなくて?
468 名前:デフォルトの名無しさん [2007/04/02(月) 18:42:51 ] >>465 エスパー回答するとシステムトレイ上のアイコンからWM_COMMANDを投げたりできる でもこれは厳密にはWindowを作ってることと一緒
469 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:15:47 ] >windowを必要としないソフトでメッセージだけを受け取られますか? Windowを作らずに、Windowメッセージだけを取れるか?という意味? 例えばタイマーとか
470 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:46:29 ] >>463 www.w3.org/TR/PNG/ ここに詳しく書いてある。 ライブラリを使うのが嫌なら自前で実装しろ。 >>465 必用としなくても見えないウインドウを生成すればいいだけ。 知恵が足りない。
471 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:05:02 ] ダイアログに文字を表示する方法でリソースに LTEXT "hogehoge/,IDC_HTML,10,10,100,18 と書けば表示されるのですが、ということは、SetDlgItemTextは なんのために存在するのでしょうか??
472 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:05:34 ] "が抜けていました LTEXT "hogehoge/",IDC_HTML,10,10,100,18 です
473 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:08:42 ] 他のコントロールを変更するときに使う。 もちろん、LTEXTも変更できるので、位置だけ取って、あとから必要に応じて書いたり
474 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:08:53 ] 何でもかんでも静的に決まると思ったら大間違いだ
475 名前:デフォルトの名無しさん [2007/04/02(月) 20:10:20 ] 俺はlibpngとlibjpegとlibtiffを使って相互にフォーマット変換できるクラスを作った。 もちろん、DIBに変換できるのは言うまでもない。 いや、ただそれだけなんだけど。
476 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:13:35 ] >>473 他のコントロールを変更するとは、どういう意味なんでしょ??
477 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:15:12 ] ボタンならボタンに表示されてる文字列が変わる。 というかSetDlgItemTextを何だと思ってたんだ。
478 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:39:45 ] 動的に変えたい場合
479 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:51:29 ] 逆に考えるんだ OSもダイアログテンプレートのLTEXTの文字列を読んで SetDlgItemTextを呼び出してるのだと
480 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:35:56 ] >>470 thx. やってみる。
481 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:52:25 ] CreateDialogを使用してダイアログを表示したいのですが戻り値がNULL、GetLastErrorの値が1812 になり表示できません。 ボタンを押したときに表示したいのでメッセージループに下のように埋め込んでいるのですが。 (ShowWindowとUpdateWindowは省略しています) case WM_COMMAND: hDlgWnd =(ghInst, MAKEINTRESOURCE(IDD_DIALOG1), ghWndKihon, (DLGPROC)MyDlgProc); なにか、こうじゃないの?的な物でもいいのでヒントください。
482 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:54:46 ] 肝心の「CreateDialog」が抜けていますがコピペミスなのでw気にしないでくださいw
483 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:02:49 ] エラーコード1812の意味を調べりゃ一目瞭然
484 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:04:59 ] 481ではないしついでに聞こうとも思っていないが、 調べてみたらなるほど一目瞭然だな。
485 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:11:32 ] Error Lookupで見ると「指定されたイメージ ファイルはリソース セクションを含んでいません。 」。 ごめん、馬鹿なんです。resource.hの中に手動で何か追加するとか、そんな感じなの?
486 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:16:25 ] EXEの中にダイアログのデータが入っていないということ。 EXE内にリソースを入れるようなことをしたか?
487 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:31:35 ] >>486 おお!VCにScript1.rcを追加したら表示されまいた! ありがとー! また来ますノシ
488 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:34:58 ] 低脳の悪寒
489 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:40:12 ] GetLastErrorの値まで調べておきながらエラーメッセージを調べないって何なんだ・・。
490 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:42:36 ] >>487 二度と来なくていい
491 名前:471 mailto:sage [2007/04/03(火) 00:04:38 ] >>474 >>477 >>478 >>479 ありがとうございます 静的な場合はリソースに記述 動的な場合はSetDlgItemTextで記述 という感じに考えます
492 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 01:51:54 ] >>443 アルファ値って255が不透明のはずだったけど
493 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:32:04 ] VCのリソースエディッタでダイアログをデザイン、ラジオボタンを並べました。 グループボックス内に配置し2グループに分けたのですが どうも両グループ同一と認識いされているようで、2個同時にオンにできません。 同時に2個オンにするにはどうすればいいのでしょうか?
494 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:40:07 ] 各グループで先頭のタブオーダーを持つラジオボタンのグループプロパティをTRUEにする
495 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:50:36 ] >>494 出来ました。夜分にサンクス。
496 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 08:27:36 ] >>493 ラジオ1 ラジオ2 ラジオ3 で1塊、ラジオ4 ラジオ5 ラジオ6 で1塊 として (レイアウト - タブオーダー で順序そろえてから) 「ラジオ1」 と 「ラジオ4」 のプロパティ グループ にチェック それ以外のラジオのプロパティ グループ はアンチェック これで望みの動作になると思われ
497 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 09:20:12 ] Vistaの検索を自分のプログラムから利用するための 情報へのポインタはないでしょうか?
498 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 09:32:21 ] はい。
499 名前:デフォルトの名無しさん [2007/04/03(火) 11:54:20 ] >>492 そういえばそうだ ますますわかんなくなってきた
500 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:00:45 ] ストリーミング放送(livedoorのネットラジオ)を録音するのに良い方法はないでしょうか? 放送をダウンロードするのではなくて、現在再生中の放送を録音するみたいなAPIとか無いものでしょうか? ちなみに当方VB6です。
501 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:59:26 ] >>499 RGBQUAD の rgbReserved が 0 デフォルトなんだよね… 1-alpha と alpha がごっちゃごちゃだわ
502 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 13:28:06 ] >>500 せめてもう少しマトモな書き方ができないものか
503 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 13:52:26 ] LivedoorStreamingRecording()
504 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:01:01 ] >>500 物理的にライン出力と入力を線でつないで録音するといいよ。
505 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 15:08:08 ] >>503 探したじゃないかw
506 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 19:28:29 ] プログラム中で生成したカラーのビットマップをマウスカーソルに 設定するにはどうしたらいいでしょうか? マウス用のリソースを 用意せずにリアルタイムにマウスカーソルを書き換えたいのです。
507 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 19:54:33 ] win32APIの勉強し始めたばかりのオレが答えてみる マウス表示を消してマウス位置を調べてそこにBMPを描画すればいいんじゃね?
508 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 19:56:48 ] CreateCursorしといて、WM_CURSORとかでSetCursorでなくて? システムグローバルに書き換えたい、というなら話は別だが
509 名前:デフォルトの名無しさん [2007/04/03(火) 20:17:44 ] よろしくお願いしまっす。 SetForeGroundWindow等でもフォアグラウンドになったりしない ウィンドウってできないんでしょうか。 現在はWS_EX_NOACTIVATEをつけて、 WM_MOUSEACTIVATEにMA_NOACTIVATEANDEATを返すようにして 普通ではアクティブ化しないようになっています 具体的にはツールチップのようなウィンドウを マウ筋の「スクロールを監視」に引っ掛からないようにしたいんですが。 当該ウィンドウ上でホイールを回転させると アクティブ化しないまでも他のウィンドウのフォーカスを奪ってしまうんです
510 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 20:30:48 ] 制御したい動作のはフォアグラウンド化なのか、アクティブ化なのか、フォーカス持ちなのか。
511 名前:509 mailto:sage [2007/04/03(火) 21:02:37 ] どうも。言葉が曖昧ですんません 現在アクティブなウィンドウが非アクティブにならなきゃいいんです。。 つまりアクティブ化しないように出来ませんかってことで
512 名前:506 mailto:sage [2007/04/03(火) 21:02:43 ] >>508 CreateCursorを調べてみましたが、モノクロのビットマップカーソルは 作成できるようです。今回はカラー(24bit以上か、せめて16bit以上) のマウスカーソルを作りたいのです。 システムグローバルではなくて、自アプリのカーソルのみです。 >>507 その方法だと、自アプリの縁を少しはみ出した状態で(ホットスポットが 自アプリ内)、クライアント領域の外にマウスが描画されないです。
513 名前:506 mailto:sage [2007/04/03(火) 21:11:20 ] カラーのマウスカーソルに関しては、CreateIconIndirectっていうのを 見つけました。
514 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 21:40:59 ] >>512 ttp://msdn2.microsoft.com/en-us/library/ms648379.aspx
515 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 23:23:11 ] Response & Balance 2600cc Dohc Engine Twin Turbo
516 名前:デフォルトの名無しさん [2007/04/04(水) 01:19:05 ] >>511 違う方法になるけどWS_EX_TRANSPARENTは駄目?
517 名前:509 mailto:sage [2007/04/04(水) 02:20:26 ] >>516 ありがとうございます。 マウスホイールが透過するようになりました が、クリックも透過してしまいます。 なんか情報後出しになってしまいましたが。
518 名前:517 [2007/04/04(水) 02:36:46 ] >>517 WM_COMMANDを監視してマウ筋から送られてくるコマンド(message)に対して return値をごにょごにょする
519 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 06:46:10 ] >>509 WM_WINDOWPOSCHANGINGでSWP_NOACTIVATEを強制的に立てる
520 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 09:52:27 ] マウスフックを使用したプログラムを作成しているのですが、 システムフックが上手く機能しません。以下の事例と全く同じ現象です。 rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200305/03050042.txt 他のプログラムのソースを参考にしたいので、何かあれば教えて下さい。 お願いします。<(_ _)>
521 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 10:32:21 ] >>520 その先読んでみたけど仕様を勘違いしているただの間抜けにしか見えないんだが
522 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 11:56:15 ] ウィンドウ上にボタンを配置し、クリックで新しいウィンドウを表示するプログラムを作成しています。 クリックで呼び出される側は WM_DESTROY メッセージが来たときに SendMessage(hWnd, WM_CLOSE, 0, 0L); として終了しています。 で、質問なのですがクリックで表示するウィンドウのCreateWindowで取得したハンドルは クローズしなくてもリークしませんか? しないといけない場合、どこですればいいのでしょうか?
523 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 14:50:19 ] 親ウィンドウが破壊されるとき、 子ウィンドウも一緒に破壊される。
524 名前:デフォルトの名無しさん [2007/04/04(水) 17:07:22 ] rand()の代替ルーチンがあったら教えてください
525 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:17:03 ] CryptGenRandom 再現性で問題が出るかもしれないが。
526 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:17:12 ] Win32APIにはないから自分で作れ。
527 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:19:42 ] まあ2000以降は仕様上プロセスが終了したら基本的にオブジェクトは何も残らんけどな
528 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:19:10 ] ttp://r.tabelog.com/restaurant/images/review/59/59343_29832.jpg お○んこ画像
529 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:51:00 ] お○んこ!しかも無修正!!
530 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:51:07 ] >>528 うひょ〜、よだれが出てくるぜ
531 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:55:44 ] >>528 もう我慢できない
532 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:00:44 ] >>528 綺麗に処理してあるな
533 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:04:27 ] こんやのおかずにちょうどいい。くれ。
534 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:11:10 ] 俺、今がちょうどこういうのが欲しくなる時間なんだ
535 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:11:34 ] >>527 終了したプロセスへのハンドルをつかんでい00る、別プロセスがあるかもしれない。
536 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 01:22:33 ] > つかんでい00る 00ってなんじゃらほい
537 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 02:19:39 ] パーマン絵描き歌を思いだした
538 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 09:51:06 ] ここ何スレだよw
539 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 11:19:22 ] プロセスの実行時間を計るのはどうしたらいいんでしょうか? 実時間じゃなくてプロセスの一部の処理に使ったユーザー時間のようなもの が欲しいです。 PDHとやらを使うのかと思ったんですがよく分かりません。
540 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:15:38 ] >>539 timeGetTimeの差分じゃダメ?
541 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:20:28 ] GetProcessTimesじゃらめぇ?
542 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:49:32 ] >>539 >実時間じゃなくてプロセスの一部の処理に使ったユーザー時間のようなもの >が欲しいです。 ここを詳しく。 処理に費やした時間を計測したいのか?
543 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:58:29 ] CPU時間でしょ。 >>541 でおk
544 名前:539 mailto:sage [2007/04/05(木) 13:24:19 ] >>542 そうです。Unixのtimeの結果のようなものを計算したいんです。 GetProcessTimesを使ってみます。ありがとうございました。
545 名前:デフォルトの名無しさん [2007/04/05(木) 13:46:06 ] モジュール内で抜けるまでどれくらい時間がかかてtるのかを計測したいなら GetTickCountでいいような希ガス
546 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:01:50 ] すいませんWin32API入門の第72章リソースで詰まってしまいました BorlandC++にBCCFormを入れてます EDGEで32×32のtest.bmpを作って、アイコンとして読み込みたいんですが LoadIcon()は分かるんですが、そこに至るまでが???で 宜しくお願いします
547 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 17:00:16 ] >>546 「メニュー」→「プロジェクト」→「プロジェクトに追加」 ファイルの種類を「リソースファイル (*rc)」にして、作成したrcファイルを指定する。 これだけで、後はその例通りに行けるよ。
548 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:21:32 ] >>547 レスありがとうございます でもどうやらどつぼにはまったようで、さっぱり分かりません .RES拡張子のファイルがないので リソースコンパイラがよく分かってないようです
549 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:25:35 ] BorlandC++なら自前で .res にコンパイルしなくても コンパイラが自動でやってくれる。
550 名前:デフォルトの名無しさん [2007/04/05(木) 18:45:41 ] FILETIME構造体の DWORD dwLowDateTimeと DWORD dwHighDateTime の各ビットの意味教えてください。 年と月と日と時間が何ビットに書かれているかわかりません。
551 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:53:36 ] >>546 ビットマップファイルとアイコンファイルは別物なので まずbmp→icoの形式変換から始めなはれ >>550 ここがそのまんま役に立ちそう wisdom.sakura.ne.jp/system/winapi/win32/win112.html
552 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:54:25 ] 直接ビット見たことないな
553 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:54:52 ] >>550 msdn2.microsoft.com/en-us/library/ms724284.aspx 1601年1月1日 (UTC)からの100ナノ秒単位での経過時間。 1つの64ビット整数だと見なせばよい(実際にそう扱うならアラインメントに注意)。 そういうわけでどこのビットが年とか月とかそういう性質のものではない。 だから素直にFileTimeToSystemTimeでも使っていなさい。
554 名前:デフォルトの名無しさん [2007/04/05(木) 19:17:29 ] 素直にfiletimetosystemtime使ったほうが早そうですね こちらで検討してみます。 ありがとうございました
555 名前:デフォルトの名無しさん [2007/04/05(木) 19:25:07 ] Notepadのように、フォームの領域一杯にEDITを表示してフォームのサイズ変更に追従させたい。 ドットネットで言う textBox1.Dock = DockStyle.Fill; をやりたいのですが これってCreateWindow時にウィンドウスタイルのようなもので設定するとばかり思っていたのですが そのような設定が見あたりません。 もしかしてウィンドウプロシージャのWM_SIZEのところで、自分でEDITのサイズを変更しないといけないんでしょうか?
556 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:28:14 ] そのまんまサイズ渡してやるだけ
557 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:42:20 ] >>549 >>541 レスありがとう EDGEに.icon保存形式があったのでそれにしました 色々弄ってみて最後にBCCデベロッパーのDOSアイコン(コマンド実行)から brc32 test.rc main.exe と入力したら 何とかmain.exeのアイコンだけ変えることができました exe起動後のウィンドウタイトルバーの横のアイコンが変わらないので また弄ってみます
558 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:45:32 ] >>557 それはウィンドウクラスのアイコンを設定すればいい
559 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:49:08 ] >>556 できました。 覚悟はしていたが本当に全部で自分でやらないといけないんだな・・。
560 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:55:08 ] >>558 この部分のことですよね? winc.hIcon = LoadIcon(); 一応LoadIcon(hInstance, TEXT("KITTY") );とやってるんですがならないので 初めからやり直してみます
561 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 20:21:26 ] >>140 www.codeproject.com/useritems/MyCell_control.asp
562 名前:アイコンで聞いた者 mailto:sage [2007/04/05(木) 21:02:27 ] 何とか上手くやれるようになりました! 何度も聞いて申し訳なかったです レスしてくれたみなさんありがとうございました
563 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:18:48 ] >>561 すげえw
564 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 04:31:37 ] デモ落としてみたけど根性ありすぎwww
565 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:09:34 ] >>561 これWin32APIで作られてるのか!?
566 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:13:48 ] >>561 軽く漏らした
567 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:01:24 ] >>565 思いっきりWTLって書いてあるじゃねえか
568 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 19:05:55 ] mcisend
569 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 19:10:36 ] VC++とplatformSDKで mcisendcommad()でデバイスを開くときに MCI_OPEN_PARMS構造体を使う場合でデバイスタイプにMPEGVideoを指定する事は出来るんでしょうか? mmsystem.hにはMCI_DEVTYPE_SEQUENCERまでしか定義されてないようですが…
570 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:05:13 ] 64ビット環境では___asmが使えないってのは本当なの?
571 名前:は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I [2007/04/06(金) 21:30:33 BE:90784692-2BP(1000)] リストビューを使うためにLV_COLUMN構造体を定義しようとしても「定義されていない識別子です」と突っぱねられます。 VC.net20003を使っているのですが、どうすればいいでしょう。 前に痛い目を見たので#define WIN32_LEAN_AND_MEANはカットしているんですがね....
572 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:30:39 ] >>570 スレ違い
573 名前:デフォルトの名無しさん [2007/04/06(金) 21:35:36 ] UNIXでの ls -a -r に相当するコードが知りたいです。 隠しファイル等を含む全てのファイルを再帰的に取得する方法を教えてください。
574 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:37:21 ] >>573 っ FindFirstFile っ FindNextFile っ FindClose
575 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:38:24 ] UNIX系のファイルシステムに、そもそも隠しファイルという概念など無い。 lsが勝手にフィルターしているだけ。
576 名前:デフォルトの名無しさん [2007/04/07(土) 02:09:16 ] >>575 それを隠しファイルというんじゃないのか WinだってExplorerが勝手にフィルターしてるだけだし
577 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 02:18:42 ] Win(というかFATとNTFS)にはファイル属性に隠しファイルビットがあるだろ つーか質問はWindows上で隠しファイルを含めて検索する方法じゃないのか? もう回答出てるけど
578 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 02:26:51 ] VC2005でダイアログボックスを作りたいのですが、どうやって作ったらいいのかわかりません。 VC2003だったらリソースの追加でできたのですがorz ググッてみましたがわかりませんでしたので、教えてもらえると助かります。
579 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 02:56:36 ] >>578 Express Editionにはリソースエディタは付属しないので作れない。 別途にリソースエディタを用意するべし。
580 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 03:04:14 ] リソースエディタとはなんですか? リソースの作り方すらわからない(´・ω・`)
581 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 03:07:18 ] これだからVCはオススメできない。 とりあえず、今までに作ったプロジェクトの拡張子が.rcの奴をテキストエディタで開け
582 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 03:12:15 ] 開きましたー!!
583 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 03:13:34 ] >>580 2003で作ったときには開発環境でダイアログボックスを作れたでしょ? あれは内部的にリソースエディタと呼ばれるツールを呼び出してただけなの んでExpress Editionではその機能が削除されてるので作ることができない。 作ることができないといってもVCの開発環境で作ることができないだけで リソースをプログラムから読み込むといったことは可能なので フリーソフトのリソースエディタでダイアログを作るしかない、ってこと
584 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 03:20:29 ] >>583 親切にありがとう。
585 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 07:52:10 ] リソースって言っても二種類の意味で使われてない? バイナリで書かれたリソースとテキストで書かれたのリソース どう呼び分ければいいんだろう??
586 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 07:52:42 ] 「書かれたリソース」の間違い
587 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 08:17:00 ] っ「リソーススクリプト」
588 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 08:19:44 ] リソース ├フォーマットがテキストの └フォーマットがバイナリの
589 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 09:02:01 ] コンパイル済みリソースがバイナリリソース。
590 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 17:13:30 ] テキストのリソースファイル(.rcファイル)+バイナリ(画像など)を リソースコンパイラでコンパイルして .res ファイルをつくり リンカで EXEにバインドする。直接.resを編集するツールもある。
591 名前:デフォルトの名無しさん mailto:久々だぜwwwwwww [2007/04/07(土) 21:12:44 ] 僕ハッカー
592 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:15:17 ] 僕バッカー
593 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:17:57 ] バカバッカー
594 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:18:00 ] バカばっかー
595 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:57:10 ] けこん
596 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 02:15:51 ] winAPIでテキストエディタに文字列を書き込んで保存したいのですが、どのようにしたらよいですか? VC使って組んでいます。
597 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 02:18:20 ] 意味が分からんな 外部のテキストエディタに文字を送り込むのか? 自前でテキストエディタを作るのか? …単にテキストエディタじゃなくてテキストファイルってオチか?
598 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 04:21:34 ] 普通にfopen、fwrite?
599 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 07:55:34 ] 他のアプリケーションのウインドウの座標と大きさを取得するにはどうすれば良いですか? また、座標と大きさを指定するにはどうすれば良いですか?
600 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 08:00:51 ] GetWindowRect MoveWindow プロセス跨いで使えたかはシラネ 春 の 香 り 乙 !
601 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 08:51:32 ] >>600 ありがとうございました
602 名前:596 mailto:sage [2007/04/08(日) 10:28:48 ] >>597 テキストファイルの間違いでしたw
603 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 13:44:29 ] マウスフックについての質問です。MOUSEHOOKSTRUCT構造体の内容を フックプロシージャから他のウィンドウプロシージャへ渡したいのですが、 上手くいきません。フックプロシージャのコードは次の通りです。 LRESULT CALLBACK HookProc(int nCode,WPARAM wp,LPARAM lp) { COPYDATASTRUCT cds; if (nCode < 0) CallNextHookEx(hHook,nCode,wp,lp); cds.dwData = wp; cds.cbData = sizeof(MOUSEHOOKSTRUCT); cds.lpData = (PMOUSEHOOKSTRUCT)lp; SendMessage(hWnd,WM_COPYDATA,NULL,(LPARAM)&cds); return CallNextHookEx(hHook,nCode,wp,lp); } 間違いがあれば指摘して下さい。又、参考になるソースがあれば教えて下さい。 お願いします。<(_ _)>
604 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 13:54:02 ] 相手が別プロセスなら自メモリ領域のポインタを渡しても無意味。 相手のメモリ内に領域を確保してそのポインタを渡す。
605 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:12:44 ] Windows XPでのCPU使用率の取得方法を教えてください
606 名前:603 mailto:sage [2007/04/08(日) 14:19:45 ] >>604 そのためにWM_COPYDATAメッセージを使用しています。ファイルマッピングオブジェクトの 内容を参照するので、メモリを共有する必要は無いと思ったのですが。 yokohama.cool.ne.jp/chokuto/advanced/copydata.html
607 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:22:09 ] >>603 その中だとhWndが一番怪しい。 SendMessageするときにhWndにちゃんとした値が入ってる?
608 名前:603 mailto:sage [2007/04/08(日) 14:36:11 ] 問題ありません。 「猫でもわかる」の162章のように、フックプロシージャ内での処理には成功しました。
609 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:49:03 ] そもそもうまくいかないって何が巧くいってないんだ? WM_COPYDATA が hWnd の WindowProc に来ないのか、来た WM_COPYDATA からデータが取れないのか
610 名前:603 mailto:sage [2007/04/08(日) 15:00:54 ] >>609 WM_COPYDATAメッセージは届くのですが、COPYDATASTRUCT構造体の内容の参照が上手くいきません。 フックは次のようにセットしています。 #define EXPORT __declspec (dllexport) #pragma data_seg(".shared") static HHOOK hHook = NULL; static HWND hWnd = NULL; #pragma data_seg() EXPORT HHOOK SetHook(const HWND hCaller) { hWnd = hCaller; hHook = SetWindowsHookEx(WH_MOUSE,(HOOKPROC)HookProc,hInst,0); return hHook; } ウィンドウプロシージャでは次のように処理しています。 case WM_COPYDATA: if (((PCOPYDATASTRUCT)lp)->dwData == WM_NCLBUTTONDOWN) { pmhs = (PMOUSEHOOKSTRUCT)lp; if (pmhs->wHitTestCode == HTCAPTION) { SetWindowText(pmhs->hwnd,"猫でもわかるフック"); } } break;
611 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:22:04 ] >>610 > pmhs = (PMOUSEHOOKSTRUCT)lp; pmhs = (PMOUSEHOOKSTRUCT)((PCOPYDATASTRUCT)lp)->lpData; だろ常識的に考えて
612 名前:603 mailto:sage [2007/04/08(日) 15:38:41 ] >>611 すみません。ウィンドウプロシージャの処理を訂正します。(^_^;) PCOPYDATASTRUCT pcds; PMOUSEHOOKSTRUCT pmhs; case WM_COPYDATA: pcds = (PCOPYDATASTRUCT)lp; pmhs = (PMOUSEHOOKSTRUCT)(pcds->lpData); if (pcds->dwData == WM_NCLBUTTONDOWN) { if (pmhs->wHitTestCode == HTCAPTION) { SetWindowText(pmhs->hwnd,"猫でもわかるフック"); } } break; ローカルフックには成功したのですが、グローバルフックに失敗します。
613 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 16:03:20 ] SetWindowText が気になって仕方ないが、 WindowProc 内での pcds->dwData とか pmhs->wHitTestCode とかはどうなんだ? 正しい値を示してるのか?
614 名前:603 mailto:sage [2007/04/08(日) 16:46:12 ] 他のアプリケーションにフックDLLがロードされていることは確認できたのですが、 COPYDATASTRUCT構造体の内容が空のようです。
615 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:41:35 ] msdn.microsoft.com/library/ja/jpwinui/html/_win32_setwindowtext.asp > ほかのプロセス内のコントロールのテキストを設定するには、SetWindowText 関数を > 呼び出すのではなく、直接 WM_SETTEXT メッセージを送ります。 何でフックがうまくいってないと思い込めるんだかさっぱり分からん。 明らかに間違ってたソースも「訂正します」の一言で済まされるし。
616 名前:603 mailto:sage [2007/04/08(日) 18:54:38 ] あたながたが思いのほか低スキルだったのでがっかりしています。 2ちゃんもたいしたことないですね。
617 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:56:30 ] ↓真603による「616は私ではありません」というレス
618 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:56:33 ] 615は無視かよ
619 名前:603 mailto:sage [2007/04/08(日) 19:50:46 ] >>615 SendMessage(pmhs->hwnd,WM_SETTEXT,0,(LPARAM)"猫でもわかるフック"); としたのですが、ウィンドウタイトルは変更されません。 間違ったソースを掲載したことについては深くお詫びします。大変申し訳ありませんでした。
620 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:43:43 ] >>619 dll.defに SECTIONS .shared SHARED READ WRITE が有るか確認するとか char sz[100]; wsprintf(sz, "pmhs->hwnd:%p ", pmhs->hwnd); SetWindowText(hWndExe, sz); として様子を見るとか
621 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:19:23 ] うまくいかないときには何がおきてるのかを見極めて原因究明。 期待通りにいくかいかないかだけを判断してたらいつまでたってもなおらん
622 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:44:15 ] デバッガ使ってないのかね? 1ステップずつ確認すれば、問題点はすぐに分かると思うが。
623 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:47:43 ] フックプロシージャのステップ実行なんて出来るの?
624 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 01:14:11 ] フック先のプロセスにアタッチしろ。
625 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 10:09:06 ] 別にデバッガ使わなくてもログをファイルに書き出せばいいだけだし
626 名前:603 mailto:sage [2007/04/09(月) 10:33:11 ] >>620-624 レスありがとうございます。 >>620 モジュール定義ファイルは作成済みです。内容は次の通りです。 LIBRARY hook SECTIONS .shared READ WRITE SHARED EXPORTS HookProc @1 ResetHook @2 SetHook @3 pmhs->hwndの値をウィンドウプロシージャ内で出力したところ、 ローカルフックでは00060AA2でした。グローバルフックでは何も出力されませんでした。 グローバルフックではWM_COPYDATAメッセージが届いていないようです。(^_^;) >>622 デバッガは使用していません。OutputDebugStringを使って変数の値をトレースしています。 >>623 プロセス間を跨いだデバッグ作業はどのように行うのでしょうか? >>624 明示的にアタッチする方法があるのですか? >>621 今までの状況を整理してみました。 ・ローカルフックには成功し、グローバルフックには失敗する。 ・ローカルフックの場合、フックDLLがロードされ、WM_COPYDATAメッセージが届く。 ・グローバルフックの場合、フックDLLはロードされるが、WM_COPYDATAメッセージは届かない。
627 名前:デフォルトの名無しさん [2007/04/09(月) 11:00:13 ] WindowsXPの[ユーザのログオフ]−[ユーザー切替]−[指定したユーザーのログオン] という作業をプログラムから操作したいんですけど可能でしょうか? 可能なら使用するAPIを教えて頂けないでしょうか?
628 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:05:12 ] 不可
629 名前:627 mailto:sage [2007/04/09(月) 11:11:17 ] やっぱりですね 即レスありがとうございました。
630 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:31:48 ] >>627 Ginaで何とかなるでしょ。Ginaでぐぐってみたら?
631 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:40:23 ] >>627 レジストリに自動ログオンの設定を書き込んで再起動
632 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:58:25 ] >>626 プロセスにアタッチするのははDLLをデバッグする場合の基本操作なんだが、 そんな当たり前のことを自分で調べられないのか?
633 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 14:27:57 ] グローバルフック成功してないんじゃね?
634 名前:デフォルトの名無しさん [2007/04/09(月) 15:14:14 ] Windowsで標準入力や出力がリダイレクトされてるかどうか知る方法を教えてください。
635 名前:デフォルトの名無しさん [2007/04/09(月) 15:56:31 ] 現在VS2005を使っているのですが、作成してるネイティブアプリのVisualStyleを切るにはどの様な方法がよろしいでしょうか? よろしくお願い致します。
636 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 16:28:21 ] まにふぇすとぶっこわす
637 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 17:01:54 ] むしろバージョン5のcomctl32.dllを使うようにマニフェスト書け
638 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 17:27:19 ] >>626 コードを一から書いたら、グローバルフックでもタイトルバーが変わった。 期待した動作にならなかったら、一から作り直すのも手かと。 つか、サンプルコードのコピペはおすすめできない。
639 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 18:06:07 ] >>636-637 レスありがとうございます。 というか何か勘違いしてました。。 VS2005では勝手に有効になると思ってましたがならないんですね・・・ この前作ったときはなってたような・・・気のせいか・・・orz
640 名前:デフォルトの名無しさん [2007/04/10(火) 00:34:29 ] ツリービューのノードのアイコンを一つだけ変える場合って どうすればええすか? Expandしたら広がったフォルダを表示とか。
641 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 08:34:36 ] TVM_SETIMAGELIST で ImageList セット TVM_SETITEM での fMask に TVIF_IMAGE|TVIF_SELECTEDIMAGE なり TVIF_STATE なり...
642 名前:デフォルトの名無しさん [2007/04/10(火) 12:49:04 ] USBリムーバブルハードディスクのデバイス識別子?(USB\Vid_04xx&Pid_10xx)とかから 割り当てられている論理ディスクのボリューム名を取得したいのですが どの辺を参照したらいいでしょうか。 「管理ツール」→「ディスクの管理」で下側ビューの左側「ディスクn」を右クリックしてプロパティを表示させて、 「ボリューム」プロパティーシートの下側リストビューに表示されているものが欲しいです。
643 名前:デフォルトの名無しさん [2007/04/10(火) 16:50:17 ] SetMenuContextHelpIdに渡す「ヘルプコンテキスト識別子」ってなんなんですか? 「ヘルプコンテキスト」ってリソースで用意するんでしょうか? それってどのような物で,どうやって作るんでしょうか?
644 名前:デフォルトの名無しさん [2007/04/10(火) 18:08:33 ] Win32API を使って、DLL 中のダイアログリソースの PUSHBUTTON の文字列を取得することはできますでしょうか? FindResource -> LoadResource -> LockResource まではできましたが、文字列の取得が分からない。
645 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 18:31:28 ] 自分で解析
646 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:03:23 ] >>643 のレスで思ったのだが、そーいや、2005からののヘルプはどうなんお? 昔は、HTML Help Workshopとかゴリゴリ作ったが? msdn.microsoft.com/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp?frame=true ここでいいっけ? それとも、暗黙でツールが入ってるのかな?
647 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:10:22 ] ゲームプログラムで質問ですwin32apiの関数を使うよりdirectxを使った方が画像の描画は早いですか
648 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:18:57 ] >>647 ちなみに、何系ゲーム?
649 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:30:43 ] シューティング系ゲームです。既にwin32apiで作ったのですが画面のスクロール速度を一定以上にあげるとフレームスキップが起こるです。
650 名前:648 mailto:sage [2007/04/10(火) 21:38:04 ] >>649 画面更新に速度を要求するなら、 DirectXなんじゃね? DirectX〜系の別スレがよろしいかと・・・
651 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:52:12 ] >>644 MSDN に PEFILE.cpp というサンプルがあって、.exe/.dll の先頭から .rsrc section を割りだし、section 内のテーブルを追い掛けると、 個々の rsrc leaf に行き付ける例があったと思う。 dialog template の構造は MSDN に説明があった。 ただ、これらを取り出したり、差し替えたりするのに、ファイルとして 開く際、使用中だと開けないことがある。開く際の属性を指定すると 可能なのかも知れないが。
652 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:30:31 ] >651 いや、メモリに一度読み込めば問題なし。 昔、ダイナミックにダイアログリソース作ったときはそうやったよ。
653 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:36:48 ] GetCommandLine関数を利用する場合、 みんあはや空白の分割とかどしてる? 思いつき関数作ったけど、意見求む。
654 名前:653 mailto:sage [2007/04/10(火) 23:38:46 ] 前半 DWORD OrderCommandLine(LPTSTR lpBuffer, LPDWORD lpcchBuffer) { DWORD i, dwLen, dwPos, dwCnt, dwDiv; TCHAR tcChr; TCHAR szCmd[0xFFFF]; TCHAR szDmy[0xFFFF]; int fDQ; LPTSTR lpszCur; /* 初期化 */ ::lstrcpy(szCmd, ::GetCommandLine()); dwLen = (DWORD)::lstrlen(szCmd); szCmd[dwLen++] = _T('\0'); /* 捜査 */ for (i = 0, dwPos = dwDiv = 0, fDQ = 0, lpszCur = szCmd; i < dwLen; i++, lpszCur++){ tcChr = *lpszCur; if (tcChr == _T('\"')){ fDQ = !fDQ; }else if ((!fDQ) && (tcChr == _T(' '))){ tcChr = _T('\0'); } szDmy[dwPos++] = tcChr; if (tcChr == _T('\0')){ dwDiv++; } } szDmy[dwPos++] = _T('\0');
655 名前:653 mailto:sage [2007/04/10(火) 23:39:39 ] 後半 /* 整理 */ dwCnt = 0; if (dwDiv > 0){ for (i = 0, dwPos = 0, lpszCur = szDmy; i < dwDiv; i++, lpszCur++){ dwLen = (DWORD)::lstrlen(lpszCur); if (dwLen > 0){ ::lstrcpy(&szCmd[dwPos++], lpszCur); lpszCur += (dwLen); dwPos += (dwLen -1); szCmd[dwPos++] = _T('\0'); dwCnt++; } } szCmd[dwPos++] = _T('\0'); } /* 結果 */ if (lpcchBuffer){ if (*lpcchBuffer >= dwPos){ *lpcchBuffer = dwPos; if (lpBuffer){ ::CopyMemory(lpBuffer, szCmd, dwPos * sizeof(TCHAR)); } } } return dwCnt; }
656 名前:653 mailto:sage [2007/04/10(火) 23:42:59 ] DWORD OrderCommandLine(LPTSTR lpBuffer, LPDWORD lpcchBuffer)の LPTSTR lpBufferはバッファ LPDWORD lpcchBufferはlpBufferのサイズ(文字単位)の入った変数のポインタ んでOrderCommandLineは分割した数を返す。 どっかおかしいとこない?
657 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:48:04 ] 自作せずにCommandLineToArgvWを使ったほうが楽なのでは?
658 名前:653 mailto:sage [2007/04/11(水) 00:01:57 ] >>657 CommandLineToArgvW関数はしりませんですた... orz 調査してみますね。
659 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:07:01 ] main関数のargc, argvは駄目なの? main関数から始まるけどコンソールプログラムでないというのは変わっているかもしれないけど。
660 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:13:42 ] boostにコマンドライン解析があった希ガス
661 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:25:19 ] >>659 WinMain関数のLPSTR lpszCmdLine問題があったので、 片手間で作成してみました。 そりゃ、_tmain関数みたいなのが、一番いいですが。 >>660 ttp://www.boost.org/ですよね? ここも見てみます。
662 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:25:41 ] __argv,__argcとかいうのもあったような
663 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:43:11 ] Googleからも出てる。 ttp://code.google.com/p/google-gflags/
664 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 03:12:11 ] CommandLineToArgvW以外はスレ違いじゃね? >>661 _tWinMain VC++以外や、VC++でもバージョンによっては存在しないみたいだが その場合はGetCommandLineW つーかCommandLineToArgvWは_tmainが存在しなかったバージョンのVC++で GetCommandLineWと組み合わせて使うために提供されていた(だからW版しかない)ので
665 名前:653 mailto:sage [2007/04/11(水) 08:17:09 ] >>664 情報ありがとうございます。 へー_tWinMain関数ってあるんですかー。 特に変な意識して、関数作る必要もなかったのかな? 一回、整理して考え直してみます。 皆様ありがとうございました
666 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:55:12 ] >>644 不可視でダイアログ開いて、GetDlgItemText()したら?
667 名前:デフォルトの名無しさん [2007/04/11(水) 11:33:08 ] CSV(カンマテキスト)を分割するAPIを教えてください
668 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 11:59:02 ] ない
669 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:55:54 ] ウィンドウズの起動時間(timeGetTimeやGetTickCountで返される数値)を変更する方法ありますか? DirectShow辺りが怪しいので デバッグで24日間放置した状態にしたいのです
670 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 13:05:35 ] >>669 hookして、好きな値返すとか?
671 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 13:13:31 ] >>668 ADO等で出来なくもない気もするが
672 名前:デフォルトの名無しさん [2007/04/11(水) 13:45:05 ] 猫でもわかる・・の第10章タイマーで、コーディングして実行したところ、 一応動くのですが、文字列が再描画されず、字が重なったようになって しまいます。この場合、うまく表示するにはどうしたらよいでしょうか? よろしくお願いします。
673 名前:デフォルトの名無しさん [2007/04/11(水) 13:56:55 ] 大学院レベルの猫にしかわからないってことだね
674 名前:672 [2007/04/11(水) 13:57:59 ] ↑で質問したものです。 InvalidateRect(hWnd, NULL, FALSE); こいつを InvalidateRect(hWnd, NULL, TRUE);にしたらなおった。 でも載ってるのは最初のほうですよね。 なんかほかに方法があるのかなぁ
675 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:01:28 ] つ SetBkMode
676 名前:672 [2007/04/11(水) 14:04:28 ] >>675 実装済みです
677 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:14:29 ] 前と同じ幅の文字で上書きしてないとか
678 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:33:38 ] >>676 TRANSPARENT で描画、リクエストをInvalidateRect(...FALSE) にしてたら 672 のように多重の重ね書きになるわけだが? まぁ、OPAQUEにしたところで、文字列の実描画長が短くなったら なんらかの方法で背景色で消すコードを書くはめにはなるがね
679 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:34:58 ] fillrect
680 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:41:57 ] ExtTextoutを結構多用したなあ
681 名前:デフォルトの名無しさん [2007/04/11(水) 16:34:21 ] 質問です。 親のウインドウとは独立した子ウインドウで、親よりは必ず前面に。 ただし他のアプリのウインドウがより前面にある時は(親ともども)きちんとそのウインドウの背面に。 というウインドウをCreateWindowExで簡単に作ることはできないでしょうか。 ・子ウインドウは、親ウインドウの中に存在するわけではない(つまりWS_CHILDではない?) お絵かきツールのパレットウインドウなんかがこんな感じ。 ・WS_EX_TOPMOSTにすると、他のアプリのウィンドウよりも前にきてしまう
682 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 16:45:13 ] 殆ど自分で答え言っているような気がす… 親をオーナーにして (WS_CHILD と排他な)WS_POPUP で作れば良いんじゃない?
683 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 16:46:37 ] >>681 WS_POPUPとWS_EX_TOOLWINDOWつけてみたらどう?
684 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 16:51:40 ] >>681 ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/aboutwindows.asp >A window can own, or be owned by, another window. An owned window always appears in front of its owner window, >is hidden when its owner window is minimized, and is destroyed when its owner window is destroyed.
685 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 16:56:53 ] ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowfeatures.asp Owned Windowsのところをよく読め
686 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:00:46 ] 日本語でおk
687 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:12:48 ] アドバイスありがとうございます。 とりあえずWS_CHILDとWS_POPUPは共存できないようです。 D-Pixedのツールウインドウが同じ実装になっていたのを思い出し、Spy++で覗いてみました。 >>683 さんの言うとおりのオプションを使っていましたが、それが原因で望んだ挙動をしているわけではないようです。 とりあえず下記を、親と子両方に入れてやったところ上手く狙った挙動ができているようです。 なので問題ないといえばないのですが、より上手い方法があれば教えていただけると幸いです。 if (WA_INACTIVE != wParam) { ::SetWindowLong(hChildWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW | WS_EX_TOPMOST); ::SetWindowPos(hChildWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); } else { ::SetWindowLong(hChildWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW); ::SetWindowPos(hChildWnd, hParentWnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); ::SetWindowPos(hParentWnd, hChildWnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); }
688 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:13:57 ] 他アプリウィンドウ - オーナー - ポップアップ - (最前面) で 他アプリウィンドウをタスクバーのクリックでアクティブにすると、 オーナー - 他アプリウィンドウ - ポップアップ - (最前面) ってなることがあるんだよなあ。 Alt+Tabだと発生しないけど、なんだかなあと思う。
689 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:25:44 ] >>687 共存できないとわざわざ書いたのはなぜ? もしかして>>682 を誤解してる?
690 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:29:41 ] >>687 >より上手い方法があれば教えていただけると幸いです。 そういうウィンドウはOwned Windowと言います。>>685 のリンク先を読んでください。
691 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:29:47 ] …なぜに SetWindowLog & SetWindowPos なんだ? CreateWindowEx でのスタイル指定で解決できるのに… ターゲットの窓が他プロセスの持ち物なのか?
692 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:32:35 ] >>689-691 すいません、682さんを誤読した上に、685さんのレスとレスがすれ違いました。 WS_POPUPとは、親ウインドウを持つウインドウのことだったのですね。 正直、オーバーラップウインドウと、ポップアップウインドウの区別がわからず 今ググっていて682さんの文章に対する誤読に気づきました。 685さんのリンク先を実践してみます
693 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 17:50:25 ] 解決できました。 WS_POPUPの解説である「ポップアップウインドウを作成する」の「ポップアップウインドウをはなんぞや? という知識が無かったのが問題でした。 ポップアップウインドウそのものが、私の望んでいたもののようです。 WM_ACTIVEなどをまったく使わずWS_POPUPを指定しただけで解決できました。 ありがとうございました。
694 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:43:50 ] DOS窓で、CreateWindowてどうやるの? メッセージループとか。
695 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:53:29 ] どうやってやるも何も普通に出来るだろ。 いったい何を言っているんだ?
696 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:40:30 ] >>694 日本語でおk
697 名前:デフォルトの名無しさん [2007/04/12(木) 03:17:19 ] ソースコードを読んで勉強したいのですが、C言語 + Win32 API で書かれたオープンソースのアプリケーションでお薦めって何かありますか? 実践的なコードの書き方を勉強したいので、お手本になりそうなアプリがあったら教えてください。 また逆に、「このソフトの書き方は真似するな」的なのもあれば教えて頂けると有り難いです。 宜しくお願いします。
698 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:13:51 ] > お薦めって何かありますか 猫でもわかる > このソフトの書き方は真似するな 猫でもわかる
699 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:16:14 ] >>698 禿道と言わざるを得ない
700 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 07:39:02 ] あまりにも禿同杉てワラタw
701 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 08:18:22 ] ヒントにはなるが真似は出来ない
702 名前:デフォルトの名無しさん [2007/04/12(木) 09:19:39 ] 左右分割ウインドウをMFCを使わずに作っているのですが、相談させてください。 まず、ウインドウ全体を親ウインドウとします。 子ウインドウとして 「左側用にWS_THICKFRAMEを使ったウインドウをちょっと大きめに作って配置」 「右側に余り部分の大きさ分のウインドウ」 を貼り付けて実現しています。 左側用のウインドウの大きさが変化するたびに、右側のウインドウの大きさも変更されるようにしています。 ただ、WS_THICKFRAMEは角の近くだと「マウスドラッグで縦横の大きさを変えられる」モードになってしまいます。 まず「横の大きさしか変えられないウインドウ」は作れないのでしょうか? それをさせないために今は「上下に大きめに作る」ようにしているのですが(角付近を触れないように)、ウインドウはデスクトップウインドウのサイズより大きくは作れないようです(?)。 そのため親ウインドウをデスクトップ画面並に大きくされてしまうと困ってしまいます。 何か対策はありませんでしょうか? 左右ができれば、上下はその応用で作成可能だと思います。
703 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 09:30:11 ] >>702 左右の境界に少し隙間を開け、そこをドラッグすると左右に大きさが変わるようにする。 というようにMFCはなってたと思う。
704 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 09:47:03 ] >>703 なるほど。つまり自前でドラッグシステムを作っているわけですね。 WS_THICKFRAMEを使った方法も、この斜め問題さえ解決すれば実用に耐えるのですが…。 とはいうものの、WM_SIZEを捕まえて上下の大きさが変更されたら強制的に元に戻す処理は入れています。 ただそれは格好悪いもので、もし良い方法があればと思って相談しにきました。
705 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 10:44:16 ] WM_GETMINMAXINFO捕まえたらどうだろう MFCしか使ってないんで良く分からないけど
706 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:34:55 ] >>705 できました! まったく知らないWMでした。ありがとうございます。 これで tagMINMAXINFO *p = (tagMINMAXINFO*)lParam; p->ptMaxTrackSize.y += 128; としてやることで、デスクトップサイズよりでかいウインドウを作ることに成功。 期待通り動作できるようになりました。
707 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:48:53 ] >>702 ,706 WM_NCHITTESTを捕まえてDefWindowProc()が HTTOP,HTBOTTOM,HTTOPLEFT,HTTOPRIGHT,HTBOTTOMLEFT,HTBOTTOMRIGHTのときだけ もみ消してしまう方がいいのでは?
708 名前:デフォルトの名無しさん [2007/04/12(木) 11:53:52 ] スクリーンショットを撮るAPIってありますか
709 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:00:33 ] >>707 ウィンドウの四隅(スプリットバーの端っこ)が使えなくなるんでお薦めできない それで無効になる領域って結構大きいし
710 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:02:23 ] >>708 GetDC
711 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:29:16 ] >>709 言われてみれば確かに…。16*16ほどか。 なら、座標計算して嘘の値を返すなんてのはどう? 例えば、DefWindowProc()がHTBOTTOMRIGHTの場合で マウスが右の方にあるときはHTRIGHTを返し、下の方にあるときは0を返すとか。
712 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:35:13 ] >>710 その答えで>>708 が報われる事は絶対に無いだろう
713 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:36:19 ] >>707 そこまでするぐらいなら普通に>>706 でいいと思うんだが… まあどっちみちWM_NCHITTESTは使うんだけど。 例えば左右に動くスプリットバーがあったとして、 その端っこにポインタを合わせたら斜め向いたカーソルが出るんじゃ 格好がつかないんで HTTOPLEFTを受け取ったらHTLEFTを返す、みたいなことをする
714 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:37:31 ] なんかアンカー間違えたり誤読したりで嫌になってきた
715 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:40:03 ] 適当にぐぐったらすぐサンプルコードが見つかったんで、ついで。 >>708 ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/ScreenCapture.html
716 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:10:09 ] >>713 斜め向いたカーソルがでないように、上下64ドットずつ大きいウインドウを作りました
717 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 17:35:48 ] 普通は自前で全部やるものだよ。作り直したほうがいい。
718 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 18:12:40 ] >>717 ______ _ _| ̄|_ _ _ |____ | | | 口口 |_ _| \\ | | __ __ __ / / | | | | _  ̄ ___ | | |__| _| |_| |_ / / | | _ | | _| |_ |___| | | |_ _ _\ | | | \_/ / / / /。 _| | | ___ .| |.|__|/ / \\ \ /  ̄ \/ | | |___| |__|  ̄  ̄  ̄ ̄  ̄
719 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 18:30:06 ] >>702 Splitterなんて死ぬほどサンプルあるよ www.codeguru.com/cpp/w-d/splitter/ 君の場合は、手を抜こうとして逆に面倒なことになってる気がする。 素直にフルスクラッチした方が楽だと思うよ。
720 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 21:06:03 ] WTLのスプリッタのソースが見やすいと思われ
721 名前:デフォルトの名無しさん [2007/04/12(木) 21:58:22 ] すみません いまコンソールのC言語のプログラムを WinMainで始まるプログラムでも使えるようにしようとしている のですがエラーがでてしまいコンパイルできません エラーの内容はunsigned char*をchar*に変換できません等のものなのですが なんとかソースを書き換えずにコンパイルできるようにできないものでしょうか?
722 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:04:32 ] え、キャストしちゃいけないの?
723 名前:デフォルトの名無しさん [2007/04/12(木) 22:10:59 ] キャストすると1000ヶ所以上あってどうにもならない感じです
724 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:12:58 ] BCCにするんだ
725 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:14:49 ] 置換使えないのかい
726 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:18:07 ] 1000箇所ぐらいなら1時間で何とかなると思うが・・・ というかSuletiGay
727 名前:デフォルトの名無しさん [2007/04/12(木) 22:20:01 ] 置換も使えなさそうです 文字列の型にunsigned char*を使っているのが問題のようで 置換をしようにもどうにも絞れません
728 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:23:39 ] #define unsigned
729 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:29:26 ] charをデフォルトでunsignedとみなすコンパイルオプションがなかったっけ?
730 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:29:47 ] VCには存在するな
731 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:05:42 ] unsigned char*からchar*へ変換できないなんて、 単にWindowsプログラムのほうではC++としてコンパイルしているだけだと思う。 Cなら(警告は出るだろうが)エラーにならずにコンパイルできるはず。
732 名前:デフォルトの名無しさん [2007/04/12(木) 23:21:58 ] コンパイルオプション/Jでは配列のunsignedchar*がchar*に変換できないらしく だめでした情報ありがとうございます
733 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:26:48 ] とりあえず F4 でエラー行に飛べることを知ってるだけで 効率はかなり変わると思うよ F4 → カーソル移動 → Ctrl+V → (以下ループ)
734 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:27:36 ] ごめん、VC 限定ね… VC スレと勘違いした
735 名前:デフォルトの名無しさん [2007/04/12(木) 23:52:06 ] いえ、ありがとうございます ですが元のソースはいじるわけにはいかないんですよ ちょっと勝手に書き換えるとまずい事情がありまして
736 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:59:12 ] WinMainから始まろうと、mainから始まろうと、 同じCのソースコードであることに変わりはない。 片方でコンパイルできたものが、もう片方でコンパイルできないなんて、 (argc/argcやmainそのものに依存している場合などを除いて)有り得ない。 >>731 は試した?
737 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:00:18 ] >>735 そういうことってよくあるよね。 あ〜邪魔臭いコードでもいじれない。
738 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:22:56 ] >>735 Cでは警告は出ないようだ。 こんな感じでC++とCのコードは混ぜることが出来る。 extern "C" { #include "古いコード.h" } cl 新しいコード.cpp 古いコード.c
739 名前:デフォルトの名無しさん [2007/04/13(金) 01:03:16 ] とりあえず古いソースのヘッダをincludeしている箇所を extern "C"{}で囲ってみましたが効果ないっぽいです 情報ありがとうございます
740 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:18:34 ] >>739 意味わかってないだろ
741 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:26:44 ] IDEから使うと /TP がデフォになってるな。 これをはずせば拡張子に応じたコンパイルをしてくれるが、 プリコンパイルヘッダーやら他のところで引っ掛かりが出てるよ。 混ぜるのはこいつのレベルじゃ無理かもしれんね。
742 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:35:23 ] 文字列に付けるszってなんですか?
743 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:39:19 ] Win32APIでは構造体のサイズを取得してそのサイズを構造体にセットするというのをよく使いますが、 何故このようなやり方をするのでしょうか?
744 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:42:10 ] >>742 ハンガリアン記法
745 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:43:57 ] >>743 バージョンが上がって仕様が変わって構造体の内容が変わっても 互換性を維持するため。
746 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:06:09 ] まじ?
747 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:09:16 ] >>742 zero(\0)終端string(文字列)の略
748 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:36:38 ] nsはなんですか?
749 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:46:51 ] >>748 質問まとめてしろよ
750 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 12:01:00 ] >>746 >745のことならマジ。
751 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:47:56 ] ちょっと思うんだけど、 ファイルパス長ってMAX_PATHバイト?MAX_PATH文字数? MAX_PATHバイトだったら、マルチバイト文字で半分になるんだけどいいの? それとも、 #define MAX_PATH_NAME (MAX_PATH * (2 / sizeof(TCHAR))) な事すんの?
752 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:50:14 ] 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するからMAX_PATH自体あまり意味無いような・・・
753 名前:751 mailto:sage [2007/04/13(金) 13:50:49 ] 補足 TCHAR szFile[MAX_PATH_NAME + 1]; とつかうとして
754 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:57:06 ] まあDOS/Windows 3.1時代の遺物なんで
755 名前:751 mailto:sage [2007/04/13(金) 14:01:31 ] >>752 CreateFileの説明の通り In the ANSI version of this function, the name is limited to MAX_PATH characters.To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path. For more information, see Naming a File. ワイド文字で32767文字って事は、65534バイト宣言しとけばいいの? ちょいもったいない気が・・・
756 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 14:19:59 ] 必要に応じて動的に確保すればいいんじゃないの? どうしても固定長にしたいわけ?
757 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 14:24:08 ] OPENFILENAME の戻り用の器は MAX_APTH 使った固定長だな。
758 名前:751 mailto:sage [2007/04/13(金) 14:36:11 ] >>756 固定長にしたい理由というわけじゃありませんが、 明確な理由があれば、それに準じたいと思っています。 もちろん、実用的な側面でも判断しますが
759 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 15:23:35 ] ぐだぐだ言ってないで実用的な面でどうなるか 試してみろよ。 FAT32,NTFS,共有ドライブで長い名前のファイル名作るくらいできないの?
760 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:02:48 ] 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから 文字数でもバイト長でもMAX_PATH以上のファイルパスって普通に存在するから
761 名前:デフォルトの名無しさん [2007/04/13(金) 17:07:47 ] >>760 うるさいばか
762 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:12:13 ] >>758 9x系OSでANSI版のAPIつかってみなはれ ちなみにMSでは、MAX_PATHは文字数としてあつかっとるよ 稀にMS社内でも開発者が混乱してしもて、 大穴あけてしもうたこともあるけどね
763 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:13:42 ] まったく1文字1Byteの連中はこれだから・・
764 名前:デフォルトの名無しさん [2007/04/13(金) 17:25:11 ] >>763 初心者にこのスレは不向きですよppp
765 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:26:38 ] >>751 これ以上はスレ違い APIではなくコーディングの話なら Cスレに行け
766 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:35:44 ] >>764 欧米の方ですか?
767 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:47:03 ] いいえ東亜です。
768 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:52:25 ] >>763 いや、ワイドキャラクタでも1文字2バイトじゃ済まないはずなんだが。 サロゲートペアとかあると4バイトになる。 あれ、Win32APIってUCS-2のままだったっけ? まぁサロゲートペア対応しても、そもそも文字の定義ってなに?ってなるし。
769 名前:デフォルトの名無しさん [2007/04/13(金) 18:14:56 ] ファイルの更新日時を変更するAPIを教えてください
770 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:23:11 ] GetFileTime
771 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:26:48 ] Sじゃねーのか
772 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:28:36 ] お前さん頭いいな。
773 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:36:47 ] Mですから
774 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:42:44 ] >>768 ビル・G 数種類の奇妙な文字で文章を書く、親愛なる日本人の皆さん。 私はアルファベット26文字で美しい詩的な文章を綴り、人々を感嘆させるビル・Gである。 ユニコードとは何か。簡単に言えば、あらゆるプラットフォームで様々な言語を共通に扱えるようにするための統一的なコード体系のことだ。 もっと簡単に言おう。アルファベット以外の野蛮な絵文字を使ってコミュニケートする第三世界の人間に対する、心からの配慮だ。 今までも手を焼いてきた。2バイトコードの各国語対応も、少しは楽になるのだけどね。 君たちの国でも、ユニコードの問題が盛んに議論されているようだね。 日本や中国や台湾で使っている漢字コードやフォント違うって? それは君たちが今までに勝手な文字を作りすぎてきたツケに過ぎないよ。 また、『固有の文化』という言葉で語られる微妙な差異に関する議論は、 私にはちょうど「靴下は右足から履かなければならない」 「いや、左足から履くのが伝統だ」と言い争いをしているようにしか聞こえない。そんなことはどうでもいいじゃないか!
775 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:54:31 ] 拘りすぎてバカを見るのが東洋人 大雑把過ぎてバカを見るのが欧米人
776 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 19:25:50 ] CJK以外にもBidiとか言語タグとか対応するのが 遅かったねぇ。 BMPを16bitじゃなくて32bitにしてれば、もう少し問題先送りできたのに。 あとはユニコードまでも取り込んだGB18030とかどうするんだろうっていう。。。
777 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 19:31:01 ] XP以降のメモ帳で右から左に読むにして Hello, World打つだけでも軽く死ねるなw
778 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 20:22:24 ] 神の罰です
779 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:24:16 ] >>748 ナノ秒 冗談じゃなくて素直に考えて
780 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:26:31 ] >>768 ファイル名の制限という観点ではコードユニットの数で数えるから関係ない
781 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:31:48 ] ウニコードはうまそうだ
782 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:42:17 ] >>780 NTFSはどのエンコーディングを使ってんの?
783 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:54:10 ] >>780 ドキュメント上の問題のことです。 n文字という表現では最大バイト数は判りにくい。
784 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:54:42 ] >>782 おそらくUTF-16
785 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:55:22 ] もちろんUTF-16LE
786 名前:デフォルトの名無しさん [2007/04/13(金) 23:01:50 ] 結局、MAX_PATHの単位はなんなんだ? 明らかにバイト数じゃない 文字数も数えてみたがなんかちがう 会社によって1バイトのズレも許さないからこのあいまいな仕様がかなりムカつく ちなみにファイルダイアログの最長はXPSP1までは0xFFFFだったがXPSP2からはどこまではいるのかよくわからん ドラッグアンドドロップの限界は一体どこなんだ?
787 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:18:44 ] WinNTのNTFSドライバのパス名制限が (2^15-1) UTF-16符号単位だったと思うが
788 名前:751 mailto:sage [2007/04/13(金) 23:29:46 ] >>759 もちろん、\\.\〜の長いファイル名前をCreateFileで作成し、 動作を確認しています。 しかしながら、エクスプローラも捕らえられないファイル名は実用的か? それともMAX_PATH以上32767文字以下で、もっともらしい定数があり、 自分が知らないだけかわからんとです。
789 名前:デフォルトの名無しさん [2007/04/13(金) 23:44:40 ] GUIアプリでコンソールを表示するにはどうすればいいのでしょうか? やりたいことは、 ・起動した時にはコンソールアプリのように振る舞う。 ・ある入力があった時点でウィンドウを表示し、GUIアプリとして振舞う main()で起動するとコンソールは出ますが、WinMain()の第一引数で取得できる HINSTANCEが取得できないので、GUIアプリとして振舞えない。 WinMain()で起動するとGUIは出せるが、コンソールへ出力を行えない。 WinMain()でGUIアプリとして起動しておいて、必要に応じて(何らかの関数呼び出しによって) コンソールを表示させるのが正しいやり方なのかと思っていますが、調べてもやり方が見つかりません。 どなたかお助けを・・・
790 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:49:13 ] >>789 HINSTANCE == GetModule(0) だったハズ。
791 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:51:05 ] コンソール部分は別にしてCreateProcessは?
792 名前:791 mailto:sage [2007/04/13(金) 23:51:06 ] あ、すまん間違えた。 ×:GetModule ○:GetModuleHandle
793 名前:792 mailto:sage [2007/04/13(金) 23:52:04 ] >>792 ==>>790 !=>>791 もう寝る!
794 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:54:36 ] >>789 CreateProcess, GetStdHandle, SetStdHandle, CreatePipeでリダイレクト。
795 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:54:38 ] AllocConsole stdout
796 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:56:39 ] コンソール プロセスを生成して標準ハンドルをリダイレクトする方法 support.microsoft.com/kb/190351/ja
797 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:00:43 ] >>789 WinMainから始まるプログラムにAllocConsoleを使う方法も出ているが、 個人的には、手間要らずにC stdioやC++ iostreamを使えるので、 mainから始まるプログラムにした方がいいと思う。 EXEのインスタンスハンドルは791のとおりGetModuleHandleで。
798 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:31:27 ] >>777 前からおもってたのだが、右から左に読む文化圏に対応してるなら、 上から下に読む文化圏にも対応してていいんじゃないかと思ったりするのだがまぁいいや。 そういえば、昔、Macのことえりだったか縦書きIME変換やってくれてた記憶があったな〜
799 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:44:47 ] MS-IMEも、Wordなんかで縦書きにすればそれにあわせてくれる。
800 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 06:13:01 ] 質問です。GetProcAddressを使ってDLL内の関数を呼び出したいのですが、 上手くいきません。プログラムを実行すると、そのまま強制終了してしまいます。 FARPROC SetHook,ResetHook; SetHook = GetProcAddress(LoadLibrary(TEXT("hook.dll")),TEXT("_SetHook")); ResetHook = GetProcAddress(LoadLibrary(TEXT("hook.dll")),TEXT("_ResetHook")); として関数のアドレスを取得しています。各関数のアドレスは SetHook : 011412A0 ResetHook : 011412D4 でした。tdump.exeでは Exports from hook.dll 3 exported name(s), 3 export addresse(s). Ordinal base is 1. Sorted by Name: RVA Ord. Hint Name -------- ---- ---- ---- 000012D4 1 0000 _ResetHook 000012A0 2 0001 _SetHook 00009158 3 0002 ___CPPdebugHook という結果が得られました。 GetProcAddressの使い方が間違っているのでしょうか? コンパイラの設定に問題があるのでしょうか? どのあたりに原因があるのか指摘して下さい。お願いします。<(_ _)> コンパイラはBCCです。BCC Developerでビルドしています。
801 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 06:20:21 ] GetProcAddress の第2引数は LPCSTR だが。
802 名前:800 mailto:sage [2007/04/14(土) 06:38:04 ] >>801 SetHook = GetProcAddress(LoadLibrary(TEXT("hook.dll")),"_SetHook"); ResetHook = GetProcAddress(LoadLibrary(TEXT("hook.dll")),"_ResetHook"); としたのですが、上手くいきません。関数名の指定が間違っているのでしょうか?
803 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 06:46:26 ] >>800 まずは「強制終了」する場所を探らないと。 その情報だけじゃ、GetProcAddress() 絡みの問題かどうかなんてわ からん。
804 名前:800 mailto:sage [2007/04/14(土) 06:57:58 ] >>803 関数の呼び出し時に強制終了します。 インポートライブラリを通しての呼び出しには成功したのですが。
805 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 07:02:09 ] それはGetProcの問題じゃないだろうな FARPROCの宣言はどうなってる?
806 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 07:07:26 ] >>804 インポートライブラリを通しての呼び出しには成功ってんだったら GetProcAddressで失敗なんじゃなくて それで取った情報を使う時の失敗だろ どうやって関数呼び出してんのか見せてみぃや
807 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 07:12:39 ] >>805 VCだと「typedef int (*FARPROC)(void)」だが、BCCはどうなんだろう・・・ ていうかそのまんま使ったら普通コンパイルとおらないかも?
808 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 07:16:41 ] 呼び出し規約が間違っている。それでスタック壊れているんだろ。
809 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 07:18:09 ] 普通目的の関数に合致した関数ポインタの型を定義してそれで使うもんじゃね? ただのFARPROCにぶち込んでるヤツ初めて見た
810 名前:800 mailto:sage [2007/04/14(土) 07:39:35 ] >>805-809 レスありがとうございます。 #define EXPORT __declspec (dllexport) typedef EXPORT HHOOK (*SETHOOK)(const HWND hCaller); typedef EXPORT void (*RESETHOOK)(void); SETHOOK SetHook; RESETHOOK ResetHook; と関数ポインタの型を定義してから SetHook(hWnd); ResetHook(); という感じで呼び出してみたのですが、やはり上手くいきません。
811 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:02:06 ] もう一度レスを見直すんだ。そこに答えがある。
812 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:17:26 ] VC2005でstrlen等を使うと
813 名前:800 mailto:sage [2007/04/14(土) 08:17:48 ] >>811 呼び出し規約の整合性に問題があるのでしょうか? もう少し詳しく教えて頂けないでしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:34:30 ] 提供する側では__declspec (dllexport)が必要だろうが 使う側では要らないだろ。 提供する側でも使う側でも__stdcallとかを指定したほうが安全。 デフォルトに任せれば同じになっている可能性が高いけど 不一致になる危険性がある。 GetProcAddressじゃなくて暗黙のリンクでもいえることだけどね。 GetProcAddressの戻り値が0ってことはないよね。
815 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:56:00 ] >>810 DLL側のソースでその2つの関数がどう定義されているかもチェック
816 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:57:17 ] うまくいかないのと直接の関連はないが、 一々LeadLibraryするな。 1回ロードしたら、そのハンドルを使いまわせ。
817 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 08:58:36 ] LeadLibrary
818 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:01:36 ] 一度だけLoadLibraryして、そのハンドルを保持して使うってのもそうだけど GetProcAddressに直接ぶち込むのもどうかと 誤動作の原因になる可能性は充分にあるかと
819 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:06:34 ] 誤動作するとは思えないが、直接GetProcAddressに渡していたら、 FreeLibraryするのに不便だろう。 GetModuleHandleで後から解放用にハンドルを得るなんて無茶も甚だしい。
820 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:08:22 ] 誤動作するとは思えないって思うのが危ないな 常に誤動作するかも知れないと思ってコーディングすべし
821 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:09:01 ] >>787 UNICODE_STRINGの構造上の問題だな 同様の理由でNT系はコマンドラインの長さにも32767文字(UTF-16符号単位)制限がある 驚くべきことにWin9xだとコマンドライン長が1MB超えても大丈夫。
822 名前:800 mailto:sage [2007/04/14(土) 09:09:21 ] >>814-819 レスありがとうございます。 DLLの関数を #define EXPORT __declspec (dllexport) EXPORT HHOOK WINAPI SetHook(const HWND hCaller); EXPORT void WINAPI ResetHook(void); とし、関数を呼び出すプログラムで typedef HHOOK WINAPI (*SETHOOK)(const HWND hCaller); typedef void WINAPI (*RESETHOOK)(void); SETHOOK SetHook; RESETHOOK ResetHook; HMODULE hook_lib; hook_lib = LoadLibrary("hook.dll"); SetHook = GetProcAddress(hook_lib,"SetHook"); ResetHook = GetProcAddress(hook_lib,"ResetHook"); として関数を呼び出したのですが、やはり駄目です。GetProcAddressの戻り値を 再度確認したのですが、0ではありませんでした。
823 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:10:20 ] 32767文字を超えるコマンドライン自体普通無いだろ・・・
824 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:12:32 ] typedefのWINAPI要らなくね?
825 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:18:50 ] >>822 あんまり関係ないけどGetProcAddressの戻り値ってキャストしなくてもコンパイル通るのか?
826 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:58:58 ] 関数ポインタの宣言なんだが・・・ typedef HHOOK (WINAPI *SETHOOK)(const HWND); typedef void (WINAPI *RESETHOOK)(void); じゃねーの?WINAPIの位置が違うとか。 >>825 警告が出るだけだったような。
827 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:03:42 ] 呼び出し規約の記述位置は括弧の中だね。 戻り値に付属なわけじゃなくて、 関数に付属する情報だからなんだろうけど、 最初は戸惑うよね。
828 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:07:09 ] Borlandの昔のコンパイラだと微妙に仕様が違ったり 標準キーワードじゃないから仕方ないけど
829 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:14:48 ] なんでだろうね? 間違って古いDLLが残っているとか。
830 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:18:02 ] DLL側と呼び出し側のソースをまとめてうpってもらった方が話が早くていいかもしらんな
831 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:20:56 ] VCの場合、 #define EXPORT __declspec(dllexport) EXPORT HHOOK WINAPI __stdcall SetHook(const HWND hCaller); EXPORT void WINAPI __stdcall ResetHook(void); こうじゃないかな。__stdcallはなくても動きそうな気がするけれど
832 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:27:28 ] >>831 WINAPIは #define WINAPI __stdcall とかされてるだけだから、どっちかだけで十分
833 名前:800 mailto:sage [2007/04/14(土) 10:33:36 ] >>824-832 レスありがとうございます。 typedef HHOOK (WINAPI *SETHOOK)(const HWND hCaller); typedef void (WINAPI *RESETHOOK)(void); SETHOOK SetHook; RESETHOOK ResetHook; HMODULE hook_lib; hook_lib = LoadLibrary("hook.dll"); SetHook = (SETHOOK)GetProcAddress(hook_lib,"SetHook"); ResetHook = (RESETHOOK)GetProcAddress(hook_lib,"ResetHook"); としたのですが駄目でした。VCのExpress Editionで上手くいくかどうか試してみます。
834 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:38:30 ] >typedef HHOOK (WINAPI *SETHOOK)(const HWND hCaller); 今思った 引数は型だけで名前はイラネ
835 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:40:22 ] >>800 Borlandデバッグ環境は知らんが、DLL側のSetHook()の入り口にブレークポイント仕掛けるなり、MessageBox() 出すなりして、そこまで来ているか(強制終了がどの段階で起きているか)確認しろ。 関数名から何がやりたいか想像はつくが、もう少し経験をつんでからやることを強く勧める。
836 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:42:32 ] つーか無理にLoadLibraryでやらんでもいいことだけどな
837 名前:デフォルトの名無しさん [2007/04/14(土) 10:47:16 ] そりゃまあごもっともです
838 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 10:48:32 ] >>800 >>インポートライブラリを通しての呼び出しには成功したのですが。 が本当なら、そのヘッダーファイルでの関数プロトタイプ宣言(は正しいはずだからこれ)にあわせろ。 おれもお前には、Hookは10年早いと思う。
839 名前:800 mailto:sage [2007/04/14(土) 12:15:58 ] >>834-838 レスありがとうございます。 マウスフックを使ったプログラムを作成しています。システムフックにより 他のウィンドウのタイトルを変更することには成功しました。そのため、 フックの処理自体には問題が無いと考えているのですが。 VCで実行してみたのですが、SetHook内で処理が中断しました。 インポートライブラリを使用した場合、何も問題は起きなかったのですが。(?_?)
840 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 13:02:13 ] SetWindowTextでタイトルが変わらないとか騒いでた奴か。 やっぱりおまえには早いと思うぞ
841 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 15:40:25 ] DLL や EXE に含まれているリソースの番号だけって取得できますか? たとえばこの DLL の STRINGTABLE には、1000番 1001番の STRING が含まれています、という感じの API です。
842 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 15:45:04 ] FindResoource?
843 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 15:45:31 ] EnumResourceNames()
844 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 16:57:55 ] 「普通ないだろ」が生む○○問題
845 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:00:38 ] >>825 Cだとコンパイルできる C++だとコンパイルできない
846 名前:デフォルトの名無しさん [2007/04/14(土) 18:26:15 ] なんで最近そんなことになってんだろうね C言語でコンパイルできたソースが普通にC++で通らん
847 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:37:39 ] [アニメ DVD] ヤミと帽子と本の旅人 第04話 「マリエル」 (640x480 DivX511).avi
848 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:40:03 ] >>846 C++は、例えCとの互換性を失ってでも危険な香りがする暗黙の型変換を禁止した。 これだけは譲れないというやつ。
849 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:42:44 ] 思いややりが無い朝鮮人的な思考だ
850 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:48:31 ] つーか、すっぱりと別言語にしちゃえば良かったのに 中途半端に互換性を持ってるからすごいカオスに
851 名前:デフォルトの名無しさん [2007/04/14(土) 18:52:09 ] unsigned char*とchar*の代入なんてエラーにするほど危険かなぁ なんか言語潔癖症的変な奴いるじゃないかなぁ おかげで意味のないキャストをプチプチ入れてく無駄作業 こんなとこ明示的にキャストしたところでどうだというのか・・・
852 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:01:27 ] C++って型キャストが必須なんだっけか 俺Cメインだからうろ覚えだぜ
853 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:12:04 ] >>851 reinterpret_castが必要な場面ってそんなにある?
854 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:13:26 ] やっぱCがいいな。
855 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:16:32 ] C++で生のWin32 APIを使うとreinterpret_castだらけ。 Win32 APIは所詮Cを念頭において作ったという感じ。 >>849-851 それはC++作ったBjarneに言ってやれ。 静的型付けで強い型安全性でプログラマを守るというのがC++。
856 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:48:33 ] >>850 今までに何千人のプログラマが同じことを思っただろうな… すべてが今更の話だが…
857 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:03:28 ] >>850 ゲイツ・ビルに言ってやってくれ
858 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:05:41 ] >>857 ビル・ゲイツの出した解がC#では? いやビルが実際作ったわけではないけどさ。
859 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:13:34 ] C#もヤバい方向にいってると思うけどな varってJavaScriptみたい
860 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:15:39 ] ヴァー
861 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:15:57 ] そうか? 型推論や関数型プログラミング的な機能を取り入れるのは最近の流行だよ。
862 名前:デフォルトの名無しさん [2007/04/14(土) 21:29:34 ] 所詮学者の独りよがりだよな 明らかになにも作ったことがないグズが言語仕様を決めてる気がする
863 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:50:53 ] おまえに32ビットの羅列ほいと渡して何型の変数か分かるのか?
864 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:55:46 ] >>862 言語の一つでも作ってみろよグズ
865 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:56:26 ] 型推論はソースの冗長性を削る意味で有用だろうが。
866 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:56:41 ] >>862 みたいにブツクサ独りよがりで文句を言うだけで、 かといって別に妙案も何にも持っていない奴を色んなところでよく見かける。
867 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:58:49 ] つーか、議論したけりゃ他所でやれ。
868 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:01:50 ] varをVariant型とかObject型と勘違いして拒否反応示している奴が結構いるみたいだな。 あとC++のテンプレート関数が型推論やってくれてるの知らない奴も多杉。
869 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:30:25 ] >>851 signed char が-128〜127の整数の集合 unsigned char が0〜255の整数の集合 例えば前者の変数を作成して 「リンゴをA店で100個、B店で155個買いました。 全部で何個でしょう」 という問題を解いて、答えが-1個だったらおかしいでしょう。 あまり問題だと思わないのは、先に16進ありき、だからじゃないかな。
870 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:39:53 ] もう止めようぜ お前らこそ冗長にもほどがある
871 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:40:11 ] Dのautoキーワードの場合で書くと、 HogeClass obj = new HogeClass(); を auto obj = new HogeClass(); みたいに書ける ジェネリックプログラミングとかで 型がよく分からない時なんか更に便利 多分C#も同じ感じかと
872 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:42:06 ] >>870 リロードしてなかった すまん
873 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:48:00 ] ザ・スレチガイ
874 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:53:41 ] (´ω`)
875 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:13:38 ] SuspendThread(this);
876 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:20:36 ] 解決方法がわからないので教えてください。 MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _memmove はすでに LIBCMTD.lib(memmove.obj) で定義されています というエラーが15個出ます(まったく同じlib同士なので制限の関係で割愛します) どちらかをunloadすればいいかとおもってプロジェクトの設定からやってみたんですが、どちらを行った場合でも、Libファイルがないためのエラーが出ます。 どうかおねがいします。
877 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:42:19 ] >>876 おちつけ。大体意味は分かるが。
878 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:03:44 ] どちらかをunload→どちらか一方とリンクする という意味じゃないのか? プロジェクトの中に、誰かが作ったライブラリ(スタティックリンクしちゃったやつ)が混じっているんじゃないか? 1.プロジェクトの設定−一般−MFCのスタティックライブラリを使用 2.プロジェクトの設定−C/C++−[カテゴリ]コード生成−[使用するランタイムライブラリ]マルチスレッド (デバッグ) に設定したらビルドできるか?(EXEでなくてDLLを作る場合は マルチスレッド (DLL、デバッグ)) あと、↑の例はVS6だが、環境も知らせておくように。
879 名前:デフォルトの名無しさん [2007/04/15(日) 00:29:00 ] GDI+のファイルの書き出しについて保存です。 読み込み、書き出しそのもの情報はあるのですが、Graphics→Imageにする方法がわかりません。 Imageにファイルを読み込んで、別の形式で保存するというのはあるのですが。 猫でもわかる〜を見ても読み込みまでしかかかれていないもので・・・ Graphics graphics(hdc); //描画処理 このGraphicsをImageに変換するにはどうしたらいいのでしょうか?
880 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:37:17 ] >>878 ありがとうございます。できました
881 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:48:12 ] >>879 GDI+の扱いは分からんのだけども GraphicsからBMPオブジェクト作ってImage.FromBitmapじゃ駄目?
882 名前:881 mailto:sage [2007/04/15(日) 00:51:32 ] 不安になってMSDN見てみたらそんなメンバ無かったw 忘れてくれ
883 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:04:10 ] >>881 わざわざ調べていただいてありがとうございます。こちらでも確認したのですが、 Graphicの方にしかありませんでした。
884 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:06:28 ] 間違ってました。Graphicsの方にもなかったです(汗 あるのはGraphics::FromImageですね。
885 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:08:59 ] それ何語?
886 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:10:16 ] エスペラント語でないことだけは確かだ
887 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:24:28 ] 謎語を適当に喋ってみるテスト Bitmapを作ってそこからGraphics:FromImage(bmp)で作ったGraphicsに hdcをソースにして描画すればいいんじゃね このスレ的にはhdcからBitBltするのかな?
888 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:32:04 ] >>887 ありがとうございます。その方法でいけました。 BitmapがImageと同じように使えるんですね。
889 名前:デフォルトの名無しさん [2007/04/15(日) 02:40:09 ] ハンドル(CreateFileが返す値)から、元のファイルのフルパスを取得することができるAPIってありますか。
890 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 02:41:52 ] CreateFileで開いてフルパスじゃ無いって事は カレントディレクトリパス+CreateFileに渡したパスで良いと思うけどどうかね?
891 名前:デフォルトの名無しさん [2007/04/15(日) 04:52:59 ] 他のアプリのフォーカスがあるコントロールへデータを送りたいのですが 以下の様なコードだと、アプリによっては正しくデータが送れません。 またブラウザで表示された、HTML領域のコントロールへも データが送れたらなと思うのですが、どういう方法がありますでしょうか? DWORD myid = ::GetWindowThreadProcessId(m_hWnd, NULL); DWORD toid = ::GetWindowThreadProcessId(::GetForegroundWindow(), NULL); ::AttachThreadInput(myid, toid, TRUE); //::SendMessage(::GetFocus(), WM_PASTE, 0, 0); //←貼り付けの場合は当り前だけど全て無問題 ::SendMessage(::GetFocus(), WM_SETTEXT, 0, (long)"TEST STRINGS!!!"); ::AttachThreadInput(myid, toid, FALSE);
892 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 04:55:36 ] HANDLE からもとのファイル名が知りたいって事じゃね? 俺はそんなAPI知らないけど。
893 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 04:57:23 ] 送り先が間違っているんだろ
894 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 05:07:56 ] 俺も送り先が間違っているに一票 他にもたまにウィンドウがフォーカス持ってないように見えてフォーカス持ってたり フォーカス持ってるようしか見えないのにフォーカス持ってなかったりする場合がある フック使ってフォーカスの移動でも見てみればいい
895 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 05:14:12 ] >>891 ブラウザは良く知らんが↓が参考になるかも試練 k-gensai.hp.infoseek.co.jp/tools/hige2ch/kowaza.html#list2 Webのフォームはウィンドウじゃないから普通に操作すんのは無理
896 名前:デフォルトの名無しさん [2007/04/15(日) 05:59:00 ] >>893-894 アプリの種類によっては、エディットではなく タイトルバーの文字列が設定されてしまう場合とかあるんですよね。。 完全にエディットにフォーカスがあるのを確認して、SendMessage()しているのですが… もう少し試行錯誤してみます。 >>895 やっぱりフォームのコントロールへのデータ送信は ちょっとややこしそうですね。 また自分でも色々と調べてみますね。 解決したらご報告致します。
897 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 06:04:32 ] >>889 GetFileInformationByHandleEx Vista以外では www.microsoft.com/downloads/details.aspx?familyid=1DECC547-AB00-4963-A360-E4130EC079B8&displaylang=en をインストールする必要があるけど。 Win9xでは公開された方法は存在しない
898 名前:896 mailto:sage [2007/04/15(日) 06:13:25 ] 具体的にいうとこんな感じなんですけどね。。 メモ帳のエディット部に送信 → 無事設定される サクラエディタのエディット部に送信 → タイトルバーに設定される Firefoxのアドレスバーに送信 → 無反応。。 やっぱり見た目にフォーカスがあっても 内部ではフォーカスが無い場合ってのがあるんでしょうね。
899 名前:896 mailto:sage [2007/04/15(日) 06:15:07 ] IEのアドレスバーには問題なく設定できるようです。 とりあえずどうしようもないので調べます。
900 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 06:19:13 ] あ、Fileextd.libはスタティックだからインストールが必要なのは開発者のほうだけね
901 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 06:23:19 ] >>898 Windows標準のエディットコントロールはWM_SETTEXTを独自に処理してるので エディット部に設定される それ以外のほとんどのウィンドウはWM_SETTEXTを処理しないのでデフォルト処理で タイトルバーへの設定が行われる 子ウィンドウでタイトルバーが表示されていなければ無反応に見える エディットコントロール(のように見えるもの)にテキストを設定する汎用的な方法は 存在しない
902 名前:896 mailto:sage [2007/04/15(日) 06:40:29 ] >>901 なるほど〜 確かにWM_SETTEXTで設定出来るのは どれもオーソドックスなエディットだけですね。 う〜ん、困ったなぁ。。。
903 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 06:58:58 ] そもそも WM_SETTEXT は外から使うことを考慮していない。使えるように実装されているだけ。 文字を送るだけなら他の方法がある。
904 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 07:06:10 ] でも使えるように実装するのが普通だよな 今FireFox見てみたけどおかしな作りだな
905 名前:896 mailto:sage [2007/04/15(日) 07:25:30 ] 別アプリのWebFormのコントロールに データを設定する事なんて果たして可能なのかなぁ。。
906 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 07:48:59 ] IWebBrowser2で検索すると参考になりそうなサイトは沢山ある が、理解できるかは知らんよ
907 名前:896 mailto:sage [2007/04/15(日) 07:50:37 ] >>906 情報ありがとうございます。 頑張って調べるしかないですね。
908 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 08:04:31 ] IEなんかは一見標準コントロールを使っているように見えるが あれは全て自前描画のフルスクラッチだから、普通の コントロールのように扱うのは無理だよ。
909 名前:896 mailto:sage [2007/04/15(日) 08:09:08 ] >>908 MSのアプリってそういうの多いみたいですね。。 あとAdobeのものとかも自作コンポーネントとかが沢山で。 ウェブフォームの方は、情報が色々と出てきて どうにかなりそうな気がしてきました。 助言を下さったみなさま、ありがとうございました。
910 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 10:22:07 ] Windows Presentation Frameworkのコントロールも全部(API的には)自前描画だな アンマネージなアプリから設定するのは結構骨が折れる
911 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 10:24:23 ] Windows Presentation Foundationだった .NET Frameworkと微妙に混ざった あとJavaのSwingアプリとか(AWTやSWTはプラットフォームのコントロールを使ってる)
912 名前:889 [2007/04/15(日) 10:35:31 ] >>897 ありがとう。 GetFileInformationByHandleEx の FileNameInfo で99%できた。 しかし、ドライブレターが無いのだ。 つまり、L"\\Windows\\System32\\ntdll.dll" みたいなのが返ってくる。 C: の部分はどうやったら良いかもお願いします。
913 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 11:04:30 ] >>912 VistaならGetVolumeInformationByHandleW 2000/XPだとGetFileInformationByHandle(Exじゃないほう)と FindFirstVolume/FindNextVolume/FindVolumeClose/GetVolumeInformationの ボリュームシリアル番号を付き合わせる、くらいしか思いつかない。
914 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 16:31:07 ] おにいさま…涙が…止まりません
915 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 21:06:53 ] 辛子明太子を食べろ
916 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 21:23:52 ] エディットボックスで英数字だけ使うのってできないんだっけ
917 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 21:32:53 ] エディットボックスでWM_CHAR引っ掛ければ余裕
918 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 21:50:32 ] クリップボード経由でペーストされたら?
919 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 21:52:15 ] WM_PASTE見張ってれば良いじゃん 頭使ってる?
920 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:20:42 ] WM_SETTEXTとかEM_REPLACESELとかも見張る必要あるだろ
921 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:21:09 ] 見張ればいいじゃん。 労力使ってる?
922 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:24:53 ] 他にもワナがありそうだな。 EditBoxのあるダイアログのOKボタンが押されたときにでも、 データが適切であるかを確認する方がよほど楽だろうな。
923 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:26:46 ] 頭も使う労力も無い人に金言を授けよう 駄 目 な 奴 は 何 を や っ て も 駄 目
924 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:28:52 ] 本人から言われると重みがあるな
925 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:30:53 ] あれ、英数字ってなかったっけ? 俺の気のせいか
926 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:31:52 ] 数字だけならあったけどな
927 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:32:54 ] >>925 MFCのDDXならデジットチェックあるんだよ。 だけどここはWin32APIだから。
928 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:46:22 ] DDXも入力はできちゃう
929 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:55:15 ] って EM_CHANGE / EM_UPDATE じゃいかんのけ?
930 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 23:52:12 ] >>929 いいんとちゃう?
931 名前:912=889 [2007/04/16(月) 00:58:15 ] >>913 OSはXPです。 FindFirstVolume/FindNextVolume/FindVolumeClose だと "\\?\Volume{GUIDっぽい文字列}\" みたいな文字列で、どう扱ってよいか分からず断念。 ドライブレターありきで、割り切ることにしました。 マウントでも破綻するかもしれないですが、これも割り切り。 (1) ファイルのハンドルを GetFileInformationByHandle に渡して、ファイルのボリュームシリアル番号を得て、 (2)GetLogicalDriveStrings の結果を GetVolumeInformation に渡して、各ドライブのボリュームシリアル番号を得て、 (3)上記(2)のボリュームシリアル番号のうち、(1)のボリュームシリアル番号に一致するのがファイルが居るドライブと判定。 という方法でとりあえずやりたいことはできるようになりました。 御礼を兼ねて報告。
932 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 01:24:18 ] >>931 こんなの見つけた。Win2kだとさらにやり方が違うみたい www.ultrasync.net/yofune/?%A5%DC%A5%EA%A5%E5%A1%BC%A5%E0%A4%F2%C6%C0%A4%EB もし非公開API使ってもいいならNtQueryVolumeInformationFileがたぶん使える
933 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 01:39:17 ] あーどっちにしろ"\\?\Volume{GUIDっぽい文字列}\"からドライブ名への変換は 必要か。じゃあGetLogicalDriveStringsからたどるのが一番簡単だな
934 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 12:04:45 ] どうでもいいけど、>890の方法はダメだな。 カレントディレクトリパスなんてファイルダイアログを開くだけで変わってしまう。 APIを駆使する方法以外では、素直にCreateFile時にフルパスを保存しておくしかないね。
935 名前:デフォルトの名無しさん [2007/04/16(月) 14:28:11 ] wParamとlParamについてどなたか やさしく教えてください。
936 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:44:33 ] >>935 最早その名前に何の意義も無いので、適当に使い分けましょう。
937 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:44:42 ] メッセージに追加の情報を付加するためのもので、メッセージ毎に意味が違う。 個々のメッセージ毎にどういう意味を持つかはMSDN Libraryに書いてある。
938 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:46:00 ] イベントが呼ばれたときに設定される変数で 意味はそのイベントによって異なる。
939 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:46:01 ] >>936 使い分けだったら、ポインタはlParam、ハンドルはwParamに入れられる傾向にある。 Win16で、ハンドルとwParamが16ビット、FarポインタとlParamが32ビットだった名残だが。
940 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:50:40 ] lParamのlってlongのこと? じゃあwはword?
941 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:56:05 ] l w
942 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 15:09:26 ] >>940 そうだよ。Win16では当初ウィンドウプロシージャもこういう宣言だった。 LONG FAR PASCAL WindowProc(HWND, unsigned, WORD, LONG); Win16後期になってくると、LRESULT/UINT/WPARAM/LPARAMが出てきて、 現在のWin32でも通用する形になった。 LRESULT FAR PASCAL WindowProc(HWND, UINT, WPARAM, LPARAM);
943 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 16:54:13 ] リソースの STRINGTABLE の最大文字列長は何バイトですか?
944 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 17:41:21 ] >>943 ちょっと的を得てなくて申し訳ないんだが、 リソースも所詮ファイルなので、リソース全体ではNTFSの2TB弱が限界だろうか。 この辺ウラとってなくて申し訳ない。 Win32APIだとLoadString関数を使う事になるが、これは文字数にintを使ってる。 さらに、32bitのWindows2000系でのユーザーメモリ空間は2GBなので、 VC/VC++6.0では1回で使える文字列は2GB弱が限界だと思われる。 #VB6.0のString型はUNICODEで32766文字。
945 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 17:48:28 ] >>944 >VB6.0のString型はUNICODEで32766文字。 便乗でスマソ BSTR型は、ポインタの一つ前に文字長が入っているんだっけ?
946 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 17:54:15 ] >>943 WCHAR形式で格納されていて、最大0xFFFF文字(NULL文字を含まない)
947 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 17:55:20 ] >>945 文字長ではなく終端を含まないバイト数
948 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 20:16:07 ] RASCALってなんですか?
949 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 20:17:10 ] アライグマ
950 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 20:49:44 ] Helphiじゃないの
951 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 20:51:13 ] RASICかもしれん
952 名前:944 mailto:sage [2007/04/16(月) 20:54:53 ] >>943 さっきは適当な事を言ってすみません。 ttp://blogs.msdn.com/michkap/archive/2007/01/15/1466291.aspx この、(2007年1月頃の)ページでは、「ヘルプで明文化されている最大値の最低限は4097バイトである」 (つまり、デフォルトで4097バイトまでは問題ない) 「しかも、他の地域版のMSDNヘルプでは限界すら書いてない。本当の限界を調べてみないか?」とあるが、 レスは「そんな意味の無い事を・・・」とにべもない。 フォーマット的には>>946 でしょうが、このアーティクルが本当なら サードパーティツールを考慮して4097バイト(2047文字)に抑えた方が良さそうです。 #VB6のString型は、最大32767文字なのですが、最大まで使ってしまうと #ヌルターミネータ(文字列最後の0)が入らないまま保存されます。 #VC/VC++6.0では、最も重要なCComBSTRですら文字列長プレフィックスを考えてません。 #だから、安全にプログラムするなら32766文字が良いです。
953 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 21:25:15 ] Acronis True Imageのtibのマウントみたいな仮想的な ドライブを作りたいのですが、DDKが必要なんでしょうか?
954 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 21:27:40 ] たたき台になるサンプルがあれば良いのですが…
955 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 21:51:07 ] ここで質問する程度の人はそんなものに手を出さないでくださいお願いします
956 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 10:23:19 ] 仮想フォルダレベルで良いならcabviewのソースがサンプルにある DDKやIFSならスレ違い
957 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:52:02 ] Win32 APIオフィシャルリファレンス改訂3版 グラフィック/GUI編 ttp://www.amazon.co.jp/Win32-API%E3%82%AA%E3%83%95%E3%82%A3%E3%82%B7%E3%83%A3%E3%83%AB%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E6%94%B9%E8%A8%823%E7%89%88-%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF-Ascii-books/dp/4756137482 この本の評価どなたかよろ。
958 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:55:15 ] COMスレかDDKスレでどうぞ
959 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 18:24:32 ] >>948 AppleのMacintoshが出た当時に結構出回ってた開発言語。 ってこれはWin32APIは関係ないね
960 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 18:48:25 ] Win2k以降でネットワークアダプタの現在のリンク速度とDuplexを取得する汎用的な方法ってあるんでしょうか?
961 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:11:38 ] WMIで取れたっけ?
962 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:46:16 ] CIM_NetworkAdapter, Win32_NetworkAdapterあたり? 全二重とかはソック叩くんだっけ?
963 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 20:04:25 ] DDK
964 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 21:40:23 ] >>940 l (lol w (w
965 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 21:52:40 ] wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
966 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 21:54:27 ] WORD wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww; do{ wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww = GetAsyncKeyState( VK_SPACE ); }while( !wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww );
967 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 21:57:06 ] >>960 GetIfTable
968 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 00:15:59 ] /: : : : : : : : : : : : : : : : : `丶、 / : : : : : : : : ‐- : :、: : : : :ヽ: : : : \ {  ̄: : : : : : : : : : : : : : :ヽ、: : : ヘ: : : : : ヽ ,.ヘ: : : : : : : `丶 : : : : : : : : `く/ ヘ: : : : : :', /: : ヽ: : \: : : : : \: : -―: : : :`く: : '.,: : : : :l ,': {: : : \: : :ヽ、: : : : :\ー‐、: : : :ヽ:\: ヽ : : :| l: :l : : : l \: : : \‐=V弋芝圷\: \l\l : : :| |: :l: :: : {xく´_\`ヽ:ヽ Vヘソ |: : |: : }: :./i l: :l:ヽ : ヽ仗圦 \ ゞ''´ ノ: /l: :ハ/ 、ノN ヽヘ: :\ ヽVヘ:} // j/-j/ 乂 ノ: :j 丶\: ヽ: ゞ'' 、 ハ! : : :ヽj、_,ヘヘi彡' `ヘ> - ' / V廴V-へ∠`´__ ヽ、_ / ヽ/ ̄/ '⌒ヽ `丶 \ミ、ー:- -イ / / / ヽ \ ヽ:八{\少} / / / ∨ \ '′_>' /’ __,/ / / | \ ,イ /、 ´/ /´ | \ /l│ / __/ / / | / /│| /V / / / | _/ ││{ / /V / r'´ ノ¨ ̄´ | ヘ ∨ ∨ ̄ ̄/ } /
969 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 00:20:20 ] ┌─‐「][] _,ィ ´ ̄`ヽ、  ̄ ̄} | _ /:.ゝ-─‐<> r─' ノ 「Y {´ ̄`ン':.:.:.:.:.:.:.:.:.:.:.:.:}{  ̄ Lハj_, ィ'´⌒⌒ヽ、:.:.:.ィ、ハ [[] 「} _/∠二ニニニ¬、_ハ:.:.:.ヽヽ', rー'_ノ //´ 了~~~⌒~`ヽ.弋゙Tl:.:.:.:_j」 l { { { j} }士ぅ'´:.:_〉| い、__ >、___ __, ィ人 ヽく_:./:.〉ゝ ィ ⌒ >'/ い 〉~~〉T~~T< ヽハ 〈_:.く ( _ イ `7 ハ⊥__j_i___〉 ,}イ 〈_/ ( _) ハ__厶>ー‐一_7 /´ ゝ ___,ノ /ーY):::ノ ` ̄´厶.、/_ {::::::::/ /⌒ー'::::::}  ̄´ {:::::::::;: ィ
970 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:48:13 ] ちょっと早いけど、埋めモードに入ってるっぽいんで新スレ立てておくよ
971 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:55:01 ] 51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/ 50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/ 49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/ 48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/ 47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/ 46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/ 45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/ 44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/ 43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/ 42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/ 41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/ 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/
972 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:55:27 ] 誤爆したw 新スレはこちら Win32API質問箱 Build52 pc11.2ch.net/test/read.cgi/tech/1176828891/
973 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 02:37:36 ] 970前から埋めは気が早すぎないかw
974 名前:デフォルトの名無しさん [2007/04/18(水) 02:53:30 ] 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜
975 名前:デフォルトの名無しさん [2007/04/18(水) 02:54:00 ] 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜 〜(^o^)〜
976 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 04:00:25 ] ume
977 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 08:14:35 ] 埋め埋め ところで、国内の治安も悪くなったねー
978 名前:960 mailto:sage [2007/04/18(水) 09:08:30 ] >961 WMIだと未実装らしくてNULLが入ってますorz
979 名前:960 [2007/04/18(水) 09:17:31 ] >967 MIB_IFROW.dwSpeedで速度は取れるようですが、Duplexは無いようです。 このあたりはメーカー独自のレジストリ構造だし、泥臭くいくしかないのか・・・ 最終的には設定までやりたいんですが、 手持ちのNIC調べただけでもメーカーごとに全部違うようで SpeedDuplex/ConnectionType/ConnectionType_A
980 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 11:56:37 ] ume
981 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 12:33:32 ] 膿め
982 名前:デフォルトの名無しさん [2007/04/18(水) 13:51:52 ] 俺様は産む機械ィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィ!!!11!!
983 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:39:08 ] 梅
984 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:39:06 ] だからドライバから取れって
985 名前:デフォルトの名無しさん [2007/04/18(水) 16:57:05 ] マイナスですかプラスですか?
986 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:54:21 ] 生め
987 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:03:08 ] マイナスでもプラスでもありません
988 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:07:55 ] 運転手だよね
989 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:42:35 ] IEやエクスプローラと同一の履歴の取得ってどうやるのでしょうか?
990 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:04:17 ] ume
991 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:09:13 ] ここまでテンプレ
992 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:16:37 ] // ここから怒涛のテンプレ
993 名前: ◆iwOQ5dadXo mailto:sage [2007/04/18(水) 21:26:29 ] 993なら長門は俺の嫁
994 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:29:15 ] 994だったら1000まで行かずにdat落ち
995 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:46:29 ] >>989 shell:history のことか?
996 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:57:01 ] >>995 いえ、アドレスバーの履歴です。 デスクトップやブックマークも補完されると思うのですが、あれと同じものを作りたいのです
997 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:08:03 ] ゆのっちって何でこんなにかわいいんだろ
998 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:10:21 ] >>989 IUrlHistoryStg2とIEnumSTATURLで検索すれば幸せになれると思う。 つーか、これURLどころか最近使ったファイルも全部ひっかかるんだけど・・
999 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:10:59 ] >>996 まったく同じモノでいいのか? だったら、[ SHAutoComplete ]を調べてみろ ちなみにShellのバージョン5.0以上な
1000 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:11:49 ] 30秒程度の差で先を越された俺が埋め
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。