■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build28
501 名前:デフォルトの名無しさん :05/02/26 15:39:29
>>491
WCHARを使わないのであれば、
文字列へのポインタをそのままインクリメントデクリメントせずに、
必ずCharNextとCharPrevを使うこと。

これでどう?>All

502 名前:デフォルトの名無しさん :05/02/26 15:50:42
473の株があったら空売りすれば絶対儲かる

503 名前:デフォルトの名無しさん :05/02/26 15:54:21
>>471
NT系のOSは、UNICODEを基本として動作しているわけだから
むしろMBCSを使う方が非効率だと思う。

504 名前:デフォルトの名無しさん :05/02/26 15:59:30
>473の株があったら空売りすれば絶対儲かる

これどういう意味?

505 名前:デフォルトの名無しさん :05/02/26 16:59:04
>>503
そのへんどうなんだろうねぇ
ファイル名なんかはUNICODEにしておくと無駄な変換がなくて済みそうだけど
ウィジェットのテキストラベルやテキストボックスなんかはどうなってるんだろ

506 名前:デフォルトの名無しさん :05/02/26 17:11:23
失礼します。

漢字変換のポップアップウィンドウを使いたいのですが。

http://www.geocities.jp/ayana_city/ime.JPG

MS側でAPIで用意されてると思うんですよ。たぶん。。。
フォントやファイルのコモンダイアログみたいに。
誰かご存知な方はいますか?

507 名前:デフォルトの名無しさん :05/02/26 17:29:07
>506
リンクが見れない。
どのウィンドウを指してるのかよくわからんが、
IMEの操作は、「Imm〜」で始まる関数と「WM_IME_〜」で始まるメッセージを使う。
特に"candidate"の扱い方を調べろ。

508 名前:デフォルトの名無しさん :05/02/26 17:29:21
>>503
それはプロセスが文字列リソースを扱っている時の話。
適切な関数を使わないと、ただのバッファデータにまで
重厚・親切な文字列処理が行われかねない。
本来memcmp・memcpyで済ませて構わない場所や
従来strlenでヌル終端位置を取得していた場所が無駄に重くなる。
Unicode対応は、確かに多言語対応・機能拡張には柔軟になるが
バイナリバッファへの直接アクセスがセールスポイントであるC/C++の恩恵を捨てることにもなる。

そもそもマルチバイトコードの大市場というべき日本語環境でMBCS版がちゃんと動くなら、
無理にUnicode版でビルドする必要など皆無。
あれは英語圏の人間が、未知のマルチバイト言語用にビルドするためのものといって差し支えない。

509 名前:506 :05/02/26 17:41:42
>>507
どうもです。

507さんの情報をヒントにグーグル検索をしたら、
いいものが見つかりました。
ありがとうです。
http://www.cisnet.or.jp/home/tsuneoka/win32tech/7.html

画像は見れると思うんですが(^^

510 名前:デフォルトの名無しさん :05/02/26 17:53:29
多機能・高速な日本語テキストエディタがUnicodeでビルドされる日は来ないだろう。
わざわざ独自の実装で直接バッファアクセスによる高速化・最適化を実現しているのを、
汎用的なWindowsAPIに置き換えるメリットなどないからだ。

511 名前:506 :05/02/26 18:10:20
候補ウィンドウを表示させるAPIがどうしても見つかりません。
http://www.geocities.co.jp/SiliconValley-Cupertino/5872/String/Ime/index.html

どのように表示させるのかご存知な方はいますか?

512 名前:506 :05/02/26 18:10:44
候補リストウィンドウ
http://www.geocities.co.jp/SiliconValley-Cupertino/5872/String/Ime/img3.gif

513 名前:506 :05/02/26 18:13:29
ImmGetCandidateWindow IME候補リストウインドウ位置取得
ImmSetCandidateWindow IME候補リストウインドウ位置設定

取得や設定ならわかりましたが、
肝心の変換文字を指定〜候補リストウィンドウの表示がわかりません。

514 名前:506 :05/02/26 18:14:54
IME候補ウィンドウのハンドルを取得できるのでしょうか?

515 名前:506 :05/02/26 18:18:06
ImmGetDefaultIMEWnd?

516 名前:デフォルトの名無しさん :05/02/26 18:27:18
>>512
やっぱりリンク先が見られないんだが。

IMEプログラミングは、かなり環境に依存するし情報も少ないので、
それなりに大変。ちょっと関数呼んで終わりとか、そういうのじゃないよ。
とりあえず、メッセージフック用ののソフトで、IMEを操作したときに
どういうメッセージがやり取りされてるか知れべて見ろや。
Spy、WinSightあたりを持ってないか。

517 名前:506edwin :05/02/26 18:31:18
>>516
そーですね。
こっちが覚えたくても情報がないから、
手探り状態。

でも乗り越えないといけない山・・・。
険しく寒い山。
ガンバ自分。

どうもです。

518 名前:デフォルトの名無しさん :05/02/26 19:47:10
http://home.h07.itscom.net/buruturi/VCTIPS_008.html
(3)-(F)のImmReleaseContext();の直後にreturn 0;を書けば(4)は不要。

519 名前:デフォルトの名無しさん :05/02/26 19:53:36
>>508
WindowsだからUTF-16が前提で話すけど
UNICODE文字列をmemcmp memcpyして何か問題ありますか?
wcslenは非効率な処理をしてるんですか?
むしろ1文字のバイト数が固定されているからランダムアクセスが
効率的に行えるでしょ。

SJISで文字探索するときの非効率さの方が問題。

520 名前:デフォルトの名無しさん :05/02/26 19:56:37
LPSTRを引数に取るAPIってさ、NT版だと内部でUnicodeに変換してるんでない?

521 名前:デフォルトの名無しさん :05/02/26 20:05:30
Windows XP は、Windows 9X や Windows MEのために書かれたアプリケーションとの
後方互換性を保つために、非 Unicode 文字 (ANSI や DBCS) をパラメータとしている
API を備えています。対応する API は Unicode 文字コードをパラメータとしてとります。
基本的には、非 Unicode API は、対応する Unicode API を呼び出す前に、パラメータ内
の文字コードを Unicode に変換します。

http://www.microsoft.com/japan/technet/prodtechnol/winxppro/evaluate/muiovw.mspx

522 名前:デフォルトの名無しさん :05/02/26 20:15:11
API呼ぶたびに文字列引数をMBCSからUnicodeに変換してるのって恐ろしく
非効率じゃないのかなぁ。俺、Unicodeでコンパイルしてるよ。

もちろん、SJISのほうが便利な部分もあるから、どっかでまとめて変換するんだけどね。
MBCS版のAPIを呼ぶことはしないな。

523 名前:デフォルトの名無しさん :05/02/26 20:44:59
Win9x 系を見捨てますかそうですか

524 名前:デフォルトの名無しさん :05/02/26 20:56:10
>>517
けなげだから、ヒント教えよう。
以下のコードを書いて実行してみてください。

char moji[]={"それがPSPの仕様だ。"};
HIMC hIMC = ImmGetContext(m_hWnd);
ImmSetCompositionString(hIMC, SCS_SETSTR, moji,strlen(moji),NULL,0);
ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_CONVERT, 0);
ImmNotifyIME(hIMC, NI_OPENCANDIDATE, 0, 0);
ImmReleaseContext(m_hWnd, hIMC);

あと、imm.hをinclude&リンク指定としてimm32.libを忘れずに。
これで結構、筋がわかると思うよ。

525 名前:デフォルトの名無しさん :05/02/26 20:59:22
>>523
tcharって知ってます?

526 名前:デフォルトの名無しさん :05/02/26 21:26:01
>>523
9xでもMicrosoft Layer for Unicode入れれば動かせたような希ガス。

527 名前:デフォルトの名無しさん :05/02/26 21:28:34
http://www.microsoft.com/downloads/details.aspx?FamilyId=73BA7BD7-ED06-4F0D-80A4-2A7EEAEE17E2&displaylang=en

528 名前:学生プログラマン :05/02/26 21:50:53
みんなUnicode対応と非Unicodeでちゃんとコンパイル出来る様にソース書いてないの?

529 名前:デフォルトの名無しさん :05/02/26 21:59:48
俺は一応、切替できるように作っているつもり。
しかし、実際のところWin98なんでUnicodeにしたことはない。
MSLUも試す気には(今のところ)ならない。

530 名前:デフォルトの名無しさん :05/02/26 22:01:01
どのみちUnicodeかMBCSかで内部のロジックまで組みかえる必要あるから最近は全部内部Unicodeで通してAPIは9xで使える奴だけに絞ってUnicode版直接呼んでる。

531 名前:デフォルトの名無しさん :05/02/26 22:16:10
ところでlstrcpyWはNT系と98以降ってなんでこんな中途半端なことになっているんだ?

532 名前:デフォルトの名無しさん :05/02/26 22:45:32
Unicode版とMBCS版で速度比較したらどんな結果がでるんだろうか?

533 名前:デフォルトの名無しさん :05/02/26 22:53:27
両対応にするとソースが
#ifdef _UNICODE
・・
#else
・・
#endif
だらけになる。

534 名前:デフォルトの名無しさん :05/02/26 23:23:05
>>533
> だらけになる。

・CStringみたいな文字列クラスを適切に使う
・TCHARだの_tcs*だのを使う

ってのを徹底すればそうでもない
完全になくすわけにはいかないけど、
末端に追いやることはできるっしょ

>>532
どっかないかねえ?

535 名前:デフォルトの名無しさん :05/02/26 23:43:13
ちょっとした比較物作ろうとしてもVC6だとiostream系が
(ノ∀`)アチャー
だからなぁ・・・。

536 名前:デフォルトの名無しさん :05/02/26 23:44:41
ファイル名はFindFirst系とかどうかな
User32だと何が適切だろう

537 名前:デフォルトの名無しさん :05/02/26 23:59:59
キーコードを、実際の文字charに変換する関数はなんでしょうか?

538 名前:デフォルトの名無しさん :05/02/27 00:10:31
>>537
MFCだけど
str.Format("%c ", nChar);

539 名前:デフォルトの名無しさん :05/02/27 01:33:20
すんごいバカ

540 名前:デフォルトの名無しさん :05/02/27 01:44:28
>>537
ms-help://MS.PSDK.1033/winui/winui/windowsuserinterface/userinput/VirtualKeyCodes.htm

541 名前:540 :05/02/27 01:46:01
>>537
何貼ってんだ俺
MapVirtualKey

542 名前:デフォルトの名無しさん :05/02/27 06:10:16
ウィンドウアプリケーションからコンソールアプリケーションを実行して、
出力される情報をリアルタイムで得るにはどうしたらいいのでしょうか?
出力をファイルにリダイレクトすれば、実行後には出力結果を得られますが、
あいにく実行時間が長いプログラムなので、リアルタイムで出力情報が欲しいのです。

543 名前:デフォルトの名無しさん :05/02/27 06:10:57
ぱいぷ?

544 名前:542 :05/02/27 06:22:12
自己解決しました。検索したら出てきました。
CreateProcessに渡すSTARTUPINFO構造体にhStdOutputという標準出力ハンドルがありました。

545 名前:デフォルトの名無しさん :05/02/27 09:57:22
>>541
かっこわるぅ〜。馬鹿だね。

546 名前:デフォルトの名無しさん :05/02/27 10:44:45
>>537
MapVirtualKeyでGo!
KeyDownイベントで拾うんだぞ。
ほかの同様のKeyイベントがあるけど、仮想キーコードが異なるんだ。

547 名前:デフォルトの名無しさん :05/02/27 11:56:01
>>546
それで今までやってきたのか・・・分かってないんだねぇ・・・
俺の部下にも注意しないと。

548 名前:537 :05/02/27 12:07:37
>>546
仮想キーコードが異なる場合、どのように対処すればいいのでしょうか?
同じキーでも、コードが異なるのでは処理がややこしくなるのですが。

549 名前:デフォルトの名無しさん :05/02/27 12:35:58
純粋にどのキーが押されたのかを知りたいだけなら、
GetAsyncKeyStateでも使えばいい。
本当はゲーム作ったりする時に使う関数だから、メッセージ通す方法の方が
いいのかもしれないけどね。

550 名前:デフォルトの名無しさん :05/02/27 13:12:33
>>549
>>547

551 名前:デフォルトの名無しさん :05/02/27 13:44:05
>>549
どっちかというと装飾キーの状態判定がメインな気が

552 名前:デフォルトの名無しさん :05/02/27 14:34:33
SelectObject(pPen);をはじめて実行したときは何が返ってくるんですか?


553 名前:デフォルトの名無しさん :05/02/27 15:54:53
コンパイルエラー

554 名前:デフォルトの名無しさん :05/02/27 16:24:17
506ではないですが、
自前でIMEの変換状態を描画しているのですが
COMPOSITIONとCANDIDATEの各ウィンドウを
表示させない(変換動作はバックグラウンドで行う)ように
するにはどうすればいいか、ご存知の方はいませんか?


555 名前:554 :05/02/27 17:19:49
COMPOSITIONウィンドウは以下で
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
HIMC hIMC = ImmGetContext(hWnd);
COMPOSITIONFORM cmf;
cmf.dwStyle=CFS_RECT;
cmf.rcArea.left=0;
cmf.rcArea.right=-5;
::ImmSetCompositionWindow(hIMC,&cmf);
・・・
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
とすれば、非表示になりましたが、CANDIDATEウィンドウを
非表示にする方法が分かりません。誰か教えてください。

556 名前:デフォルトの名無しさん :05/02/27 17:48:55
>>552
以前選ばれていた、Penハンドルが返ります。

557 名前:デフォルトの名無しさん :05/02/27 17:57:36
要するに、何も選ばれて無い状態のPenハンドルは、黒のドット一本線ですから。
それが返ります。
つまり、デフォルトの状態が返るわけです。

558 名前:デフォルトの名無しさん :05/02/27 18:13:05
>557
それを保存して後でまたSelectObject関数で戻さないといけないんですよね?
戻さないと何か問題ありますか?

559 名前:デフォルトの名無しさん :05/02/27 18:20:53
>>558
いえ、戻さなくても問題はおきませんが。
ただ、元(デバイスコンテキストに対するデフォルトな状態)に戻したいばあいは必ずあるので、SelectObjectが返すオブジェクトは大切だと思いますが。

560 名前:デフォルトの名無しさん :05/02/27 18:54:48
現在選択中のGdiObjectはDeleteObjectに失敗するので、
GDIリソースが漏れる。

561 名前:デフォルトの名無しさん :05/02/27 20:02:05
>559-560
thx


562 名前:デフォルトの名無しさん :05/02/27 20:26:39
GetStockObjectでとってきたGDIオブジェクトは解放せんでええから
いざとなったらそれSelectすればいい話だけどな。

563 名前:デフォルトの名無しさん :05/02/27 20:41:45
なるほど、良いこと聞いた

564 名前:デフォルトの名無しさん :05/02/27 20:51:07
スレッドA,B,Cがあって、CがEnterCriticalSectionでクリティカルセクションに入って
次にA,Bの順で同じクリティカルセクションに入った場合、
CがLeaveCriticalSectionで抜けると、次はAが動き始め、Bは待つのですか?
A,Bが一緒に動き始めたりしないですか?

Win2000です。



565 名前:デフォルトの名無しさん :05/02/27 20:52:53
ミューテックスをロックできた順に動きます。

566 名前:デフォルトの名無しさん :05/02/27 21:11:16
>>564

>次にA,Bの順で同じクリティカルセクションに入った場合、
>CがLeaveCriticalSectionで抜けると、次はAが動き始め、Bは待つのですか?
>A,Bが一緒に動き始めたりしないですか?

用語が混乱してますね。「クリティカルセクションに入った」ってことは、
Mutexをすでに獲得したということですよ。

というのは措いといて、A,Bが同時に動くことはありません。
必ず一つずつです。

567 名前:デフォルトの名無しさん :05/02/27 21:20:27
全てのコントロールをウィンドウ化させたら、重くなる?
ボタンもスクロールバーもタブもスライドもコンボボックスも。

568 名前:デフォルトの名無しさん :05/02/27 21:32:49
????????????

569 名前:デフォルトの名無しさん :05/02/27 21:37:28
全てのコントロールはウィンドウだと思われ


570 名前:デフォルトの名無しさん :05/02/27 22:00:02
VirtualAlloc(Ex)のflAllocationTypeのMEM_RESETって
どういうときに使うんでしょう?
page stateを変えるものではなさそうだし・・・

571 名前:デフォルトの名無しさん :05/02/27 22:08:45
>>566
平然とウソをつくのはやめてくれ。

572 名前:デフォルトの名無しさん :05/02/27 22:21:51
>>571
どこら辺がウソなの?


573 名前:デフォルトの名無しさん :05/02/27 22:35:13
>>572
クリティカルセクションとミューテックスを混同しているあたり。

574 名前:デフォルトの名無しさん :05/02/27 22:36:00
571ではありませんが
みゅーてっくすは全く関係ありません

575 名前:デフォルトの名無しさん :05/02/27 22:36:58
だから、素直にAdvancedWindows読め
Win32マルチスレッドプログラミングでもいいが

576 名前:デフォルトの名無しさん :05/02/27 22:39:11
>>570
AdcancedWindows読め
全ての答えが書いてある

577 名前:デフォルトの名無しさん :05/02/27 22:39:46
アドバンスド大戦略を読め。

578 名前:デフォルトの名無しさん :05/02/27 22:39:58
ここの奴らの言う事を鵜呑みにするなよ
合ってる場合は稀で、ほとんどが間違ってる
いいからAdvancedWindows買え

579 名前:デフォルトの名無しさん :05/02/27 22:40:33
アドバンスト覚えたて厨がうざいんですが

580 名前:デフォルトの名無しさん :05/02/27 22:41:28
アドバンスド・ファンタジアン

581 名前:デフォルトの名無しさん :05/02/27 22:42:01
>>564
EnterCriticalSection〜LeaveCriticalSectionで囲われた部分は同時に実行されない。
先にどこかのスレッドが中に入っている場合、後から来た方はEnterCriticalSectionで待ちぼうけ。
そういうことをさせるためのクリティカルセクション。

582 名前:デフォルトの名無しさん :05/02/27 22:44:31
クリティカルセクションはリソース競合が起きなかった場合、カーネルモードに移行しない
競合が起きた場合でも、所有権を持つスレッドはカーネルモードに移行せず実行される
だからミューックスより速い
これらの情報はすべてAdvancedWindowsに載ってる
買え

583 名前:デフォルトの名無しさん :05/02/27 22:54:11
もうスレッドとか、カーネル周りの質問とかは「AdvancedWindows読め」でいいよね。

584 名前:デフォルトの名無しさん :05/02/27 22:54:35
GameBoyAdvance

585 名前:デフォルトの名無しさん :05/02/27 22:56:26
>>574
あー、そういう意味でMutexと書いたわけではないのだが・・・。
いわゆるCreateMutex等で作られるオブジェクトではなく、
相互排他に使われるモノ一般のことを言ったんだけど、
確かに誤解される書き方でした。失礼。

しかしまあ、「クリティカルセクション」ってのは、
一般に相互排他されたコード領域を指す言葉なわけで、
クリティカルセクションに入「った」ってことは、
すでに相互排他された状態だと思うわけですよ。

WindowsのCRITICAL_SECTIONのおかげで、若干混乱しがちですが。

586 名前:デフォルトの名無しさん :05/02/27 22:59:14
>>585
おまえ、ミューテックスってどういう意味かわかってないだろ
いいからAdvancedWindows買えよ
意味載ってるから

587 名前:デフォルトの名無しさん :05/02/27 23:01:07
MuTeX は TeX で楽譜を組版するためのマクロパッケージです

588 名前:デフォルトの名無しさん :05/02/27 23:02:42
>>585
ホントに分かってなかったんだな。軽くジャブ入れただけだったのに。
どんまい。勉強して出直してきな。

589 名前:デフォルトの名無しさん :05/02/27 23:12:25
本屋の回し者がいっぱい居るな、ボケ

590 名前:デフォルトの名無しさん :05/02/27 23:17:21
こんにちわ、紀伊国屋書店です。

591 名前:デフォルトの名無しさん :05/02/27 23:22:32
紀伊国屋書店は、なぜ、カウンター員とレジ処理員が別になってるのか、理由きぼんぬ。

592 名前:デフォルトの名無しさん :05/02/27 23:23:32
MSDN のPlatform SDKのSynchronization Objectsにこと細かく書いてあるじゃん

593 名前:デフォルトの名無しさん :05/02/27 23:54:46
>>533
自作ライブラリのUnicode対応をやった。C++前提だと意外と楽だね。
関数オーバーロードとテンプレートを駆使して
MBCS版バイナリとUnicode版バイナリを、生成物の中で両立できた。

TCHAR.H依存のマクロ切り替えだと
MBCS版バイナリとUnicode版バイナリが共存できない。

594 名前:564 :05/02/27 23:59:23
みなさん。いろいろありがとうございました。
AdvancedWindows持ってますがいま会社に置きっぱなしなので
明日読みます。では

595 名前:デフォルトの名無しさん :05/02/28 00:48:17
AdvancedWindowsは定番って書いてあるのに
なんでAmazonだと配送に4〜6週間かかるんだろう?

596 名前:デフォルトの名無しさん :05/02/28 01:15:59
AdvancedWindowsなんて、普通の一般人は読まんよw
たぶん、在庫がないから発注してるんだろうな。

597 名前:デフォルトの名無しさん :05/02/28 01:38:04
普通じゃない一般人

598 名前:デフォルトの名無しさん :05/02/28 01:52:56
この業界なら普通だろ。
Windows系扱う会社でこの本が常備してないとこはヤバイな。

599 名前:デフォルトの名無しさん :05/02/28 02:07:50
Windowsプログラミングを仕事としている会社なんて極僅かだよw

600 名前:デフォルトの名無しさん :05/02/28 02:12:38
普通の一般人w

601 名前:デフォルトの名無しさん :05/02/28 04:51:07
私は普通の一般人です。
皆さんは普通の一般人ですか?

602 名前:デフォルトの名無しさん :05/02/28 05:38:59
P5ページです。

603 名前:デフォルトの名無しさん :05/02/28 09:37:27
ここはひどい AdvancedWindows ですね。

604 名前:デフォルトの名無しさん :05/02/28 10:00:56
AdvancedWindowsお買い上げいただきましてありがとうございます。

605 名前:デフォルトの名無しさん :05/02/28 10:19:28
AdvancedWindows ぬるぽ

606 名前:デフォルトの名無しさん :05/02/28 10:44:05
パスの示すものがファイルなのかフォルダなのかを調べる
APIを教えてください。以前使ったことがあるんですけど、
忘れちゃって…。

607 名前:606 :05/02/28 11:05:08
すいません、たまたま見つかりました。
GetFileAttributes ですね。

608 名前:デフォルトの名無しさん :05/02/28 18:05:15
WM_VSCROLLって垂直スクロールバーを触ったときに来るメッセージだけど
スクロールバーに触ってない状態でスクロールバーが動いたときにくるメッセージないの?

609 名前:デフォルトの名無しさん :05/02/28 18:39:40
sendmessageでWPARAMのLOWORDにメッセージ送りたいんだけどできる?

610 名前:609 :05/02/28 18:57:34
解決した

611 名前:デフォルトの名無しさん :05/02/28 18:57:53
>>608
或る夜

612 名前:デフォルトの名無しさん :05/02/28 19:00:02

文字間を制御する必要があるため、TextOutで1文字づつ出力しているのですが、ごく稀に
代替フォントで使用されたフォントがずーっと使用されてしまうことがあります。
1文字づつSelectObjectすればちゃんと出るのは確認してますが非常に遅くなります。

文字種(漢字・アラビア文字・ヘブライ文字とか)が分かればその変わり目で
再設定すれば良さそうなのですが、文字種を判定するにはどうしたら良いでしょうか。
テーブル作るのが早いのかなぁ…
あるいは代替フォントが使用される・されない・使用不可、等が判定できる方法が
ありましたらご教授ください。



613 名前:デフォルトの名無しさん :05/02/28 19:38:48
GetFontUnicodeRanges
とかか?

614 名前:デフォルトの名無しさん :05/02/28 20:00:20
>>611
はぁ?嘘言ってんじゃねぇよデブ

615 名前:デフォルトの名無しさん :05/02/28 20:13:20
なんかここで聞くよりホント>>439買ったほうが早そうだな。
こいつらmsdnより使えないことに最近気づいた

616 名前:デフォルトの名無しさん :05/02/28 20:26:32
聞く側の分際で

617 名前:デフォルトの名無しさん :05/02/28 20:35:45
>>615 はmsdn使えないへたれ

618 名前:デフォルトの名無しさん :05/02/28 20:58:56
MSDNの検索がうまくいかない

619 名前:デフォルトの名無しさん :05/02/28 21:36:53
>>612
字が多くて読む気しない
質問以前

620 名前:デフォルトの名無しさん :05/02/28 21:45:39
ム板ってID出ないんだね

621 名前:デフォルトの名無しさん :05/02/28 22:12:55
馬鹿には見えないんだよ、きっと。

622 名前:デフォルトの名無しさん :05/02/28 22:23:41
(´-`).。oO(またデブ好きが紛れ込んでいるな。ぜひとも実際に会ってみたいものだ)

623 名前:デフォルトの名無しさん :05/02/28 23:53:18
デブ好きなんだ…

624 名前:デフォルトの名無しさん :05/03/01 00:24:41
漏れ、会社でMSDNを知らない人っていうのをはじめて見たよ
チョトびびった。

625 名前:608 :05/03/01 08:40:36
教えてください。お願いします

626 名前:608 :05/03/01 09:33:01
解決しました。

627 名前:608 ◆HRpxQ/NMfs :05/03/01 10:05:27
>>626は偽者ですので教えてください。お願いします

628 名前:デフォルトの名無しさん :05/03/01 10:15:10
スクロールバーに触ってない状態でスクロールバーが動いたとき
ってどんな状況だ?ホイールスクロール?

629 名前:デフォルトの名無しさん :05/03/01 10:16:06
>>608
WM_VSCROLL

630 名前:デフォルトの名無しさん :05/03/01 10:29:45
>>608
つ Spy++

631 名前:デフォルトの名無しさん :05/03/01 10:36:25
>>608
っ Winspector

632 名前:デフォルトの名無しさん :05/03/01 10:37:51
つ ω

633 名前:612 :05/03/01 11:26:57
>613

ありがとう〜
GetFontUnicodeRanges
から辿ってみたら
GetGlyphIndices
てのもみっけ。

でもどちらも_WIN32_WINNT>=500なんでつね。
今回はXP前提なのでコレ使ってみまっす。



634 名前:デフォルトの名無しさん :05/03/01 12:09:26
ウィンドウベース(非コンソール)でのアプリケーションで
stdoutやstderrのデータを フック?して、EditBox等に表示したいんですが。
何かAPIありますか?

できれば、自分自身のアプリケーションと
systemやらCreateProcess、ShellExcecutなどで立ち上げた別のアプリケーションの
stdout,stderr,を別々に監視したいです。





635 名前:デフォルトの名無しさん :05/03/01 13:08:00
>>634
CreateProcessの引数のSTARTUPINFO構造体にstdin/out/errの各ハンドルを
指定できる。あとはパイプと組み合わせれば実現できます。
呼び出し側がVBならコレが使いやすいかもね。
ttp://www2d.biglobe.ne.jp/~Philopon/soft.html#tpcsrunca

636 名前:デフォルトの名無しさん :05/03/01 13:13:46
リッチエディットコントロールでは、
キーを押した時にメッセージは来ないのでしょうか。
普通のエディットコントロールでは、WM_COMMANDが来るようなのですが。

637 名前:デフォルトの名無しさん :05/03/01 13:42:07
リアルタイムにネットワークの転送量を表示したいのですが、
式はどうなるのでしょうか?
dwInOctets
dwInUcastPkts
dwInNUcastPkts
は表示できるのですが、Octetsは通信してない時も値が入ってますし・・
どうかよろしくお願いします。

638 名前:636 :05/03/01 15:39:38
サブクラス化して、WM_KEYDOWNで処理する事にしました。

639 名前:デフォルトの名無しさん :05/03/01 16:06:28
調査結果:
ファイルアクセスを必要とする場合、SJIS形式のファイルを読み込む処理がある場合が多い。
UNICODEファイルを読み込むケースはほとんどない。
SJISファイルをUNICODEビルドで読み込む場合に用いるC標準関数_fgetts()が非常に遅い。
エンコードと無関係な部分においても、
文字列ソートする際などに用いる比較関数_tcsicmp()の処理がUNICODE版は非常に遅い。


補足:
MFCのUNICODE版ソケットクラスには長らく不具合が存在した。
ソケットプログラムのようなマルチプラットホームを意識すべき環境には、
UNIOCDEで開発する人が少ないので不具合の発見が遅れたとみるべきだろう。


結論:
多くの場合、UNICODEビルド生成物は処理が遅い。
単にバッファサイズが2倍必要になるだけなく、諸々の処理も重くなる。
UNICODEビルドの優位性を確認できない場合がほとんどである。

640 名前:637 :05/03/01 16:49:20
移動します。スレ汚しスマソ

641 名前:デフォルトの名無しさん :05/03/01 17:04:17
C#NETなんですが、ListBoxのある特定のItem(行)の
文字色を変えたり、背景の色を変えたりすることはできますか?

642 名前:デフォルトの名無しさん :05/03/01 17:04:32
>>639
Win32スレなのに、NT系におけるAPIコールの速度比較を
何一つ行っていないのにワロタ。

643 名前:デフォルトの名無しさん :05/03/01 17:11:10
MFCスレでやれ。

644 名前:デフォルトの名無しさん :05/03/01 17:45:36
>>641
オーナードロー使え。
そしてスレ違い。

645 名前:デフォルトの名無しさん :05/03/01 18:36:50
>>644
色変えたいだけなのに
オーナードロー使え?
馬鹿も休み休み言え!

646 名前:デフォルトの名無しさん :05/03/01 18:39:57
>>645
オーナードロー

647 名前:デフォルトの名無しさん :05/03/01 18:43:42
正解はWM_CTLCOLORLISTBOX

オーナードローとか言ってる馬鹿は氏ね。

648 名前:デフォルトの名無しさん :05/03/01 18:57:49
こんばんわ

//フォーマット出力
void Format(TCHAR* pFm,...){
TCHAR pOut[MAX_LOADSTRING];
wsprintf(pOut,pFm,...);
}

フォーマット出力をするwsprintfを、自分で作成した関数Formatでラップしたのですが、
なぜかwsprintfの ... の部分の指定がおかしいとのエラーが出ます。
この場合、wsprintfの ... の部分はどのように指定すればいいのでしょうか?

宜しくお願いいたします。

649 名前:デフォルトの名無しさん :05/03/01 19:02:28
#include <stdarg.h>

va_list v;
va_start(v,pFm);
wvsprintf((char*)pOut,(char*)pFm,v);
va_end(v);

これで解決です。


650 名前:デフォルトの名無しさん :05/03/01 19:11:37
DirectXのバージョン情報を取得したいのですが、
どうやって取得したらいいのでしょうか?
SDKってやつも見てみたのですが、
なにで検索していいのかさっぱりわかりませんでした。
もしかしたらスレ違いかも知れないのですが、
よろしくお願いします。

651 名前:デフォルトの名無しさん :05/03/01 19:12:41
スタートメニューの「ファイル名を指定して実行」からdxdiagです。

652 名前:デフォルトの名無しさん :05/03/01 19:12:56
>>639
UNICODEビルドでSJISファイルを読むのに_fgetts()を使ってどうすんだよ。 w
無茶苦茶だな。

653 名前:デフォルトの名無しさん :05/03/01 19:14:56
>>647
オーナードロー

654 名前:デフォルトの名無しさん :05/03/01 19:15:20
>>647
行ごとにWM_CTLCOLORLISTBOXメッセージが来ないんですが・・・
うちのWindowsが悪いのかな



                       (・∀・)ニヤニヤ

655 名前:デフォルトの名無しさん :05/03/01 19:18:42
>>647
そのメッセージでどうやって特定の行の色を変えるの?

656 名前:デフォルトの名無しさん :05/03/01 19:19:40
そんなはずはありません。
OSを再インストーノレし最新パッチを当てれば解決します。

657 名前:デフォルトの名無しさん :05/03/01 19:20:50
おまいら釣られすぎですよ。

658 名前:デフォルトの名無しさん :05/03/01 19:21:42
こんなとこで釣りすんなよ
だれも寄り付かねーぞ

659 名前:デフォルトの名無しさん :05/03/01 19:28:46
>>651
ありがとうございます!
これで表示されているDirectXのバージョン情報を
API(C言語)で取得するのは可能なのでしょうか?
MSDNを見たのですが、どこのレジストリに書き込まれているのか
みつけられませんでした…


660 名前:デフォルトの名無しさん :05/03/01 19:35:50
>>659
GetFileVersionInfoで検索すればわかるよ

661 名前:デフォルトの名無しさん :05/03/01 19:35:55
>>639 
>UNICODEビルドでSJISファイルを読むのに_fgetts()を使ってどうすんだよ。 w 
>無茶苦茶だな。 


は?



662 名前:デフォルトの名無しさん :05/03/01 19:44:58
>>652
UNICODEビルドで速度を実測したことないのか?

APIへ文字列渡しする機会などほとんどない。
よってAPI呼び出しによる差異はほとんど発生しない。

むしろ、CのUNICODE関数が遅いために問題が発生する。
バッファをエンコードせず直接読み出した場合、
結局MBCS系の関数を使い続けなければならず、
UNICODE関数はSJISファイル処理に向いてない。

663 名前:デフォルトの名無しさん :05/03/01 19:47:57
ちょっと分からないのでヒントください。

今、ハードウェアを制御するアプリケーションを作っていて、ハードウェアには付属のDLLが付属していてそれを使ってコントロールまでは出来ます。
そこで、2つのアプリケーションからそのハードウェアを制御したいのですが、付属のDLLを使用すると当然1つのアプリケーションしか制御できません。
(2つ目のアプリケーションを実行した時点でハードウェアが無いと怒られる)
そこで、複数のアプリケーションから操作できるように付属DLLを操作するDLLを作成していて
今現在、DLL間での変数の共有やGetProcAddressで関数のアドレスの取得などやってみたのですが、動かず。
GetProcAddressは仮想メモリ空間のアドレスなので他プロセスから呼び出せないのは当然な所までは分かりました。
こんな感じにしたいのですが↓

 アプリケーション1→|
             |制御DLL→付属DLL→ハードウェア
 アプリケーション2→|

今思い浮かぶ解決策としては、別プロセスの関数を呼び出す、もしくは
DLL内にスレッドを作成し、スレッドをループさせ、共用変数を監視して実行させる方法の2種類です。
もうちょっと簡単な方法があると思うのですが、何かヒントをください。

664 名前:デフォルトの名無しさん :05/03/01 19:50:59
>>663
そんな君にこそAdvancedWindows。
読めばたぶん即・解決。
ここで説明してやってもいいけど長くなりそうなんでね・・・。
とりあえずNt系ならCreateRemoteThreadでも試せば?

665 名前:デフォルトの名無しさん :05/03/01 19:51:16
アウトプロセスCOMにでもしといたら?

666 名前:デフォルトの名無しさん :05/03/01 19:52:04
>662
UNICODEビルドなら、ReadFile直後にMultiByteToWideChar。
何でCRTのMBCS関数が関係するのかわからん。

667 名前:デフォルトの名無しさん :05/03/01 19:52:06
GetTextExtentPoint32
wsprintf

とりあえず思いついた、上記二つの関数1,000,000回連続呼び出しという
意味の無さそうなテストの結果。

UNICODE : GetTextExtentPoint=2.406sec wsprintf=2.407sec
MBCS : GetTextExtentPoint=2.547sec wsprintf=2.735sec

結論:
差はあるっつえばある

668 名前:デフォルトの名無しさん :05/03/01 20:00:35
>>663
漏れもOutprocのCOMにするのに1票。簡単だから。
何らかの事情でそれが出来ないなら、自前でサーバプロセスを作って、
クライアントはWindows Messageなりソケットなりで繋げて使う。

669 名前:デフォルトの名無しさん :05/03/01 20:04:25
>>666
え?
それじゃ、_wfopen()、fgetws()をテキストモードで用いるのと同じだろw


>>667
GUならびにリソースを文字列渡しAPIで操作する機会は少ない。
1秒に1000回あるかどうか。

実際に圧倒的に多いのはユーザが用いる文字列比較関数・文字列操作関数。
この作業は、ユーザによるただのメモリ操作に属するが、
しかしこの作業がプログラム処理の主体になる。

670 名前:デフォルトの名無しさん :05/03/01 20:07:52
>669
fgetwsとはMultiByteToWideCharの呼び出し頻度が異なる。
その上スレが違う。

671 名前:デフォルトの名無しさん :05/03/01 20:09:35
msvcrtはもはやAPIの一種だろ
アフォ

672 名前:デフォルトの名無しさん :05/03/01 20:10:56
えーとUNICODEについていけないUNIX厨乙?

673 名前:デフォルトの名無しさん :05/03/01 20:11:45
>>669
メモリ帯域は最近比較的多目なので、文字列操作で1バイトずつ処理するのも
1ワードずつ処理するのもたいして変わらないような気がする。

扱う対象がSJISならSJISのままでやればよろし、というのは当然だけどさ。

674 名前:デフォルトの名無しさん :05/03/01 20:12:27
ワードはプリフィックス付くからx86系では不利

675 名前:663 :05/03/01 20:23:49
色々制約が付いちゃってるのでOutProcのCOMとか使えないのでループさせる方法で行きます。
答えて頂いた方々、ありがとうございました。

AdvancedWindowsは買ってみようと思います。

676 名前:デフォルトの名無しさん :05/03/01 21:14:26
これもスレ違いだけど、STLのアルゴリズムとかstd::wstring、つまりstd::char_traits<wchar_t>とかだとどうなんだろうか。

677 名前:デフォルトの名無しさん :05/03/01 22:22:44
 アプリケーション1→|
             |自前DLL→ハードウェア
 アプリケーション2→|

678 名前:デフォルトの名無しさん :05/03/01 22:26:31
>>663
DLLはそれぞれのプロセスでLoadする必要があることは理解してる?

679 名前:デフォルトの名無しさん :05/03/01 22:28:16
DLL側で排他制御すりゃいいじゃん

680 名前:デフォルトの名無しさん :05/03/01 22:31:27
>>679
付属DLLが排他処理を実現していると何度言えば(ry
むしろ、その排他処理を無効化したい質問者の真意を汲めと何度言えば(ry

681 名前:デフォルトの名無しさん :05/03/01 22:33:55
1. DLLをどっかでロードしたらハードウェア制御スレッドを作り待機
2. プロセスがアタッチしたら歯痛スレッド作る
これだけでしょ?


682 名前:デフォルトの名無しさん :05/03/01 22:34:55
_tcsicmp()とlstrcmpi()の違いを記述しなさい。
また、その処理速度の違いについても記述しなさい。

683 名前:デフォルトの名無しさん :05/03/01 22:36:45
strcmpごときの速度でガタガタ言ってんじゃねーよヴォケ

684 名前:デフォルトの名無しさん :05/03/01 22:42:17
クラッキングしたいと言っている質問者に
なぜか自前の排他処理を紹介する日本語の不自由なスレ住人。


1.DLLを使うミニプログラムを作成する。
2.そのミニプログラムは起動時の引数指定で異なる動作を行い、すぐに終了する。
3.2つのプログラムから好きな時にミニプログラムをキックする。。

685 名前:デフォルトの名無しさん :05/03/01 22:42:40
リソースが1っこだけならかなり簡単な問題だと思うが。
Windowsならなおさら。

686 名前:デフォルトの名無しさん :05/03/01 22:46:41
663は単にスレッドとプロセスの違いを知らない人みたいだが。

687 名前:デフォルトの名無しさん :05/03/01 22:48:07
AdvancedWindows読めといったはずだが。

688 名前:デフォルトの名無しさん :05/03/01 22:48:39
684=663な気ガス

689 名前:684 :05/03/01 22:49:46
>>684のDLLは付属DLL。

対処法その2
1.「付属DLLを使うプログラム」をウィンドウアプリとして作成。
2.「付属DLLを使うプログラム」はメッセージループさせつつ常駐。
3.別プログラムから「付属DLLを使うプログラム」にユーザー定義メッセージなどを送る。


690 名前:デフォルトの名無しさん :05/03/01 22:53:25
>>682
_tcsicmp()はCライブラリ関数(の処理系独自拡張)。lstrcmpi()はWinAPIの関数。
lstrcmpi()は一般に時間が掛かる(と言われている)DLLの関数を呼び出すことになるので、
計測してみたら(どの程度の差が出るかはともかくとして)おそらくlstrcmpi()が_tcsicmp()より遅くなるだろう。

691 名前:684 :05/03/01 22:53:45
対処法その3
1.「付属DLLを使うプログラム」をソケットサーバーとして作成。
2.「付属DLLを使うプログラム」をlistenさせつつ常駐。
3.別プログラムから「付属DLLを使うプログラム」にソケットで命令送信。

692 名前:デフォルトの名無しさん :05/03/01 22:54:12
メッセージループとか意味不明なこといってる可哀想な684は放置ということでOK?


693 名前:デフォルトの名無しさん :05/03/01 22:56:49
>>692
その2、その3は妥当だと思うけどね。 SendMessageって使ったことないの??

694 名前:デフォルトの名無しさん :05/03/01 22:58:12
>>690
あのさあ、msvcrt.dll使うことにしたらどのみちdllの関数呼び出すんだけど

695 名前:デフォルトの名無しさん :05/03/01 22:58:49
なんでわざわざメッセージキューなんて使うのかな・・
不思議

696 名前:デフォルトの名無しさん :05/03/01 22:59:38
一番の対処法は、付属DLLのマニュアルを良く読むことだと思う。

697 名前:デフォルトの名無しさん :05/03/01 23:00:23
>>693=684
ちょっと黙っててもらえる?

698 名前:デフォルトの名無しさん :05/03/01 23:02:46
>>694
スマソ
忘れていた。

699 名前:デフォルトの名無しさん :05/03/01 23:03:20
問題は>>663がWindowsの排他処理を理解してるのかどうか

700 名前:デフォルトの名無しさん :05/03/01 23:06:09
DLL関数の呼び出しはIAT(インポートアドレステーブル)というものあってだね、
それ経由で間接的に呼び出されるのだよ。
だから静的リンクされたライブラリよりちょっとばかし不利になる。
不利といっても参照かjmpが一回増えるだけだけどね。
ということがAdvancedWindowsに書いてあったりなかったり・・


701 名前:デフォルトの名無しさん :05/03/01 23:08:59
今、確信をもって言えることは質問に対して見当違いな排他処理を説明して
その間違いを指摘した善意の別人を質問者と同一人物と思い込んで
勝手に他人を自演認定しているテンパッたアフォが一名、
このスレを荒らしているということだ。

702 名前:デフォルトの名無しさん :05/03/01 23:09:23
>>669
そのDLLがどんなものかわからないけど簡単にリソースのオープンとクローズが
できるならプロセス間の排他処理でいけますが、
オープンのときにハードウェアに時間のかかる初期化処理が発生するなどの
理由でそういった操作が不可能なんじゃないかな。
そういう理由なら1プロセスに処理を集中する必要があるように思うよ。

703 名前:デフォルトの名無しさん :05/03/01 23:10:14
まあ、これには例外があって
GetProcAddressで得たDLL関数はIATを経由せずに呼び出せる。
GetProcAddressは直接エクスポートされた関数アドレスを返す。
だからもしもより速い方が良いと思うのなら、
使うDLL関数をGetProcAddressで取得しなおすと良いかもしれない。

704 名前:デフォルトの名無しさん :05/03/01 23:11:20
切れた。
>>703>>701の続き。

705 名前:デフォルトの名無しさん :05/03/01 23:13:25
>>701
だから最初に起動したプロセスのDLLの一番はじめに制御スレッド立ち上げて
プロセスアタッチ毎に排他制御しろってのが伝わってないみたいだね。
わかんないのはDLLの原理が理解できてないだけ。

706 名前:デフォルトの名無しさん :05/03/01 23:16:25
>>705
一番わかってないのは君だと思う。

707 名前:デフォルトの名無しさん :05/03/01 23:16:48
701が痛すぎる件について

708 名前:デフォルトの名無しさん :05/03/01 23:20:38
一番痛いのは>>705だろうね。
ユーザーが何をしたいか、どのような制限化にあるか、
全く理解できていないと思われる。
いつからユーザーがDLLを作ることが前提になったのか不思議だ。

709 名前:デフォルトの名無しさん :05/03/01 23:24:31
まあ、質問自体がスレ違いだけどねw

710 名前:デフォルトの名無しさん :05/03/01 23:27:21
つまりさあ、
制御DLLだけは663が弄れるんだろ?

アプリ1 → 制御DLL → 付属DLL

最初のアプリ、制御DLLで2つスレッド立ち上げるんだわ。
付属DLLを制御するスレッド
制御スレッドに命令を送るスレッド
ついでにCreateMutexかなんかの排他制御用オブジェクトと
命令通知用のイベントオブジェクトを作る。
データを共有したかったら制御DLL内に共有セクション作ればいい。

アプリ2 → 制御DLL

制御DLLがこんときに立ち上げるスレッドは1つ
制御スレッドに命令を送るスレッド
付属DLLはアプリ1の制御DLLが占有してるのでリンクしない。

これでわかんねーかなあw

711 名前:デフォルトの名無しさん :05/03/01 23:28:26
>>690
_stricmp()ではないけど、UNICODE環境で速度を試してみた。
400000個ほどあるUnicode文字列をqsortでソートする際の比較関数を変えてみた。

_tcsicmp() 17秒 ※実際は_wcsicmp()
lstrcmpi() 2秒


予想に反してlstrcmpi()が速いのだけど、_wcsicmp()が異様に遅いともいえる。
誰か理由を教えてくれ・・・。

712 名前:デフォルトの名無しさん :05/03/01 23:34:13
lstrcmpiってUNICODEじゃないと思うけど。
なんか勘違いしてるとか。

713 名前:デフォルトの名無しさん :05/03/01 23:35:22
つーか無能の人はどうして粘着してるの?

714 名前:デフォルトの名無しさん :05/03/01 23:35:30
>>710

怒るかもしれないが、書かせてもらう。
制御DLLが必須ということになっている時点で、
君の中で強固な脳内補完が行われたのではないかね?
いくら排他制御を実装したところで、それを利用できるのは自分のプログラムだけだろ。

715 名前:デフォルトの名無しさん :05/03/01 23:39:03
>>712
人を勘違い呼ばわりする前に、自分が勘違いしてないか
確認した方がいいぞ。
WinBase.hでも見てこい。

716 名前:デフォルトの名無しさん :05/03/01 23:41:12
>>714
やっぱ俺の説明ちっとも理解してないみたいね。

>自分のプログラムだけだろ。

これ、何の反論なの?
>>663に対して説明したつもりなんだけど。
意味不明なんですがw

717 名前:デフォルトの名無しさん :05/03/01 23:42:16
こんばんわ

アドビのホットショップみたいに、
ツールウィンドウをクリックしても、親のウィンドウはアクティブなままにしておく方法を教えていただきたいのですが。

通常だと、TOOLWINDOWをクリックすると、親のウィンドウは非アクティブ化しますが、
TOOLWINDOWも親のウィンドウも両方ともアクティブのままにしておきたいのです。

よろしくお願いいたします。

718 名前:デフォルトの名無しさん :05/03/01 23:42:48
663が退場している以上その辺は闇のなかだなぁ。前提が異なるだけで
みんなそんなにはずしてないように思うけどね。
ただいえることは、675の書き込みが微妙すぎる(笑

719 名前:デフォルトの名無しさん :05/03/01 23:47:41
一家に一冊AdvancedWindows

720 名前:デフォルトの名無しさん :05/03/01 23:49:41
>>718
>みんなそんなにはずしてないように思うけどね。 

排他処理を用意しようとしている人は、思い切りはずしているでしょw
制御DLLを作ってもかまわないが、排他処理を入れる意味が全くない。

721 名前:デフォルトの名無しさん :05/03/01 23:53:38
↑馬鹿?

722 名前:デフォルトの名無しさん :05/03/01 23:57:30
>>720
付属DLLを複数で使うための排他制御なんだが。
付属DLLからぶら下がってるハードウェアは関係ない。
なんも理解してないな。


723 名前:デフォルトの名無しさん :05/03/01 23:59:18
ちなみにさあ、

>制御DLLが必須

とか妙な思い込みしてるみたいだけど、
DLL化しなくていいなら直接アプリ自身で制御DLLの役やっても変わらないが。
いいかげんAdvancedWindowsでも読んだら?


724 名前:デフォルトの名無しさん :05/03/02 00:01:58
>>711
普段気にしたことはないけどsetlocale系の設定って影響すんでしょうかね?
APIのlstrcmpiはコントロールパネルのロケールで動いてるんでしょうけど。

725 名前:デフォルトの名無しさん :05/03/02 00:10:25
>>720=>>714=>>708=>>706=>>701=>>693=>>684

726 名前:デフォルトの名無しさん :05/03/02 00:16:24
>>694
Cランタイムをスタティックリンクすることも多いよ

727 名前:デフォルトの名無しさん :05/03/02 00:17:03
>>717
Spy++かなんかでホットショップとやらの窓のスタイルがどうなってるのか調べる。

728 名前:デフォルトの名無しさん :05/03/02 00:20:28
>付属DLLからぶら下がってるハードウェアは関係ない。 

だからこそ、排他処理を自分で作る意味ないつってんだろ、アフォかお前?
オナニー排他処理なぞ作って楽しいのか?

729 名前:デフォルトの名無しさん :05/03/02 00:22:39
キチガイを飼ってるスレ

730 名前:デフォルトの名無しさん :05/03/02 00:31:14
>>728の脳内設計では排他制御は必要ないってことでいいんじゃない?
きちんと説明できないアフォみたいだし。

731 名前:デフォルトの名無しさん :05/03/02 00:34:01
そろそろWin32APIの話に戻ろうぜ。

732 名前:デフォルトの名無しさん :05/03/02 00:38:50
>>711
Cランタイムをスタティックリンクしてもダイナミックリンクしても
結果は同じ?

733 名前:デフォルトの名無しさん :05/03/02 00:44:54
>>689
ブラックボックス(この場合付属DLL)を抱えてる以上、メッセージ待機は危険。
ブラックボックス内でメッセージ処理されたら悲惨なことになる。

734 名前:デフォルトの名無しさん :05/03/02 00:49:27
これもある前提の上の話だけど、
ひとつの制御スレッドだけが付属DLLをコントロールする構造なら、各アプリからの
命令はシリアライズ(順番化)するまたはされるから排他処理はいらないとも
いえるし、シリアライズすることが一種の排他処理ともいえる。
それでも複数の命令をセットで発行する必要があるなら排他は必要になりますけどね。
最初の質問をした人が戻ってこないとこれ以上の議論は無意味だと思うよ。
>>733
「付属DLLを使うプログラム」<−ここは弁護するよ、これをよくみよう

735 名前:711 :05/03/02 00:52:38
>>732

>>711はスタティックリンクを使ってます。
ロケールは、_tsetlocale(LC_ALL, _T(".ACP")) を実行しています

当方の環境は、ToolKit2003のため、
標準C++ライブラリをダイナミックリンクするためのMSVCPRT.LIBがないため、
即座にダイナミックリンクを試せないので、ダイナミックリンクでやる気が沸きません。
C ランタイム ライブラリ用MSVCRT.LIBは入っているのですが。
なぜ、このような中途半端な配布になっているのか謎です。



736 名前:デフォルトの名無しさん :05/03/02 00:54:58
>>733
>ブラックボックス内でメッセージ処理されたら悲惨なことになる。

もっと詳しく

737 名前:デフォルトの名無しさん :05/03/02 00:57:09
Ruby!!!!!!!!!!!!!!!!!!!!!!!

738 名前:デフォルトの名無しさん :05/03/02 01:05:13
技術を駆使して無意味なことを実装しようとしている馬鹿ばかり。
排他処理のための排他処理かよ。
ポーリングだけで十分じゃん。氏ね、お前ら。

739 名前:デフォルトの名無しさん :05/03/02 01:09:18
今時ポーリングだけですむような簡単なアプリを作ってらっしゃると。

740 名前:デフォルトの名無しさん :05/03/02 01:11:19
>>739
今時好きなだけフリーズする簡単なアプリを作ってらっしゃると。

741 名前:デフォルトの名無しさん :05/03/02 01:13:22
>>738
誰がどの書き込みかはわからなくなってるけど、
なんかこれは関係ないのが煽りにきた感じだな。

742 名前:デフォルトの名無しさん :05/03/02 01:14:25
ポーリング機能だけで十分だろ。
待つかどうかはユーザアプリ次第。

同期をDLLのなかでやろうとする馬鹿まで現れたか。

743 名前:デフォルトの名無しさん :05/03/02 01:14:27
ポーリングて聞くと、CPU占有率100%のあれですか?

744 名前:デフォルトの名無しさん :05/03/02 01:15:44
>>742
なんなの、そのユーザーアプリって。
ポーリングはどこに掛かってるの?

745 名前:デフォルトの名無しさん :05/03/02 01:25:06
まあいいじゃないか。
CPUを遊ばせておくよりは。

746 名前:デフォルトの名無しさん :05/03/02 01:30:43
AdvancedWindowsのおかげで彼女ができました

747 名前:デフォルトの名無しさん :05/03/02 01:36:47
AdvancedWindowsで城が建ちました。

748 名前:デフォルトの名無しさん :05/03/02 01:59:35
>>735
それ(_tcsicmp)ねえ、_tsetlocale呼ばないとすごく速くなるんだけど、
そのかわり"ABCDE"と"abcde"が区別されちゃう。
デフォルトでは大小文字判定する文字が限定されているようだ。

749 名前:デフォルトの名無しさん :05/03/02 02:53:57
_tcsicmp()と比較する場合は、
lstrcmpi()じゃなくてCompareString()でやらないとアンフェアということかねぇ。

750 名前:デフォルトの名無しさん :05/03/02 04:09:18
RickEditで、そのエディタ上でドラッグの動作をすると、
カーソルの点滅が止まってしまい、CPU率がすごく重くなるんですが、
解決方法がありましたら教えてください。

左ボタンを最初に押した時のみメッセージが来るようで、
押し続けている時は来なく、それはサブクラス化した場合も同じなので、
どれかのメッセージを防いで解決しようと思いましたがうまくいきませんでした。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.