■過去ログ置き場に戻る■ 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.