■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build36
251
名前:
デフォルトの名無しさん
:2005/10/20(木) 14:09:12
マウスカーソルの周辺部分を、拡大して表示するプログラムを作ってみたいと思うのですが、
どういう方法が一番高速なのでしょうか?
あと、マウスカーソル部分一点のRGB値を表示するようなプログラムだったら、
単純にGetPixel()でも問題ないのでしょうか?
252
名前:
251
:2005/10/20(木) 14:12:39
方法とは、マウスカーソル周辺部分を取得する方法です。
253
名前:
デフォルトの名無しさん
:2005/10/20(木) 14:16:22
>一番高速
あえて回答もらうの否定してるんだろうか
254
名前:
デフォルトの名無しさん
:2005/10/20(木) 14:16:29
>>252
GetDC(NULL) した DC (←画面を参照できる) から、StretchBlt するとイイヨ。
255
名前:
デフォルトの名無しさん
:2005/10/20(木) 15:45:52
座標がわかるんだから、それを元にしてやればいいんじゃないのか。
そんなん高速だなんだってレベルなのか?
…釣りか。
256
名前:
14
:2005/10/20(木) 17:37:17
SendInput()で、スキャンコードを使うことで、
DirectInputを使っているプログラムにもキーストロークを送ることができたのですが、
マウスの操作ができません。
DirectInput使用のプログラムへ、マウスモーションやクリックを送るにはどうすればいいのでしょうか?
257
名前:
デフォルトの名無しさん
:2005/10/20(木) 18:59:21
〃∩ ∧_∧
⊂⌒( ・ω・) ゲームくらい自分でやれよ
`ヽ_っ⌒/⌒c
⌒ ⌒
258
名前:
デフォルトの名無しさん
:2005/10/20(木) 21:15:23
インストーラ探してるんですけど、情報ありましたら教えてください、また、インストーラの比較サイトなどありましたらお願いします。
259
名前:
デフォルトの名無しさん
:2005/10/20(木) 21:19:41
ありません
ありません
260
名前:
デフォルトの名無しさん
:2005/10/20(木) 21:20:15
ボリュームコントロールのライン入力をミュートにしたり、解除したりしたいのですが、
win32でどのようにやればよいのでしょうか?
お願いします。
261
名前:
デフォルトの名無しさん
:2005/10/20(木) 21:46:37
他のプロセスのコマンドラインを取得したいのですが、どのようにすればよいのでしょうか。
プロセス一覧を取得して、それらを個別にOpenProcessするまではできました。
ReadProcessMemoryでどこかのアドレスから読み取って構造体を当てれば
いいのかなとか、もっとスマートに取得する方法があるんじゃないかと思うのですが、
この辺の情報が見つからなくて困っています。
262
名前:
デフォルトの名無しさん
:2005/10/20(木) 22:02:10
対象プロセス内でGetCommandLine()するのが一番はやいんじゃね?
263
名前:
デフォルトの名無しさん
:2005/10/20(木) 23:03:58
>>246-247
副次ストリームがあるじゃない
264
名前:
デフォルトの名無しさん
:2005/10/20(木) 23:46:28
>>262
未熟で申し訳ありません、イメージがつかめないのですが、
たとえば起動済みのテキストエディタのコマンドラインを知りたいと思ったら
相手のプロセスに乗り込んでいって何かやるということでしょうか?
向こうでGetCommandLine()やってこちらに通知させる?
そんなことが可能なのでしょうか・・・
勘違いしていたらすみません
265
名前:
デフォルトの名無しさん
:2005/10/21(金) 02:17:33
>>260
Simple Mixer Control Wrapper
ttp://www.codeproject.com/audio/alexfmixer.asp
システム音量制御は、上URLのCAlexfMixerクラスを使うと簡単。
266
名前:
デフォルトの名無しさん
:2005/10/21(金) 05:50:22
>>263
ストリームの欠点は、ファイルをNTFSから外に出すと、失われること・・・。
それはいいとして、
EXEのファイル名がわからないのに、どうやってストリームをCreateFileしますか?
267
名前:
デフォルトの名無しさん
:2005/10/21(金) 08:05:45
>>264
PEBを見るという手もある
268
名前:
デフォルトの名無しさん
:2005/10/21(金) 12:44:08
デスクトップ上の、マウスカーソルの下のRGB値を表示するプログラムを作ってみたのですが、
GetPixel(GetDC(NULL),...)が重い上に遅くて困っています。
もっと早い方法はありませんか?
269
名前:
デフォルトの名無しさん
:2005/10/21(金) 12:46:27
>>268
どうでもいいがそのコードだとDC解放できないような希ガス
270
名前:
デフォルトの名無しさん
:2005/10/21(金) 13:18:48
>>269
教えてやれよReleaseDC
>>268
MSDN嫁
271
名前:
268
:2005/10/21(金) 13:24:54
そういえばReleaseDC()してませんでした。
>>270
具体的にMSDNのどこでしょうか?
272
名前:
デフォルトの名無しさん
:2005/10/21(金) 13:49:04
>>271
GetTickCountでGetPixelにいくらかかってる?
すぐ帰ってくるけどな。
273
名前:
デフォルトの名無しさん
:2005/10/21(金) 14:05:16
>>272
3Dのゲームのウインドウの上にカーソルを持っていくと
(3Dのゲーム画面のRGB値を取得しようとすると)
そのゲームのFPSが目に見えて落ちるんです。
274
名前:
デフォルトの名無しさん
:2005/10/21(金) 14:09:52
>>273
DirectX部分のDCとってるのか...?。
ならIDirect3DSurface9とか使え。
275
名前:
デフォルトの名無しさん
:2005/10/21(金) 14:15:38
>>272
いってらっしゃい
276
名前:
デフォルトの名無しさん
:2005/10/21(金) 18:15:10
いってきます。
277
名前:
260
:2005/10/21(金) 19:39:24
>>265
ありがとうございます。やってみます。
278
名前:
デフォルトの名無しさん
:2005/10/21(金) 20:46:44
メニューって左から
ファイル(F) 編集(E) ・・・
と並んでいますが、 ヘルプ(H)だけ
そいつらと離して、常に右端へ配置したいのです。
常に最大最小化閉ボタンの真下あたりに来るように。
どうすればいいですか?
279
名前:
デフォルトの名無しさん
:2005/10/21(金) 20:50:42
自分で作るしかない
280
名前:
デフォルトの名無しさん
:2005/10/21(金) 20:52:05
ま、まじですか・・・
何かとっかかりとか教えていただけると嬉しいです・・・
メニューとか右端とかで検索してもどうも引っかからなくて・・・
281
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:01:47
自分で作るしかない
282
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:07:57
自分で作るしなかい
283
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:08:07
手間がかかるのは、Windows標準のインターフェイスから逸脱するって
いうことですよ。
284
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:10:25
RS-232C通信についてお聞きします。
今、下のようなコードでCOMポートを開いて通信をしようとしているのですが、WriteFileで送信はできてもReadFileで受信ができません。
しかし、このコードのプログラムを実行する前に一度ハイパーターミナルなどでポートを使用した後だとReadFileで受信ができます。
おそらく初期化の手続きに問題があるとおもうのですが、どこに問題があるのか教えて頂けないでしょうか。よろしくお願いします。
//問題のコード
// PORT OPEN
InitializeCriticalSection( &com->CritSec);
com->Com = CreateFile( port, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
com->Stat = stat;
com->Pc = pc;
sprintf( com->Port, "%s", port);
// イベントハンドラ設定
com->hReadEvent = CreateEvent( 0, TRUE, FALSE, 0);
com->hWriteEvent = CreateEvent( 0, TRUE, FALSE, 0);
//下に続く
285
名前:
続き
:2005/10/21(金) 21:11:28
// 非同期通信設定
com->ReadOverLapoed.Offset = 0;
com->ReadOverLapoed.OffsetHigh = 0;
com->ReadOverLapoed.hEvent = com->hReadEvent;
com->WriteOverLapped.Offset = 0;
com->WriteOverLapped.OffsetHigh = 0;
com->WriteOverLapped.hEvent = com->hWriteEvent;
// その他設定
GetCommState( com->Com, &dcb);
dcb.fBinary = 1;
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = 0;
dcb.EofChar = 0x0a;
dcb.EvtChar = 0x0a;
SetCommState( com->Com, &dcb);
286
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:17:53
>>278
MF_HELP
>>283
昔はヘルプメニューが右に寄るのって標準的だったんだけどなあ。
287
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:24:58
>>278
リソースのメニューなら、メニューのプロパティで「ヘルプ」をチェックするか、
リソースファイルでHELPオプション付ける手もある。
IDC_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Help", HELP
(以下略)
288
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:29:39
>>286
そんな標準的しらねぇよ?
289
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:30:26
メニューバーの前面に「?」のビットマップボタンウィンドウを配置するのが一番楽だろう。
フレームウィンドウのリサイズに伴って位置を移動させる必要があるけど。
290
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:37:00
>>286
Win3.1の頃の標準なんてもはやどうでもいい。
291
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:41:05
MF_HELPは、DOS 時代の CUI の UI 標準 (OSAだかCSAだか何かアッタんよ) の
に準拠したようなヘルプメニューを Windows で実装するためにだけ存在しますた。
普通の MS のプログラムでは Help メニューも右寄せにはなっていなかったはず。
292
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:42:01
ホラ。Help は普通のメニュー。
ttp://en.wikipedia.org/wiki/Image:Windows_3.0_workspace.png
293
名前:
289
:2005/10/21(金) 21:42:57
>>287
という普通のやり方があることを今知った・・・。
そんなわけで
>>289
はナシということで。
294
名前:
デフォルトの名無しさん
:2005/10/21(金) 21:49:17
メニューの話ついでに質問なんですが、サブメニュー[元に戻す(U) など]じゃなくてルートメニュー[ファイル(F) など]が押された時のイベントってどうやって取るんですか?
リソースエディタだと「IDを編集できません」ってなってるので何かいつもとは違うやりかたなんだろうなあと。
295
名前:
278
:2005/10/21(金) 21:52:42
うおおお、みなさんありがとうございます。
色んな知識が身につきました。
そうですよね、ヘルプが右側にあったのって結構昔ですよね。
>>286
さんの教えてくれたMF_HELPを使おうと思ってModifyMenuとか調べてたら、
>>287
さんの超簡単な方法であっさりできてしまい感激です。
ありがとうございました!
296
名前:
デフォルトの名無しさん
:2005/10/21(金) 22:01:48
>>294
リソースエディタでIDを入れる
297
名前:
デフォルトの名無しさん
:2005/10/21(金) 22:03:22
>294
WM_INIMENUPOPUPがくるんじゃなかったっけ?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardaccelerators/keyboardacceleratorreference/keyboardacceleratormessages/wm_initmenupopup.asp
298
名前:
デフォルトの名無しさん
:2005/10/21(金) 22:29:37
>>284
GetCommTimeouts()の結果を確認せよ。
お勧め設定はBuildCommDCBAndTimeouts()を例えば
BuildCommDCBAndTimeouts("com1: baud=9600 parity=n data=8 stop=1 to=off xon=on "
"odsr=off octs=off dtr=on rts=on idsr=off", & dcb, & timeOut);
のように使う方法。
299
名前:
デフォルトの名無しさん
:2005/10/21(金) 22:32:22
SetCommStateに失敗してbaud rate とかが設定されてないんだと思う。
何故失敗するかは知らないけど。
300
名前:
268
:2005/10/22(土) 00:43:22
>>274
DirectXはまったく知らないのですががんばってみます。
GetFrontBufferDataで取得して、
IDirect3DSurface9::GetDC()で、後は好きなようにしていいのかな。
301
名前:
デフォルトの名無しさん
:2005/10/22(土) 02:00:00
昔の話といえば、よくメニューに
「ファイル(\036F\037フ)」
こんなアクセスキーをつけていたんだが、日本語のアクセスキーが
使えなくなったのっていつからだっけ? Win95?
302
名前:
デフォルトの名無しさん
:2005/10/22(土) 05:17:17
インターネットエクスプローラの文字検索ウィンドウ(Ctrl+Fで出るやつ)を出すにはどうしたらよいのでしょうか?
また、HTMLの画面とかを出さずに単独で出現させることは可能なのでしょうか?
303
名前:
デフォルトの名無しさん
:2005/10/22(土) 05:34:28
>>301
世界共通バイナリになってから(Win2k/XP)?
304
名前:
デフォルトの名無しさん
:2005/10/22(土) 08:39:20
3.1の頃からそんなバカなアクセスキーなど見たこと無いわ
305
名前:
デフォルトの名無しさん
:2005/10/22(土) 10:18:47
>>302
検索ダイアログなら、コモンダイアログでなかったっけ?
306
名前:
デフォルトの名無しさん
:2005/10/22(土) 14:50:49
>>304
実際にアプリが使ってたかどうかはともかくとしてOSに機能はあったよ
Win/Vが苦労した点の1つもカナアクセスキーのサポートだったし
307
名前:
デフォルトの名無しさん
:2005/10/22(土) 15:01:24
OSに機能があっても使われてなけりゃ無いのと一緒
308
名前:
デフォルトの名無しさん
:2005/10/22(土) 15:05:50
古いサンプル探したらこんなのが
POPUP "ウィンドウ(\036W\037ウ)"
{
MENUITEM "カスケード表示(\036C\037カ)\tShift+F5", IDM_CASCADE
MENUITEM "タイル表示(\036T\037タ)\tShift+F4", IDM_TILE
MENUITEM "アイコン再配置(\036I\037サ)", IDM_ARRANGE
}
POPUP "ヘルプ(\036H\037ヘ)"
{
MENUITEM "MDI について(\036A\037ニ)...\tF1", IDM_ABOUT
}
309
名前:
デフォルトの名無しさん
:2005/10/22(土) 15:17:37
>>307
コンパネからUIが消えたのは3.1だったかな
でも質問は「使えなくなったのはいつか」なわけで
310
名前:
デフォルトの名無しさん
:2005/10/22(土) 17:11:04
MFCのスレッドの中だとsrand関数が無効になるんだけど何でですかね?
311
名前:
デフォルトの名無しさん
:2005/10/22(土) 17:16:21
そんなapiあったか?
312
名前:
デフォルトの名無しさん
:2005/10/22(土) 17:26:08
無いな
313
名前:
デフォルトの名無しさん
:2005/10/22(土) 17:28:02
>>310
MFCスレか初心者スレへ。そのときはただ「無効」と書かず、どうやったらどうなったか書くように。
314
名前:
デフォルトの名無しさん
:2005/10/22(土) 19:24:37
C++相談室でこちらに誘導されたので、同じ質問になりますが、書かせていただきます。
> 簡単なインストーラを作りたいんですが、どなたか教えてください。
> 実際、やることは簡単で、myapp.exeを指定したフォルダにコピーするだけです。
> で、myapp.exeをインストーラと同じフォルダに入れておけば、myapp.exeを
> いったん読み込んで、指定したフォルダに書き込むプログラムはすぐできます。
> しかし、そうではなくて、インストーラの中にmyapp.exeのデータを埋め込んで
> しまいたいのです。ユーザから見えないように。
> また、インストーラをファイル1つにするために。
> とすると、バイナリのデータファイルの内容を、実行可能ファイル(今の場合、
> インストーラ)にマージさせることなどが可能なのでしょうか?
> そうでないなら、ファイル1つのインストーラはどのようにできているのでしょうか。
> どなたか、教えていただけないでしょうか。
で、リソースがヒントと言われたのですが、よくわかりません。
Visual C++のリソースにもバイナリファイルなどなかったような。
ただ、いずれにしても、私はBCCでやっているので、リソースファイルも手書きになりますが。
どなたかお願い致します。
315
名前:
314
:2005/10/22(土) 19:26:14
教えていただきたいのは、もちろん、できるかどうかというより、
できるなら、その方法を教えていただきたいのです。
連投すみません。よろしくお願い致します。
316
名前:
デフォルトの名無しさん
:2005/10/22(土) 19:29:25
>>314
ttp://www.sm.rim.or.jp/~shishido/rctest.html
BCCならこの辺読めば分かるだろ。
ついでにVC++のリソース追加ウィザードでもバイナリデータは書き込めるぞ。
317
名前:
デフォルトの名無しさん
:2005/10/22(土) 19:31:51
バイナリのリソースでアイコンやビットマップはよく使うと思うけど
318
名前:
314
:2005/10/22(土) 19:39:03
>>316
ものすごく速いレスで驚きました。
ありがとうございます。
そのページ勉強してみます。
319
名前:
デフォルトの名無しさん
:2005/10/22(土) 19:43:06
他のプロセスに属しているリストビューの項目を取得したいのですが、どうすればいいのですか?
普通にLVM_GETITEMメッセージを送ってもアドレス空間が違うので、ポインタが無効になってしまう・・・
320
名前:
デフォルトの名無しさん
:2005/10/22(土) 19:55:51
GetSystemTime等で得た時間をいくつか取っておいて、
時間の差を求めたり、加算したりしたいんですが、
CompareFileTmeという比較APIはあるのに、差を求めるAPIが見付かりませんでした。
時間同士の差を取得したり加算したりする良い方法は無いでしょうか?
321
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:04:28
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/systemtime_str.asp
自分で関数書けば?
322
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:05:51
>>319
VirtualAllocExとか。9x系では別の手段が必要だけど。
323
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:14:37
>>319
フックでそのプロセスに忍び込むとか
324
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:17:37
>>320
ミリ秒単位の精度が必要ないなら素直に標準関数を使おう。
#そしてそれはスレ違いなのでここでは説明できない。
325
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:23:43
>>320
FILETIMEにしてULARGE_INTEGERで計算とか
326
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:25:52
>>321
それができたらここに書込みなんてしませんよ。
>>324
標準関数はdouble型が返ってきて気持ち悪いので嫌です。
327
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:26:38
>>325
それしかなさそうですね。
ありがとうございました。
328
名前:
デフォルトの名無しさん
:2005/10/22(土) 20:37:05
>>326
>標準関数はdouble型が返ってきて気持ち悪いので嫌です。
いや、time_t同士の引き算で充分だろ。
329
名前:
デフォルトの名無しさん
:2005/10/22(土) 21:01:08
いろいろあるんだな
>>
ttp://www.super-computing.org/sr8000/timer.html
330
名前:
デフォルトの名無しさん
:2005/10/22(土) 21:36:22
>>322-323
どうもありがとうございます。
その線で行ってみます。
331
名前:
デフォルトの名無しさん
:2005/10/23(日) 00:04:02
>>314
charの配列として固定で埋め込んで、
そのデータをファイルとして書き出せばいいじゃないか。
332
名前:
デフォルトの名無しさん
:2005/10/23(日) 00:07:44
何のためにここで聞いてんだか分からなくなる回答すんなや
333
名前:
デフォルトの名無しさん
:2005/10/23(日) 00:11:25
>>332
2chで聞くことに意味を求めることが既に間違っている
334
名前:
デフォルトの名無しさん
:2005/10/23(日) 00:16:50
_, ._
( ´ _ゝ`)
335
名前:
デフォルトの名無しさん
:2005/10/23(日) 00:34:47
>>333
2chを神聖視しすぎ
336
名前:
デフォルトの名無しさん
:2005/10/23(日) 00:59:11
>>314
どういうのが見えないって意味なのかなー
337
名前:
デフォルトの名無しさん
:2005/10/23(日) 01:11:33
> インストーラをファイル1つにするために。
こういう意味なんだろ
338
名前:
デフォルトの名無しさん
:2005/10/23(日) 01:18:33
じゃーそのままリソースで持つだけか
339
名前:
デフォルトの名無しさん
:2005/10/23(日) 01:55:09
>>301
,308と書くとどうなったの?
340
名前:
デフォルトの名無しさん
:2005/10/23(日) 11:08:25
DLL内部から、そのDLLが呼び出された親ウィンドウのハンドルを取得したいのですが、
どういった方法があるのでしょうか?
ウィンドウを多重起動するのでFindWindwでは上手く取得できません。
341
名前:
デフォルトの名無しさん
:2005/10/23(日) 11:13:23
>>340
HWNDを受け取る初期化関数をDLLが公開するのが簡単。
342
名前:
デフォルトの名無しさん
:2005/10/23(日) 11:17:18
>>340
GetProcessIdとGetWindowProcessThreadIdで照合とか‥
別に方法ありそうだけど
343
名前:
デフォルトの名無しさん
:2005/10/23(日) 11:19:23
DLL呼び出し側も自作なら共有メモリにメモっとくとかも。
344
名前:
340
:2005/10/23(日) 12:20:50
>>341
ws2_32.dllをフックしているので、その方法は厳しいかと思います。
>>342
GetProcessIdをVC++.NETで使おうとすると定義されていない〜となるので
GetProcessIdをMSDNで調べたら、Requires Windows "Longhorn" or Windows XP SP1.
と書いてありました。うちの環境はWindowsXP SP2なのですがそのAPIはもう使えないのでしょうか?
>>343
残念ながら自作じゃないんです。
345
名前:
340
:2005/10/23(日) 14:33:17
解決しました。
>>342
さんの書いたことをヒントにいろいろ調べて、
GetCurrentProcessId()とGetWindowThreadProcessId()を使えば出来るということがわかりました。
回答していただいた皆さんありがとうございました。
346
名前:
デフォルトの名無しさん
:2005/10/23(日) 14:39:46
>>340
GetParent じゃだめだった?
347
名前:
340
:2005/10/23(日) 15:08:29
GetParent(HWNd hWnd);
これは、子ウィンドウのハンドルを引数に与えないといけないのですが、
子ウィンドウが無いので出来ませんでした。
駄目と思いつつ、hModuleを引数に与えてみましたがやはり無理でした。
348
名前:
デフォルトの名無しさん
:2005/10/23(日) 15:56:10
そもそも親windowのハンドルがわからないと
絶対に出来ないことなのかと聞いてみたい。
他に代替手段があるかもしれないから、なにが
したくて親windowハンドルを取得したくなったのか書いてちょ
349
名前:
デフォルトの名無しさん
:2005/10/23(日) 15:59:24
おおかたネトゲのサポートツールでも作りたいんだろ。
マクロだとかスクリーンショットだとか。
350
名前:
デフォルトの名無しさん
:2005/10/23(日) 16:12:43
自作のペン・ブラシは使用後削除するということですが、
CreateSolidBrushは削除とかないですよね?
あとリージョンも削除しなくていいんですか?
351
名前:
デフォルトの名無しさん
:2005/10/23(日) 16:23:28
>>347
「親」ウィンドウを探そうって訳じゃないのだな。
だったら、DLLの関数にメッセージを投げたいウィンドウのハンドルを
パラメータで渡せばいいだけだな。
352
名前:
デフォルトの名無しさん
:2005/10/23(日) 16:29:06
こんにちは、よろしくお願いします。
ファイルを削除しようと思い
DeleteFile関数をつかっています。
bool mcc = DeleteFile("ファイル名");
mcc はtrue ですが、削除できていません。
どうしてでしょうか。
後、remove 関数とかも使ってみましたが、
戻り値が0でも削除できていないのです。
353
名前:
340
:2005/10/23(日) 16:34:02
ウィンドウのボタンを押すなどの操作を自動化したくて、
そうするにはSendMessageを行う際にウィンドウハンドルが必要だったんです。
うちの回線が不安定で時々接続が切れるので、
そうなったら自動で再接続をするってツールが必要なので作りました。
他に方法ってあるんですかねぇ。
p.s.
縦読みすると「ウそうそ」とか書いてありますが本文とは関係ありません。
354
名前:
デフォルトの名無しさん
:2005/10/23(日) 16:39:29
フレッツは知らないけど、それくらいルーターがやらないの?
ツール作る以外に方法はあると思う
355
名前:
デフォルトの名無しさん
:2005/10/23(日) 16:39:34
>>352
そのファイルエクスプローラで消せる?
356
名前:
デフォルトの名無しさん
:2005/10/23(日) 16:41:57
フレッシ接続ツールなんか投げ捨ててしまえ。
357
名前:
340
:2005/10/23(日) 16:48:15
説明不足でした。
接続が切れるのはソフトウェアのほうなんです。
そっちには自動再接続などの設定項目が無かったんで、
自作ツールで強引に繋いでしまおうと思ったんです。
358
名前:
デフォルトの名無しさん
:2005/10/23(日) 17:09:11
>>350
削除しなきゃダメだよ
359
名前:
デフォルトの名無しさん
:2005/10/23(日) 17:21:04
>>358
マジですか!
それは戻り値を取ってDeleteObject()に渡すんでしょうか?
360
名前:
デフォルトの名無しさん
:2005/10/23(日) 17:52:19
CreateSolidBrushだから削除が必要ないとかじゃあなくて、
システムに渡してしまうから必要ないとかそう言う話ではない?
SetWindowRgnとか、WNDCLASS::hbrBackgroundとか。
361
名前:
350
:2005/10/23(日) 18:13:25
ああ、きっとそうです。
そのへんよく分かってなかったので
もう一回勉強しなおしてきます。ありがとうございました!
362
名前:
デフォルトの名無しさん
:2005/10/23(日) 20:52:39
>>355
さんありがとうございます
>>352
です
そのファイルは、削除できるのです
363
名前:
デフォルトの名無しさん
:2005/10/23(日) 20:57:17
>>362
ファイル名をフルパスにしていなくて、カレントがあさってにあるってオチか?
364
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:06:54
>>363
さんありがとうございます。
いいえ違うんです。
カレントフォルダーを収得して、
フルパスにしてるのです。
365
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:10:14
> うちの環境はWindowsXP SP2なのですがそのAPIはもう使えないのでしょうか?
#define WIN32_WINNT 0x502
が必要なんじゃないの?
366
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:10:41
じゃあその取得してるカレントフォルダーが、問題のファイルの有るフォルダと違ってんだろ
どうでもいいけど、カレントフォルダーを収得とか、日本語おかしいな
367
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:12:19
>>352
です
ただ、そのファイルからデータを収得して、
閉じた。経緯はあるので、多分それが原因のような気がしてきました。
それ以外の何のつながりもないファイルなら、削除できましたので、
368
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:14:15
>>366
さん、そうですね、日本語になっていない。
GetCurrentDirectoryでパスを収得して、ファイル名と引っ付けています。
369
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:19:34
ますますエスパーが必要になった件
370
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:24:20
>>368
その収得が、日本語おかしいって言っとんねん
で、ほんとにちゃんと閉じてんの?
CloseHandleしてる?
してるんなら、読み込んだりしたとか関係無い
371
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:27:08
だめだ、理解できてない
372
名前:
デフォルトの名無しさん
:2005/10/23(日) 21:36:01
収得 か、暫く気づかんかった
373
名前:
デフォルトの名無しさん
:2005/10/23(日) 23:21:17
>>352
です
取得ですか。
fstream で、データを取り入れているのですが、
closeで閉じていますが、タイミングを外して、削除させることにしました。
皆様ありがとうございました。
374
名前:
デフォルトの名無しさん
:2005/10/23(日) 23:28:30
なんでfstreamなんだよ・・・
375
名前:
デフォルトの名無しさん
:2005/10/23(日) 23:50:21
>>374
読み込みに使っていますが、だめなのでしょうか。
376
名前:
デフォルトの名無しさん
:2005/10/23(日) 23:59:48
>>375
少なくともfstreamが握っている間はファイルを削除できないと思われる。
それとも374は単に読み込むだけならifstreamを使えと言いたいだけかもしれないが。
377
名前:
デフォルトの名無しさん
:2005/10/24(月) 01:12:55
>>340
なんで他のプロセス空間にDLLを忍び込ませる程度の知識があって
そこで悩むのかが俺には分からない。
そもそも普通は順番が逆な気もするが。
(ウィンドウハンドルからターゲットのプロセスを探す)
ウィンドウ作成より先に読み込まれるような方法でDLLを仕込むなら、
WM_CREATEをフックするとかした方がスマートかと。
378
名前:
デフォルトの名無しさん
:2005/10/24(月) 08:15:37
>>375
ちょっと問題のコード出して見ろよ
379
名前:
デフォルトの名無しさん
:2005/10/24(月) 08:19:21
>>373-376
,378
スレ違いだ。掘り下げるならほかでやれ。
380
名前:
デフォルトの名無しさん
:2005/10/24(月) 08:52:08
だが断る
381
名前:
デフォルトの名無しさん
:2005/10/24(月) 11:21:27
>>378-380
皆様いろいろとすみません。
fstream ifstreamもう少し詳しく調べてみること私にとって必須です。
しかし、callback関数の部分で、最後に書き込みもしていましたから、
結局ofstream もつかっていました。
細かくまとめて、ソースコードあげることも考えましたが、
いろいろとご迷惑をおかけすることとなりそうですので、
それでは、皆様ありがとうございました。
382
名前:
デフォルトの名無しさん
:2005/10/24(月) 11:24:41
>>375
です
>>376
さん詳しい説明ありがとうございました。
383
名前:
デフォルトの名無しさん
:2005/10/24(月) 16:30:35
>>382
ファイル共有はC/C++の仕様ではなくOS依存の仕様なので、
それを使うにはOS依存の非標準関数を呼び出す必要がある。
fstream ff;
int fd = _sopen(,,,);
ff.attach(fd);
384
名前:
デフォルトの名無しさん
:2005/10/24(月) 17:29:24
WebサーバとCGIのように、あるアクションがきっかけで別のアプリを内部的に起動してアプリの間でデータの送受を行いたいんだけど、こういうときにはパイプとかいうのを使うの?
385
名前:
デフォルトの名無しさん
:2005/10/24(月) 17:30:25
>>384
YES
386
名前:
デフォルトの名無しさん
:2005/10/24(月) 17:32:39
>>384
まあでもパイプ以外にも方法は色々とある。
プロセス間通信でぐぐれば。
387
名前:
デフォルトの名無しさん
:2005/10/24(月) 18:08:33
ImmSetCompositionString()について質問があります。
ImmSetCompositionString()で編集文字列に"m"をセットした後に
'a'を打鍵によって入力して"ま"としたいのですが、
続けて入力を行っても"mあ"となってしまいます。
キーボードイベントで解決しようと思ったんですが
処理が遅れて、ある程度早い入力を行うと
"まっちゃ"となるべきが"あmっちゃ"、"あtmちゃ"となったりしてダメでした。
388
名前:
デフォルトの名無しさん
:2005/10/24(月) 18:34:41
トップレベルウインドウではない、ある一つのウインドウに対して、あるキーを押した(例えば"1"キーを押した)ということを知らせるにはどのようにすれば良いですか?
389
名前:
デフォルトの名無しさん
:2005/10/24(月) 18:36:03
RegisterHotkey()じゃダメなん?
390
名前:
デフォルトの名無しさん
:2005/10/24(月) 20:41:50
>>382
です
>>383
さんありがとうございます。
詳しく書いてない私が悪いのですが、
includeしているのは、<fstream>のほうなのです。
ファイル操作について、調べていると、いろいろあって、
何を使っていいのか分からず、fstream をつかいました。
だから、もう少し詳しく調べないといけないのですが・・
がんばっていろいろ勉強します。
ありがとうございました。
391
名前:
デフォルトの名無しさん
:2005/10/25(火) 02:01:48
リソースでダイアログにリストビューやツリービューを貼り付けた場合
その初期化(項目の追加)をしたい場合はどうしたら良いのでしょうか?
ネットだとCreateWindowExで作成しているものしか見つからなくて
WM_CREATEがきた時にやっているので方法がわかりません
392
名前:
デフォルトの名無しさん
:2005/10/25(火) 02:18:01
WM_INITDIALOG
393
名前:
デフォルトの名無しさん
:2005/10/25(火) 09:10:40
既に起動中のIEにOLE接続するにはどうしたらいいでしょうか?
394
名前:
デフォルトの名無しさん
:2005/10/25(火) 10:45:52
>>387
で、質問は何だ?
395
名前:
デフォルトの名無しさん
:2005/10/25(火) 11:14:25
win2kで赤外線ポートをWinSock通さずに触ることって出来ないんだろうか?
CreateFileが理想。WinSock邪魔。
396
名前:
デフォルトの名無しさん
:2005/10/25(火) 11:24:23
COMポートと同じ様に制御できるんでないか?
397
名前:
395
:2005/10/25(火) 12:01:30
>>396
いやぁ、それがな、IrDAでリザーブしているCOMポートはどうやらIrCOMM用らしいんだ。
IrCOMMはドライバとして組み込まれているんだが、基本的にユーザには隠蔽されているんだよ。
(Win9xでは隠蔽されていなかった気がするけど)
まあ、IrCOMMはIrSocketを使ったエミュレーションサービスだから結局WinSockもどき中間層が入って、
鬱陶しいことこの上ないけどね。
そしてirmonを止めてもDiscoveryは続いているんで、カーネルがデバイスを貸してくれない・・・。
因みに、やりたいことってのは、空間に任意のデータを投げたいだけで、
それが実現できれば何を使ってもとくに気にしない。
どうにかならんかね。
398
名前:
デフォルトの名無しさん
:2005/10/25(火) 12:19:55
IrCOMMでググってみたら、
その問題を回避するようなドライバが引っかかるなー
ttp://www.ircomm2k.de/
ttp://resolution.extendedsystems.com/ESIde/Produkte/Virtueller+Com-Port+Treiber/default.htm
つまるところ、自力でやるならドライバを自作するってことになるかも
399
名前:
395
:2005/10/25(火) 12:26:13
ドライバ作るの面倒くさい……。
まあ、irda.sysの下にフィルタドライバでも作って、Read/Write出来るようにしてみるよ。
かなーり実験要素が強いけどな。
ありがとねー。
400
名前:
デフォルトの名無しさん
:2005/10/25(火) 13:55:18
男なら、APIなんか使わず気合で作れ!
401
名前:
デフォルトの名無しさん
:2005/10/25(火) 14:38:24
>>394
すいません、言葉足らずでした。
ImmSetCompositionString()を用いて
その後に続く打鍵と組み合わせてローマ字入力を成立させるには
どうすればいいのか、という質問です。
402
名前:
デフォルトの名無しさん
:2005/10/25(火) 15:01:43
VC++でADODBでOracle9.0.2へつないでるんだが、
ハンドルリーク、メモリリークしてしまう。
これって何処に質問したらいいんだろ?ココでいいのかな?
ダメなら誘導してくれまいか。
403
名前:
デフォルトの名無しさん
:2005/10/25(火) 15:17:37
>>402
http://www.microsoft.com/japan/msdn/subscriptions/resources/MSDNIncident.aspx
404
名前:
402
:2005/10/25(火) 15:29:44
>>402
のコードはこんな感じなんだが、なんかおかしいところある?
::CoInitialize(NULL);
_RecordsetPtr m_pRecordset; // Recordsetオブジェクト
_ConnectionPtr m_pConnect; // Connectionオブジェクト
_CommandPtr m_pCommand; // Commandオブジェクト
// ADOオブジェクトの生成
m_pConnect.CreateInstance(__uuidof(Connection));
m_pCommand.CreateInstance(__uuidof(Command));
m_pRecordset.CreateInstance(__uuidof(Recordset));
// データベースへの接続
if(FAILED( m_pConnect->Open(L"Provider=OraOLEDB.Oracle;Data Source=ORACLE_OLETEST",L"TESTUSER", L"TESTUSER", adOpenUnspecified))) return FALSE;
// SQLの設定
CString strSQL = "SELECT B.NAME A.BIN_DATA from TBL_CMN_MASTER A, TBL_CMN_LAWDATA B where B.ID = 'TEST' AND B.ID = A.ID";
m_pCommand->ActiveConnection = m_pConnect;
m_pCommand->CommandText = _bstr_t((LPSTR)strSQL);
m_pRecordset->PutRefSource(m_pCommand);
// レコードセットの取得
_variant_t vNull; // VARIANT型のNULLとして使う
vNull.vt = VT_ERROR;
vNull.scode = DISP_E_PARAMNOTFOUND;
m_pRecordset->CursorType = adOpenKeyset;
hr = m_pRecordset->Open(vNull, vNull, adOpenKeyset, adLockOptimistic, adCmdUnknown);
if( m_pRecordset->RecordCount == -1 ) return FALSE;
// 先頭レコードへ移動し、フィールドの値を取得
m_pRecordset->MoveFirst();
_variant_t vString = m_pRecordset->GetCollect(_variant_t("NAME"));
m_pConnect->Close();
m_pConnect.Release();
m_pCommand.Release();
if( adStateOpen == m_pRecordset->State ) m_pRecordset->Close();
m_pRecordset.Release();
::CoUninitialize();
405
名前:
デフォルトの名無しさん
:2005/10/25(火) 15:31:57
>>403
うは、インシデント使えってか。
とりあえず、悪いのがADODBかOracleのOLEDBか俺のコードか切り分けたいんでお願いします。
406
名前:
デフォルトの名無しさん
:2005/10/25(火) 20:17:59
どうでもいいがReleaseは直接呼ぶ物じゃないと思った。
あとどうやってリークを確認した?
407
名前:
デフォルトの名無しさん
:2005/10/25(火) 20:26:27
>>404
m_pConnect->Close()後にm_pRecordset->Close()は順番逆のような
408
名前:
デフォルトの名無しさん
:2005/10/25(火) 20:29:18
Releaseは CoUninitialize の前にやっとくってことで呼んでも構わない。
あたりまえだけど。
>>402
MDAC 2.1 以降では ADO とかってデフォルトでコネクションプーリング
してるという話もあるから、それがメモリリークに見えてるだけでは?
409
名前:
デフォルトの名無しさん
:2005/10/25(火) 23:42:15
コンピュータがロックされているかを知る方法ってありませんか?
ユーザがウィンドウズをロックしてたら退席中、という判断をしたいんですが。
410
名前:
デフォルトの名無しさん
:2005/10/25(火) 23:42:48
>>406
が言いたいのは、たぶん、
人間が手作業でReleaseを呼ぶコードを書くとミスをしてリークするから、
ATLとかがやっているように、軽くクラスでラップして自動的に呼ぶようにすべし、ってことでしょ。
>>408
Releaseを呼ばずにCoUninitializeするのは、とっても行儀が悪いよ。
OSが勝手にReleaseを呼んでくれると思ったら大間違い。
もしアウトプロセスなら、参照カウントが減らないまま残ってしまうよ。
で、いうとおり、各種リソースがプーリングされてたりするので、
リソースのリークは、たくさんループさせて様子をみないと判別が難しい。
411
名前:
デフォルトの名無しさん
:2005/10/25(火) 23:45:07
>>409
ある。
412
名前:
デフォルトの名無しさん
:2005/10/25(火) 23:46:31
>>411
あるんすかー
教えて…いただけません?
413
名前:
デフォルトの名無しさん
:2005/10/26(水) 00:34:59
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/how_to_lock_the_workstation.asp
> To determine whether the workstation is locked, test whether your window is visible.
とか書いてる。知らんけど。
414
名前:
デフォルトの名無しさん
:2005/10/26(水) 00:46:24
>>413
おおなるほど。
サービスアプリケーションにするつもりなんで、visibleかどうかで判断はできないかも。
というか↓を使えばいいのでは!
> use the WTSRegisterSessionNotification function to register to receive
> WM_WTSSESSION_CHANGE messages.
ありがとうございました。なんとかなりそうな気がしてきました。
415
名前:
デフォルトの名無しさん
:2005/10/26(水) 01:31:00
>>414
サービスだったらRegisterServiceCtrlHandlerEx使って、HandlerExで
dwControlがSERVICE_CONTROL_SESSIONCHANGEかどうかを調べる。
パラーメータとかは↓見て
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/handlerex.asp
416
名前:
デフォルトの名無しさん
:2005/10/26(水) 02:16:58
>>415
わー、ありがとうございます。やってみます。
417
名前:
402
:2005/10/26(水) 10:01:10
皆さんレスありがとう。
>>406
タスクマネージャのプロセスタブを開いて数十回
>>404
のコードを実行してから10分放置して、
メモリ使用量と、ハンドルの数を確認したら、両方増えていた。
特にハンドルは1回実行すると2個増える。
で、Oracleの掲示板で、接続の度にコネクション作成&使用後に消去を繰り返すと、
メモリリークするっていう書き込みを見つけたので、今朝自作のコネクションプーリングを
組み込んでテストしてみた。
結果、なんとハンドルリークは無くなった。
メモリリークはもうちょっと動かさないとわかんないけど、良くなったけどまだ増えてるような...
>>407
まったくその通りだね。指摘ありがとう!
>>408
404のコードを10秒スリープ付でループで実行して、数時間放って置くとハンドル、メモリとも
ものすごく増えてます。だからリークしてる、と思う。
>>410
えええ!ADODBはデフォルトでプーリングしてますか。
それにさらに自作のプーリングつけるのってなんか間抜けだな...
てことで、ADODB+OracleOLEDB(9.0.2)はコネクション作成&消去を繰り返すとリークすると思う。
それとSQLServerでDB作ってODBC経由で
>>404
のコードをテストしてみたら、リークしませんでした。
418
名前:
デフォルトの名無しさん
:2005/10/26(水) 11:44:22
SetPropはグローバルアトムじゃなく、ローカルアトムでも正常に動くんですね。
419
名前:
デフォルトの名無しさん
:2005/10/26(水) 13:53:18
>ADODB+OracleOLEDB(9.0.2)はコネクション作成&消去を繰り返すとリークすると思う。
いくらなんでもこの結論はちょっと……
このあたりは確認済なのでしょうか。
- COMオブジェクトを作るだけでDBに接続しない場合
- 別のOLEDBプロバイダを使った場合
JET、SQLServer、etc
- CoInitialize〜CoUninitializeを繰り返すのではなく、COMの初期化・後片付けは1回だけにして
その中を繰り返し実行する(繰り返し呼ぶのが良くない場合を考慮)
>それとSQLServerでDB作ってODBC経由
なぜわざわざODBC経由なのでしょうか。こっちもOLEDBプロバイダを使わないと正確な
比較にはならないと思います。
420
名前:
402
:2005/10/26(水) 17:23:55
>>419
言葉が足らなくて申し訳なかったのですが、
ADODB+OracleODBCも試しましたが同様にリークしました。
SQLServerへのOLEDBでの接続は、やり方がちょっとわからなかったので試してません。
あー、COMオブジェクトの作成だけ繰り返すとかもやりましたがもちろん問題なし。
悪いところがADODBかOracleのOLEDBか俺のコードか切り分けたかったので、
俺的にはとりあえずコードじゃないんじゃないかって感じでもうOKです。
これ以上別のプロバイダを試すのは、時間的に余裕が無いので、
ちょっと結論が飛躍したのは勘弁してください。
ちゅか、俺的決め付けの結論なんか書かなきゃ良かった^^;
421
名前:
419
:2005/10/26(水) 18:14:56
>>420
ふーん、まあOracleの場合はOLEDBよりoo4oの方がいいという噂も聞いたことがあるので、
OLEDBプロバイダはよろしくないのかもしれませんね。
別DBへの接続文字列に関しては、udlファイルを使うのが楽ではないかと思います。
・中身が空、拡張子がudlのファイル(hoge.udlとか)を適当に作る
・ダブルクリックすると設定画面が出る
・設定する
・udlファイルの中身をのぞく
・(゚Д゚)ウマー
422
名前:
デフォルトの名無しさん
:2005/10/26(水) 20:43:50
あるキーAが押された時、処理Aを実行し、
別のキーBが押された時、処理Bを実行するプログラムで
仮にキーA、キーBをそれぞれZ、Xとした場合
// WM_CHARで
if(wParam=='z'){
処理A;
}
if(wParam=='x'){
処理B;
}
のようにしているのですが、zとxを同時に長押しした場合、
長押ししている間、処理Aと処理Bを共に実行するようにするには
どうすれば良いのでしょうか。
423
名前:
デフォルトの名無しさん
:2005/10/26(水) 20:52:33
同時押しが判定できるのはCtrl Shift Alt とか
424
名前:
デフォルトの名無しさん
:2005/10/26(水) 21:15:10
>>423
判定はできなくても処理さえ同時に実行できれば良いのですが
何か方法はないものでしょうか
425
名前:
デフォルトの名無しさん
:2005/10/26(水) 21:20:16
GetAsyncKeyStateを見てるスレッドを二つたてれば?
426
名前:
デフォルトの名無しさん
:2005/10/26(水) 22:48:03
>>423
それは嘘。
キーのmakeとbreakのメッセージを受け取り、
自前で押下状態かどうかを管理すればいい。
Zをmake
Xをmake
ずっと続く
Xをbreak
Zをbreak
とかいうふうにメッセージが来るからさ。
427
名前:
デフォルトの名無しさん
:2005/10/26(水) 22:52:31
ShiftとかCtrlじゃない普通のキーはそもそもハードウェアレベルで同時押しが検知できない場合がある、
つーのは前提として知ってるよな?
428
名前:
デフォルトの名無しさん
:2005/10/26(水) 23:05:04
そんなのはイヤです。
429
名前:
デフォルトの名無しさん
:2005/10/26(水) 23:11:46
嫌よ嫌よも好きのうち
430
名前:
デフォルトの名無しさん
:2005/10/26(水) 23:22:49
>>428
/::::::::::::::::::::ヽ、 /:::::::::::::::::::::::ヽ
/:::::::::::::::::::::::::::::::ヽ /::::::::::::::::::::::::::::::::::ヽ
/::::::::::::::::::::::::::::::::::::::::::l l::::::::::::::::::::::::::::::::::::::::::l
l::::::::::::::::::::::::::::::::::::::::::::::l l::::::::::::::::::::::::::::::::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::/_,.......-;,==-...ヽ::::::::::::::::::::::::::::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::/:::::::/ `ヽ::::::::::::::::::::::::::::::::::::::/
ヽ::::::::::::::::::::::::::::::/:::::::::/ / ̄ ヽ/⌒ヽ:::::::::::::::::/
ヽ、:::::::::::::_/::::::::::::/ / ⌒ ヽ¬−'´
 ̄ /:::::::::::::::::l l:|
l::::::::::::::::::l l:l
l::::::::::::::::::l <●> l:l
l::;, -ー 、::l 、<●> .l:l
/ ヽ l::l
l _ ( ○ ,:○),, ∠く
l _ l
ヽ ヽ ./
\ \、 __,-'ニニニヽ /
ヽ 、 . ヾニ二ン" /
ヽ: : : ./
| |
ヽ\ /
l `ー-::、_ ,,.'|
431
名前:
デフォルトの名無しさん
:2005/10/26(水) 23:26:17
>>429
__ ,....-─-、
/::::::::::::::::::::ヽ、 /:::::::::::::::::::::::ヽ
/:::::::::::::::::::::::::::::::ヽ /::::::::::::::::::::::::::::::::::ヽ
/::::::::::::::::::::::::::::::::::::::::::l l::::::::::::::::::::::::::::::::::::::::::l
l::::::::::::::::::::::::::::::::::::::::::::::l l::::::::::::::::::::::::::::::::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::/_,.......-;,==-...ヽ::::::::::::::::::::::::::::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::/:::::::/ `ヽ::::::::::::::::::::::::::::::::::::::/
ヽ::::::::::::::::::::::::::::::/:::::::::/ / ̄ ヽ/⌒ヽ:::::::::::::::::/
ヽ、:::::::::::::_/::::::::::::/ / ⌒ ヽ¬−'´
 ̄ /:::::::::::::::::l ,,,,,,, ノ ヽ,,,,, l:|
l::::::::::::::::::l '''""" """'' l:l
l::::::::::::::::::l -=・=‐, =・=- l:l
l::;, -ー 、::l "''''" | "''''" l:l
/ ヽ ヽ l::l
l _ ^-^ ∠く
l _ l
ヽ ヽ -====- ./
\ \、 "'''''''" ./
ヽ 、 . /
432
名前:
デフォルトの名無しさん
:2005/10/26(水) 23:28:27
:::;;;;;;,-''''''''-;;;,;;;;;;
;;;;;;;;;;i´ `i;;;;;::::
;;;;;;;;┌' <●>'ヘ;;:
;;;;;;;;;)ュ, o) ,r(;;;
:;;;;;;;;;> ∋/ヾ;;;;;;;
;;;:,チ''゛ :`::::::':': ゙゙Y;;;;::::
::;;;;y'´ , `{;;;;;:::::
::;;;.(, ″ '(;;;::
;;;;;:`,ll'-=@ ll |:::
::::| ゙;,_ ,: ゙ i;;;;,,,,,,,,,
:::::i :::: .'-、;;;;;;;;;;;:::::
;;;;;;;;ハ i::::: ....::::'' `'<;;;;;::::
::;;;;;.ハ '(i|||||lllllllliiii=''′ .,};;;;''''
_,,,,,lllllllシ ,,illllllllll″ ,__,,,,,,,,,iiillllllllllllll)
.(lllllllllllll、,,,ィ'illlllllllllllli, ゙lllllllllllllllll!゙゙゙゙゙゙
`”゙゙゙゙゙゙llllllllllllllllllllllュ,,j'lllll゙
ヴァカだリャ。
マた来テュのか。
433
名前:
デフォルトの名無しさん
:2005/10/26(水) 23:30:02
天才現るw
434
名前:
デフォルトの名無しさん
:2005/10/27(木) 01:03:17
作品でのエラーチェックはどこまでやるのがいいのでしょうか。
今の所やっているのは、メモリ確保系、Bitblt、SetTimerなど、
やっていないのは、GetDC、ReleaseDCなどです。
435
名前:
デフォルトの名無しさん
:2005/10/27(木) 01:06:20
>>434
好きにしろ
436
名前:
デフォルトの名無しさん
:2005/10/27(木) 01:50:54
可能な全部のAPIでチェックしないとダメだよ
437
名前:
デフォルトの名無しさん
:2005/10/27(木) 05:12:42
Windows で .NET を使わずに UNIX の strptime(3) のような処理を行う関数っ
てありますか?(.NET なら DateTime.Parse でいけそうなんですが...)
438
名前:
デフォルトの名無しさん
:2005/10/27(木) 06:49:11
VarDateFromStr()
439
名前:
デフォルトの名無しさん
:2005/10/27(木) 10:09:25
なんだこれ
http://home.hiroshima-u.ac.jp/c-program/sdk/archive/rtl.zip
440
名前:
デフォルトの名無しさん
:2005/10/27(木) 19:15:59
何だこれ、ってURL遡れば、SDKサンプルプログラムの「タイトルのボタンを左右逆にする」だと分かるはずだが
きっと違うことを聞きたいんだろうな。日本語って難しいね★
441
名前:
デフォルトの名無しさん
:2005/10/27(木) 19:46:07
これなんだ
442
名前:
デフォルトの名無しさん
:2005/10/27(木) 21:41:26
CPoint の配列で表される多角形の中に CPoint で表される一点が含まれているかどうか
直接調べる関数はありますか?
CRgn に頂点を渡してから PtInRegion で調べる方法もありますが何か無駄な気がします。
443
名前:
デフォルトの名無しさん
:2005/10/27(木) 21:45:44
>>442
ない
444
名前:
デフォルトの名無しさん
:2005/10/27(木) 21:53:18
時に無駄と思える手順を踏むことも大切なのだよ
445
名前:
442
:2005/10/27(木) 21:54:47
>>443-444
そうですか・・・どうもでした。
446
名前:
デフォルトの名無しさん
:2005/10/27(木) 22:08:24
>>434
俺の場合、たしかに一部の関数は引数がおかしくない限り必ず正しい結果を返すと信じて、エラーチェックをしていない。
ただ、GetDC()など処理の開始として行う関数は必ずエラーチェックを行う。
447
名前:
デフォルトの名無しさん
:2005/10/27(木) 23:24:34
あるウィンドウに丸や三角を描画しているのですが、
あるボタンを押すと、あるウィンドウ内の図形が全て削除される。
というようなことをしたいのですが、どうしたらよいのでしょうか?
448
名前:
デフォルトの名無しさん
:2005/10/27(木) 23:26:15
DestroyWindows
449
名前:
デフォルトの名無しさん
:2005/10/27(木) 23:38:50
>>447
背景色で塗りつぶすではまずいの? UNDO とかしたいのかな。
450
名前:
デフォルトの名無しさん
:2005/10/27(木) 23:39:22
リンクエラー
451
名前:
434
:2005/10/28(金) 00:20:13
ありがとうございます。
GetDCなどをチェックせず、Bitbltだけチェックするのは、
GetDCなどでエラーが出れば、Bitbltでもエラーが
出てくれるのではないかという考えからでした。
裏ビットマップに描くとか、Bitblt系の一連の動作は、
前後のメモリ確保、初期化、開放とか量が多いので、
楽をしていました。
ご指摘通りちゃんとチェックしたいと思います。
452
名前:
デフォルトの名無しさん
:2005/10/28(金) 00:25:22
そうです、背景色で塗りつぶしたいのです。
453
名前:
デフォルトの名無しさん
:2005/10/28(金) 00:51:13
>>452
じゃあ背景色で塗りつぶしたらいいじゃない。
丸や三角が描画できてるんなら簡単だろ。
454
名前:
デフォルトの名無しさん
:2005/10/28(金) 02:53:53
BMPファイルを操作するAPIなぞは提供されていないでしょうか?
455
名前:
デフォルトの名無しさん
:2005/10/28(金) 03:10:10
OpenFile
456
名前:
デフォルトの名無しさん
:2005/10/28(金) 06:37:36
GDI+
457
名前:
デフォルトの名無しさん
:2005/10/28(金) 08:02:54
どういう操作がしたいんだよ
458
名前:
デフォルトの名無しさん
:2005/10/28(金) 10:26:19
私も、GDI+がよいと思う。
比較的有名なCodeProjectのCxImageクラスと比較してもGDI+が圧倒的に優位。
ファイルフォーマット変換時の実行速度・圧縮効率もGDI+の方が上。TIFFも標準サポートしている。
459
名前:
デフォルトの名無しさん
:2005/10/28(金) 10:28:53
すいません、GetAsyncKeyStateで5ボタンマウスの左右についてるボタンが押されている状態を取得したいのですが、
いくら調べても5ボタンマウスの左右の押されている状態を取得するサンプルが見当たらないのですが、
どなたか知ってらっしゃる方いらっしゃいましたら教えていただけませんでしょうか
460
名前:
デフォルトの名無しさん
:2005/10/28(金) 10:33:53
>>459
VK_XBUTTON1, VK_XBUTTON2あたりがそれっぽいけど、
実際5ボタンマウス持ってないからわからん。
461
名前:
デフォルトの名無しさん
:2005/10/28(金) 11:05:51
8ボタンマウス使っている俺がマジレスすると、俺も分からん
462
名前:
デフォルトの名無しさん
:2005/10/28(金) 11:12:18
ロジクール、12ボタンのレーザーマウス「MX610」
http://pc.watch.impress.co.jp/docs/2005/1007/logicool.htm
463
名前:
デフォルトの名無しさん
:2005/10/28(金) 11:17:34
マウスじゃなくてUSBデバイスなのでは?
464
名前:
デフォルトの名無しさん
:2005/10/28(金) 12:57:53
DirectInputつかえ
465
名前:
459
:2005/10/28(金) 14:51:36
やっぱりみんなわからないですかー
466
名前:
ビル・ジョブス
:2005/10/28(金) 16:10:17
>>459
ところで、ドライバには聞いてみたの?
467
名前:
デフォルトの名無しさん
:2005/10/28(金) 19:21:30
>>465
わかったら答えてるわヴォケ・゚・(ノД`)・゚・
468
名前:
デフォルトの名無しさん
:2005/10/28(金) 19:32:02
VK_XBUTTON1 と VK_XBUTTON2 だよ。
mplayer用にボタン4,5を使えるようにするパッチとかで使ってるから
たぶん使えるんだろう。
469
名前:
デフォルトの名無しさん
:2005/10/28(金) 19:35:45
とりあえず
GetSystemMetrics( SM_CMOUSEBUTTONS ) でマウスボタンの数が取得出来る
で、
GetKeyboardState(pbKeyState)
のデータをダンプしてみてはどう?
470
名前:
デフォルトの名無しさん
:2005/10/28(金) 21:24:01
VC++7.0(VS2003)で、Win32アプリケーションでやってます
GDI+に関してなんですが
Gdiplus::Graphics objGraphics(hdc);//描画オブジェクト
Gdiplus::Image objBgImage(_TEXT("bg.png"), FALSE);//BG
Gdiplus::Image objFgImage(_TEXT("test.png"), FALSE);//FG
Gdiplus::RectF rcSrc(0.0f, 0.0f, 320.0f, 420.0f);
Gdiplus::RectF rcDst(160.0f, 60.0f, 320.0f, 420.0f);
Gdiplus::ImageAttributes objAttr();//ImageAttributes
objGraphics.DrawImage(&objBgImage, 0, 0, objBgImage.GetWidth(), objBgImage.GetHeight());
objGraphics.DrawImage(&objFgImage, rcDst, rcSrc, Gdiplus::UnitPixel, &objAttr);
こんな感じで呼び出そうとすると、2つ目のDrawImageが
DrawImage(Image*, RectF&, RectF&, Unit, ImageAttributes*)でなくてはいけないのに
DrawImage(Image*, REAL, REAL, REAL, REAL)と解釈されて、
RectFからREALへ変換できませんとエラーが出て困っています
どうにかして解消できませんでしょうか?
471
名前:
デフォルトの名無しさん
:2005/10/28(金) 21:53:04
え?
472
名前:
470
:2005/10/28(金) 22:08:00
何かおかしいですか?
473
名前:
デフォルトの名無しさん
:2005/10/28(金) 22:28:42
うちのgdiplusgraphics.hには、2つめがRectFなのは
DrawImage(Image*, const RectF&, REAL, REAL, REAL, REAL, Unit, ImageAttributes* 〜)
DrawImage(Image*, const RectF&)
しか無いよ。
474
名前:
デフォルトの名無しさん
:2005/10/28(金) 22:34:11
>何かおかしいですか?
PSDKのドキュメント。
>>473
の様に実際にヘッダに当たって確認すべし。
475
名前:
407
:2005/10/28(金) 22:39:32
GdiplusGraphics.hの中を見たところ、
>>473
さんと同じものしかありませんでした・・・
早とちりですみません・・・
MSDNのあのテキストはいったい・・・
476
名前:
デフォルトの名無しさん
:2005/10/28(金) 22:44:31
gdiplusはMSDNの記述があんまりあてにならんし、.Net Frameworkの物とも
微妙に違うし、なかなか苦労しますぜ。
477
名前:
デフォルトの名無しさん
:2005/10/29(土) 01:44:31
てかスレ違いだけどMSDNはいつになったら日本語版リファレンスを完全に
してくれんだ?英語を読むのは苦手だよ・゚・(ノД`)・゚・
478
名前:
デフォルトの名無しさん
:2005/10/29(土) 01:50:04
そういうこと書くと原書厨が沸きますよ^^
479
名前:
デフォルトの名無しさん
:2005/10/29(土) 02:05:00
MSDN日本語訳完全版作ったらお金になるかな?
480
名前:
デフォルトの名無しさん
:2005/10/29(土) 03:00:38
3万円までなら出す
481
名前:
デフォルトの名無しさん
:2005/10/29(土) 08:29:25
辞書アプリか翻訳アプリをローカルPC上で使えばいいだろ。
日本語訳に期待するのはやめた方がいい。
意味不明な日本語訳がある場合、大抵は元ソースも意味不明だ。
茶を濁すようなピントのボケた文章は、日本語だけでなく英語圏にも存在する。
あきらめろ。
482
名前:
デフォルトの名無しさん
:2005/10/29(土) 09:14:24
> 意味不明な日本語訳がある場合、大抵は元ソースも意味不明だ。
そうでもない
483
名前:
デフォルトの名無しさん
:2005/10/29(土) 09:56:46
>>482
君は、数学の教科書が英語で書いてあったら判りにくいけど、
日本語で書いてさえあれば全て理解できるのだね。
凄いね、いつも100点とれるね。
484
名前:
デフォルトの名無しさん
:2005/10/29(土) 10:40:53
数学なんてパターンおさえれば大抵はとけるから
試験で満点取るのは難しい話でもない。
理論的な部分となると別だが。
485
名前:
デフォルトの名無しさん
:2005/10/29(土) 10:50:41
>>484
気の毒だが、君が数学と思い込んでいたのは算数であって数学ではない。
大学に上がってつまづく数学科の学生もいるが、
この点が理解できずに脳内で高校数学を算数として最適化したツケが大学生になって露見したのだといえる。
君は、英語ベースの弁護士試験は難しいが、日本語なら簡単なのだと錯覚するタイプの人間だろう。
理解できない理由を言語に求める愚を犯すべきでない。単に、君が馬鹿なだけだ。
486
名前:
デフォルトの名無しさん
:2005/10/29(土) 11:04:30
>>485
ワラタ
ちなみに躓くは「つまづく」じゃなくて「つまずく」が本則だ。
487
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:03:32
数学=ペーパーテストなのか
>>484
は。
>>483
は何故いきなり数学とか言い出したのだろう。
488
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:24:28
>>487
483は単に喩えとして出しただけだと思うが。
489
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:32:01
C言語で、ワードサイズをHIGHバイト、ROWバイトに分けるマクロってなかったけ?
忘れて困ってるんだが。。
490
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:36:55
ROWは知らん
491
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:38:24
揚げ足取らないでよ。。。・゚・(ノД`) LOWね。
492
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:40:40
>>489
ms-help://MS.PSDK.1033/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmacros/hibyte.htm
493
名前:
デフォルトの名無しさん
:2005/10/29(土) 12:46:18
>>492
ありがと。おかげで思い出せました。
でもどうして変数をBYTEサイズにしなくちゃいけないんだろう。。暗号は難しい・・。
494
名前:
デフォルトの名無しさん
:2005/10/29(土) 14:13:26
MSDNライブラリのWin32APIの日本語訳は間違ってることがあるので、原文を読むべし。
たとえばGetDiskFreeSpaceの引数lpRootPathNameの説明。
■2001年10月やVS.NET2003添付の日本語版
一方、"C:" のようなドライブ指定の最後に円記号を付けることはできません。
■2001年10月英語版
However, a drive specification such as "C:" must have a trailing backslash.
■VS.NET2003添付の英語版
Furthermore, a drive specification must have a trailing backslash (for example, C:\).
495
名前:
デフォルトの名無しさん
:2005/10/29(土) 14:43:50
「SDK32:GetDiskFreeSpace と GetDiskFreeSpaceEx について」より
> ドライブがドライブ文字で、UNC パスではない場合、
> ドライブ文字とコロンの後にバックスラッシュを不可する。
> これは Windows 95 と 98 の制限である。
これも変だな。不可→付加じゃね?
496
名前:
デフォルトの名無しさん
:2005/10/29(土) 16:19:14
>>488
つーか何で482のレスが483になるのか意味不明。
どこをどう読んだら英語だと分からないけど日本語なら分かるって意味になるんだか
(むしろ日本語だと分からなくても原文を読むと分かる場合があるという意味で
書いたのに)
497
名前:
デフォルトの名無しさん
:2005/10/29(土) 16:34:50
http://www.ni.bekkoame.ne.jp/bilyzkid/jp/agnss/index.htm
498
名前:
デフォルトの名無しさん
:2005/10/29(土) 16:50:55
>>496
「分からない」とはどういう意味なのか。
実際のAPI挙動と日本語文書が違っていた場合は、
少なくとも日本語文書の意味が分からない状態ではない。
日本語文書を理解したうえで記述の間違いに気づくことができた、
あるいは、英語オリジナルとの相違に気づくことができた状態であり、
断じて「分からない」状態ではない。
現実には、日本語が分かりにくく、英語が分かりやすいという状況は少ない。
多くの場合、明瞭な英語文章は日本語訳されても明瞭さを保つものだ。
混乱の原因の多くは、専門用語をカタカナかアルファベットで表記されるべきものが、
翻訳の過程でまんまと日本語文章に紛れ込んでしまった場合だろう。
しかし、この種の混乱は、第三者が文章を読んだ時に普通に発生してしまうものであり、
英文読解の時だけ専門用語と一般語を混同せずに理解できる、などという高度な芸当は成しがたい。
これは、ネイティブ連中であっても同様だ。
しばしば、MSプログラマは重要な事柄に、見分けの付きにくいアバウトな名称をつける癖がある。
Windows、Office、Word、Money、.NET。・・・枚挙に暇がない。
他にもactiveという単語の解釈の仕方に混乱が生じる。
日本人だけでなくネイティブからも怨嗟の対象となっているのだ。
499
名前:
デフォルトの名無しさん
:2005/10/29(土) 17:00:50
>>498
翻訳者がアホの場合は考慮していないのか?
500
名前:
デフォルトの名無しさん
:2005/10/29(土) 17:03:17
>>498
>ソフト1本あたり約2千円がライセンス料として任天堂の懐に転がり込んだ。
>もちろんカセット生産に掛かる料金は別途に請求された。
>
>さらにカセットの生産スケジュールや、発売日の決定権も任天堂が持っていたので
>気に入らないメーカーのソフトは、マスターと前払いさせた製造費用を預かったまま
>生産ラインに乗せずに数ヶ月ほど放置したり、意に沿わないメーカーのソフト発売日
>を他メーカーの売れ戦ソフトと同じ日にしたりと、それは見事な殿様商売ぶりだった。
>
>CD-ROMを採用すると、ソフトの生産をソニーかビクターに完全委託するしか選択肢
>がなくなるため、上記の殿様商売が続けられなくなる。
>
>それこそが、任天堂が意地でもCD-ROMを採用しなかった本当の理由だ。
>だが大容量化の波は止まらず、CD-ROMに対抗できる記録メディアも現れなかった
>ため、N64でもROMカセット方式を引き続き採用せざるを得なくなる。
>
>その間にもPSの快進撃は止まらず、今や任天堂の据え置き型ゲーム機は世界中の
>市場から、忘れられた存在となってしまった。
まで読んだ
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.