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


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

Win32API質問箱 Build35
501 名前:デフォルトの名無しさん :2005/09/24(土) 15:31:45
>>500
CreateCompatibleBitmapつかってビットマップ作って
SelectObjectで関連づけないと色データ持ってないから
BitBltできんだろ

BitBlt
ビットブロック転送を行います。
コピー元からコピー先のデバイスコンテキストに、
指定された長方形内の各ピクセルの色データをコピーします




502 名前:デフォルトの名無しさん :2005/09/24(土) 15:32:11
SelectObjectでRECT関連付けてる奴初めて見た。

503 名前:デフォルトの名無しさん :2005/09/24(土) 15:33:50
>>501
あー、なるほど。そういうことなんですか。
勉強不足でした。ありがとうございます。

504 名前:デフォルトの名無しさん :2005/09/24(土) 15:58:19
CreateCompatibleDCしただけで描画できるほど甘くは無いのだよ
キミはシャーペンを渡されただけで、紙も無く絵が書けるかな?

505 名前:デフォルトの名無しさん :2005/09/24(土) 15:59:16
かけるさ

506 名前:デフォルトの名無しさん :2005/09/24(土) 16:01:44
505 スゴスw

507 名前:デフォルトの名無しさん :2005/09/24(土) 16:02:09
シッ
相手にしちゃいけません!

508 名前:デフォルトの名無しさん :2005/09/24(土) 16:09:21
シャーペンと紙があっても描けない・・・

509 名前:デフォルトの名無しさん :2005/09/24(土) 17:01:07
大概のシャーペンにゃ最初から芯入っとるじゃろがー

510 名前:デフォルトの名無しさん :2005/09/24(土) 17:03:37
俺の買ったシャーペンは芯がなかったことがあるな

511 名前:デフォルトの名無しさん :2005/09/24(土) 17:14:01
適当なシャーペンには入っているがマジな奴には入ってないね。

512 名前:デフォルトの名無しさん :2005/09/24(土) 17:14:50
一本千円のシャーペン使ってる。

513 名前:デフォルトの名無しさん :2005/09/24(土) 17:15:41
芯の太さって何使ってるよ?俺0.4mm

514 名前:デフォルトの名無しさん :2005/09/24(土) 17:16:42
文具板池
まあ向こうは文具の使い方間違ってる香具師も多いがw

515 名前:デフォルトの名無しさん :2005/09/24(土) 17:24:36
>>514
詳しく

516 名前:デフォルトの名無しさん :2005/09/24(土) 17:27:11
先端で栗を突付いたり、柄の方で穿ったり。

517 名前:デフォルトの名無しさん :2005/09/24(土) 17:27:24
>>514
kwsk

518 名前:デフォルトの名無しさん :2005/09/24(土) 17:28:50
シャーペンは回すためのもの

519 名前:デフォルトの名無しさん :2005/09/24(土) 17:56:23
穿つには細いな
もっと太いもので穿たなくては

520 名前:デフォルトの名無しさん :2005/09/24(土) 18:01:51
IShellFolder::EnumObjects、IEnumIDList::Nextを使って、フォルダのアイテムIDリストを列挙しています。
ところが再び同じIShellFolderオブジェクトからアイテムIDリストを列挙しようとすると、
そのフォルダの内容に変化はない筈なのに、前回と異なるアイテムIDリストが返ってくる場合があります。
これらのメソッドで取得したアイテムIDリストは一時的なもので保存しておくべきではないのでしょうか?

521 名前:デフォルトの名無しさん :2005/09/24(土) 18:09:39
Win32APIじゃない質問する人はお引き取りください

522 名前:デフォルトの名無しさん :2005/09/24(土) 18:24:48
>>520
前回と異なるアイテムIDリスト、とは?
IEnumIDListインターフェースのポインタ値が違うということ?

523 名前:デフォルトの名無しさん :2005/09/24(土) 18:44:24
>>520
IEnumIDList::Next から返って来たアイテムIDリストのアドレスが違う、と解釈。

IEnumIDList::Next は動的にメモリを確保して、アイテムIDリストをコピーし、そのポインタを第2引数に返す、と言う動作。
取得するたびにポインタの値が変わるのは当然。
保存しておいても構わないが、ちゃんと開放を忘れずに。

524 名前:520 :2005/09/24(土) 19:05:23
>>522-523
違うのはIEnumIDList::Nextメソッドから取得したITEMIDLIST構造体の中身です。

具体的には↓のような感じです。

@IShellFolder::EnumObjects、IEnumIDList::NextからITEMIDLIST構造体を列挙。
A取得したITEMIDLISTを新たなIShellFolderオブジェクトにバインドさせてIShellFolder::EnumObjects。
B再び@でITEMIDLISTを列挙するとAの操作を行ったITEMIDLISTは異なる内容になっている場合がある。(必ずではない)

ITEMIDLISTの比較は以下のように行っています。

BOOL IsEqualItemID(LPCITEMIDLIST pID1, LPCITEMIDLIST pID2)
{
if(pID1->mkid.cb != pID2->mkid.cb)
return FALSE;

return !memcmp(pID1, pID2, pID1->mkid.cb) ? TRUE : FALSE;
}

525 名前:デフォルトの名無しさん :2005/09/24(土) 20:28:13
Win32APIで戻り型が構造体のAPIってありますよね?(たぶん)

それってどうやって受け取ればよいでしょうか?
普通のBOOLとかのレジスタに収まる戻り値はEAXで受け取ると思いますが、
構造体を返す(__stdcallみたいな)規約ってあるんでしょうか?

それとも戻り型が構造体のWin32APIはない?

526 名前:デフォルトの名無しさん :2005/09/24(土) 20:30:40
あ、
DWORDLONG Int64ShrlMod32(Value, ShiftCount);

というのがありますね。
これは64bit値で、構造体とはまた違いますが、
これはどうやって返してるんでしょうか?
EDXとEAXでしょうか。

では64bit以上の値はどうなるんでしょう?

527 名前:デフォルトの名無しさん :2005/09/24(土) 20:31:26
あったかどうか知らんが、
あるとしたら、構造体へのポインタじゃね?

528 名前:デフォルトの名無しさん :2005/09/24(土) 20:34:53
>>525
戻り値が構造体の関数はWin32APIにはおそらくない。
ほとんどは操作が成功したかどうかを表すためにBOOLを返す。
構造体は戻り値にする代わりに引数にポインタを受け取るようになっている。

ただ、__cdeclや__stdcallでは戻り値が構造体型の関数を作ってアセンブリを出力させてみると、
同じように戻り値を格納するポインタを指定する引数が密かに追加されるようになっていた。

529 名前:デフォルトの名無しさん :2005/09/24(土) 20:38:39
>>526
そいつはDLLにはなくヘッダに直接マクロとインラインアセンブラを使ったインライン関数が両方書いてある。
インライン関数版を見るとやはりeax/edxを使っているようだ。

530 名前:デフォルトの名無しさん :2005/09/24(土) 21:02:45
検証してみました。(VC6)

>>529さんがおっしゃる通り、
64bitまでの構造体戻り型の受け渡しはEDX, EAXを使っている様です。

ただし、それ以上のサイズの構造体について、不可解なことをしていました。
呼び出し側で、戻り値用の一時的な変数へのアドレスを
最後にpushしているようなのです。
したがって、関数は実際の引数よりも1つ多く受け取っているようです。

呼ばれ側は、そのアドレスに対して値を格納していました。
そしてそのアドレスをEAXにセットしてret。

そして呼び出し側に戻ったとき、EAXのアドレス(一時変数)から
呼び出し側で受け取る変数へコピーするということみたいです。

EDX使ったり、一時変数使ったりなんか統一してほしいですね。
自作言語作ってる側としては困ります。


531 名前:デフォルトの名無しさん :2005/09/24(土) 21:06:05
ちなみに呼ばれ側を__stdcall、__cdeclを指定しても動作は変わりませんでした。
構造体を返す関数をDLL公開すると、どういうことになるんだろう・・

532 名前:528 :2005/09/24(土) 21:07:50
>>530
俺が書いたとおりじゃないか。

あと、場合にもよるけど一時変数を使わずとも、戻り値の変数のアドレスを直接隠し引数に渡せると思う。

533 名前:デフォルトの名無しさん :2005/09/24(土) 21:11:50
DLL化を試しました。

DLL公開しても呼び出しシーケンスは変わりませんでした。
構造体を返す関数は互換性がないか、
この(EDXもしくは一時変数渡し)プロトコル?を使うみたいです。

534 名前:デフォルトの名無しさん :2005/09/24(土) 21:13:38
>>532
そのようですね。
最適化をすると、そういうコードになるみたいです。

535 名前:デフォルトの名無しさん :2005/09/24(土) 21:15:47
まあ自作言語を作っているのならDLL関数の戻り値に構造体・クラスなんかは指定できないという仕様にしてしまえば済む。

536 名前:デフォルトの名無しさん :2005/09/24(土) 21:18:17
構造体の受け渡しについて自分なりに納得ができました。
お付き合いくださった皆さんありがとうございました。

537 名前:デフォルトの名無しさん :2005/09/24(土) 21:28:46
自作言語ってのがネイティブコンパイラならどっかからVC++のABI仕様書を探してきて調べるしかないと思うが。

538 名前:デフォルトの名無しさん :2005/09/25(日) 14:38:27
ログオン前に確実にプログラムを起動する方法ってありますか?
1分くらいかかる初期化処理も終わらせることが前提です。
サービスで作ってみたんですが、ログオンできてしまって、
ステータスは「開始中」になってしまいました。

539 名前:デフォルトの名無しさん :2005/09/25(日) 14:46:38
>>538
フェイクのログオン画面を表示しt(ry

540 名前:デフォルトの名無しさん :2005/09/25(日) 14:56:49
>>538
NT系にはログオンスクリプトってのが無かったか?
あれなら、認証が終わった時点で処理されるはず

541 名前:デフォルトの名無しさん :2005/09/25(日) 14:59:48
スタートアップにショートカットを作成汁

542 名前:デフォルトの名無しさん :2005/09/25(日) 15:21:44
ログオン前ですよ。ログオン前。
ログオン直後じゃないです。

543 名前:デフォルトの名無しさん :2005/09/25(日) 15:33:50
OSよりも先に処理をしようってんだから
APIじゃなくてアセンブラを使うしかないんじゃあるまいか?
APIって暗黙の了解でログオン後の処理となってないかい?

544 名前:デフォルトの名無しさん :2005/09/25(日) 15:39:36
サービスプログラムはログオンより前に動きます。
ただ>>538で言ったように、長い初期化処理を入れると
ログオン画面が先に出てきてしまうのです。

545 名前:デフォルトの名無しさん :2005/09/25(日) 15:50:53
GINA使えば。

546 名前:デフォルトの名無しさん :2005/09/25(日) 16:02:48
タスクの優先順位

547 名前:デフォルトの名無しさん :2005/09/25(日) 16:16:43
autoexec.batに書いておけばいいじゃない

548 名前:デフォルトの名無しさん :2005/09/25(日) 16:34:00
ttp://desktop.google.com/support/bin/answer.py?answer=12374&topic=198

"保存、閲覧、移動などを行うと、デスクトップ検索のインデックスはすぐに更新されます"
とかいてあるのですが、CreateFileとかWriteFileとかにフック?のようなものを
仕掛けて監視しているのでしょうか.どうすればそのようなことができるのか教えてください

549 名前:デフォルトの名無しさん :2005/09/25(日) 16:42:16
[autoexec.bat]
538.exe
win.com
[EOF]

550 名前:デフォルトの名無しさん :2005/09/25(日) 17:41:32
//この前にMessageBox()などを呼び出しておくと、期待通りの結果が返ってくる。
HMODULE hModule = GetModuleHandle(_T("user32.dll")) ;

なぜかNULLが返ってきます。
これをする前に、MessageBoxなどを呼び出しておくと、うまくいくのですが。
実際に使うまで、モジュールは読み込まれないのでしょうか?

551 名前:デフォルトの名無しさん :2005/09/25(日) 17:48:11
DLLがDLLたるゆえんの一つじゃないか

552 名前:デフォルトの名無しさん :2005/09/25(日) 17:48:25
その「後」でMessageBoxなどを呼び出してもうまくいくはず
(わざわざdelayloadを使っていなければ)

553 名前:デフォルトの名無しさん :2005/09/25(日) 17:53:02
>>552
本当だ。
ありがとうございます。


554 名前:デフォルトの名無しさん :2005/09/25(日) 17:58:33
だめだこりゃ・・・

555 名前:デフォルトの名無しさん :2005/09/25(日) 18:00:26
うちの Win2000 にて
WinMain 直後に GetModuleHandle してもハンドル取れたけど。

556 名前:555 :2005/09/25(日) 18:01:05
リロードしてなかった
すまん。

557 名前:デフォルトの名無しさん :2005/09/25(日) 18:27:30
>>538
厳密にログオン前ということならGINAが妥当だろう。
ログオン〜シェル起動の微妙な間なら、USERINITかシェルを
すげかえるとか。

558 名前:デフォルトの名無しさん :2005/09/25(日) 18:33:16
サービスのままじゃダメなのか
ショック

559 名前:デフォルトの名無しさん :2005/09/25(日) 18:35:04
フォーカスを一度リストボックスやスタティックに移すとWM_CHARがきません
リストボックス上やスタティック上のキーの入力を捕まえるのにはどうしたらいいでしょうか?

560 名前:デフォルトの名無しさん :2005/09/25(日) 18:38:58
WM_KEYDOWN

561 名前:559 :2005/09/25(日) 18:53:07
自己解決しました

リストボックスのスタイルにLBS_WANKEYBOARDINPUTを指定してWM_KEYTOITEMでキーの入力ができました

>>560
書き忘れましたが WM_KEYDOWNもきませんでした、すみません


562 名前:デフォルトの名無しさん :2005/09/25(日) 19:26:48
キーの入力ができました?
キー入力をトラップするんだろ?
プログラム上から入力するのか?

563 名前:557 :2005/09/25(日) 20:03:46
>>558
ちょっと調べてみたがグループポリシーに
(コンピュータ)スタートアップスクリプトとかいうのがあるな。
同期実行らしいから使えるかもな?
まあ他にも何かしら方法はあるかもよ。ネットワークのサービスは
先に起動してるんじゃないかとか。

564 名前:デフォルトの名無しさん :2005/09/26(月) 09:24:30
DirextXを使わずに半透明で描画する方法はありませんか?

565 名前:デフォルトの名無しさん :2005/09/26(月) 09:26:37
あります。

566 名前:デフォルトの名無しさん :2005/09/26(月) 09:34:38
ヒント:猫でもわかる

567 名前:デフォルトの名無しさん :2005/09/26(月) 12:41:38
思い出せなくて安直な質問になりますが、dos の system() に相当する win32 の
API は何でしょうか。system() で可能なのですが、途中で dos 窓が出てちょっと
いやらしいもので。

568 名前:CreateProcess :2005/09/26(月) 12:48:35
>>567
思い出せないってのは嘘だろ。素直にげろしろよ。
それから、system()はdos固有の関数ではないぞ。

569 名前:デフォルトの名無しさん :2005/09/26(月) 12:48:40
>>567
CreateProcess()
プロンプト表示させたくなかったら引数指定な。

570 名前:デフォルトの名無しさん :2005/09/26(月) 13:18:45
すいませんソケットAPI関連なんですが、、
使用言語はC++言語で、コンパイラにはBCC5.5を使用しています。

1.ソケットを作成する(socket関数)
2.サーバに接続を確立する(connect関数)
3.コマンドを送信する(send関数)
4.送ったコマンドに対しての応答を読み込む(recv関数)
この手順で

3に
"GET パス名 HTTP/1.0"
""
を送れば任意のページが応答として返されるとか何とかあるのですが、recvで読み込むときに
そのままプログラムがビジー状態になってしまいます。

文字のコードはASCIIなはずですし、無論send関数で指定する文字列バッファはchar型です。
もしかして送信する文字列もリトルエンディアンからビッグエンディアンに変換する必要があるのでしょうか・・
なんでビジー状態になるのか、その原因そのものも分からないので何卒お願いします。。

ソースコードはこちらとなっております。
ttp://nijibox.ohflip.com/futabafiles/001/src/sa31147.zip



571 名前:デフォルトの名無しさん :2005/09/26(月) 13:24:43
>>567
ShellExecuteだと関連付け起動もできる。

572 名前:デフォルトの名無しさん :2005/09/26(月) 13:31:05
>>570
改行(\r\n)が無いようだが?

573 名前:デフォルトの名無しさん :2005/09/26(月) 13:37:36
>>572
おお、送信するべき文字列に\r\nを加えたらHTMLを読んでくれました!!
いやはや一応RFCやら各種書籍を読んだツモリだったのでしたがお騒がせしました(´・ω・`;)

574 名前:デフォルトの名無しさん :2005/09/26(月) 13:39:20
ごめぽ、
本当の事を言うと英語読めないからRFCは途中で投げ出して、書籍もまだ読み途中です(っд`:)

575 名前:デフォルトの名無しさん :2005/09/26(月) 14:09:49
forkって内の?

576 名前:デフォルトの名無しさん :2005/09/26(月) 14:24:45
>>575
ファイバーでがまんしろ。

577 名前:デフォルトの名無しさん :2005/09/26(月) 14:28:53
>>575
cygwinでも使え

578 名前:567 :2005/09/26(月) 14:39:12
>>569, >>571
ありがとうございます。
571 さんへ、ShellExecute() も使っていますが、関連付けでなく、アプリケーションを
指定したかったもので。(関連付けると元に戻すとか出てくるし)

579 名前:デフォルトの名無しさん :2005/09/26(月) 14:48:06
>>567
>>568

580 名前:デフォルトの名無しさん :2005/09/26(月) 14:49:33
Windowsプログラムでよく
関数プロトタイプがなかったり、ウィンドウプロシージャの引数部分を WndProc (HWND, UINT, WPARAM, LPARAM) ;
といった書き方をするソースを見ることがあるのですが、

WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ;

上記のように明示的に関数プロトタイプを示してはならないのでしょうか?

581 名前:デフォルトの名無しさん :2005/09/26(月) 15:04:01
>>580
(それに戻り値の型をつければ)全然問題ない。

C/C++では名前を使うより前にその名前の宣言がなければならない。
で、WndProcの定義をファイルの先頭に書けば、それが宣言にもなってプロトタイプを書かなくてすむ。
WndProcの定義をファイルの後ろのほうで書くのなら、
WinMainなんかで使うより前に宣言を書いてWndProcの存在を知らせておく必要がある。

582 名前:580 :2005/09/26(月) 15:07:48
>>581
回答ありがとうございます。
安心できました。:-)

583 名前:デフォルトの名無しさん :2005/09/26(月) 16:59:41
ttp://www.vector.co.jp/soft/win95/personal/se037902.html
↑こんな感じのツールを作っているんですが、
タスクバーには表示されないけど Alt + Tab のリストには表示される、
というウィンドウを作る方法はありますか?

CreateWindowEx で WS_EX_TOOLWINDOW を指定すると、
タスクバー表示は無くなりますが Alt + Tab でフォーカスを移せなくなってしまいます。
他のオプションもいろいろ試してみたんですが、どうもうまくいきません。

584 名前:デフォルトの名無しさん :2005/09/26(月) 18:07:33
めっちゃ初歩的な質問ですみません。
ウィンドウサイズを変える関数ってありませんか?

585 名前:デフォルトの名無しさん :2005/09/26(月) 18:17:53
あります。

586 名前:デフォルトの名無しさん :2005/09/26(月) 18:18:34
>>584
SetWindowPos

587 名前:デフォルトの名無しさん :2005/09/26(月) 18:26:56
>>584
MoveWindow or SetWindowPos

>>583
ファイルやフォルダのプロパティウィンドウがそれっぽいから
Spyとかでウィンドウスタイルを調べてみてはどうだろうか

588 名前:デフォルトの名無しさん :2005/09/26(月) 18:28:30
>>585-586
スマソ。事故解決しますた・・・orz
MoveWindow

589 名前:584 :2005/09/26(月) 18:36:02
>>587
お手数かけさせてスマソ。逝ってきます

590 名前:デフォルトの名無しさん :2005/09/26(月) 18:36:50
>>583
WS_EX_APPWINDOWはダメだった?

1. GetWindowLongで拡張スタイル取得
2. (SWP_NOACTIVATE | SWP_HIDEWINDOW) でSetWindowPos
3. 拡張スタイルから WS_EX_APPWINDOW を外してSetWindowLong
4. (SWP_NOACTIVATE | SWP_SHOWWINDOW) でSetWindowPos

ってな感じで。
Alt+Tabの方も出なくなるかもしれないけど・・・

591 名前:デフォルトの名無しさん :2005/09/26(月) 21:12:00
後はITaskbarList::DeleteTabなんてのもあるな。

592 名前:デフォルトの名無しさん :2005/09/26(月) 23:22:33
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win66.html
ココの一番最後のプログラムなんですけど
実行してアプリケーションを動かしてみると、メモリ使用量がどんどん増えていきます。
原因はなんでしょうか・・

593 名前:デフォルトの名無しさん :2005/09/27(火) 00:49:31
WndProc (EN_UPDATE)
malloc()
SetWindowText

WndProc (EN_UPDATE)
malloc()
SetWindowText

(略)


594 名前:デフォルトの名無しさん :2005/09/27(火) 01:02:22
いやでもfreeでしっかりメモリは解放されてますよ?


595 名前:デフォルトの名無しさん :2005/09/27(火) 06:16:07
>>590
やってみましたが、やっぱりタスクバーと Alt + Tab 表示が連動してしまっているようです。

>>587
ウィンドウエクスプローラで調べて CreateWindowEx してみましたが駄目でした。
どうもウィンドウスタイルの問題じゃ無いみたいです。

で、
「〜のプロパティ」ダイアログは StubWindow32 という不可視ウィンドウが親らしいので、
まさかと思っていろいろ試してみたら、
どうやら DialogBox() や PropertySheet() を呼び出すときに、
不可視ウィンドウを親に指定すれば Alt + Tab のリストに表示されることがわかりました。
何なんだこの仕様…。

ということで無事解決できました。
助言してくださった方々、ありがとうございました。

596 名前:デフォルトの名無しさん :2005/09/27(火) 06:49:18
>>595
前々から、タスクバーに表示されないウィンドウを出す方法として言われてますけどね

597 名前:デフォルトの名無しさん :2005/09/27(火) 06:55:27
>>594
だがそのあたりしかありえん
もう一度自分の書いたプログラム確認してみれ

598 名前:デフォルトの名無しさん :2005/09/27(火) 07:42:39
>>594
増えていくのはあたりまえ

メモ帳で1Gのテキスト開いたのと
空っぽの状態のメモ帳のメモリ使用量を考えるといい

599 名前:デフォルトの名無しさん :2005/09/27(火) 08:23:29
>>592
malloc()だけがメモリ使用量を増やすわけではない。つまり、>598
>>597
自信満満に乙。

600 名前:デフォルトの名無しさん :2005/09/27(火) 08:30:34
ソース見ても問題なさそうだし、
全部コピペしてビルドして確認してみても
メモリがどんどん増えていく現象は起きないな

もし問題あるようならウイルス、トロイ、キーロガーとか他のソフトが原因かも

601 名前:デフォルトの名無しさん :2005/09/27(火) 09:13:44
>>600
文字を書いていくと増えていく

602 名前:デフォルトの名無しさん :2005/09/27(火) 09:36:09
editコントロールのデフォルトの上限は約32kバイトでそれが2つだから
増えるっていってもせいぜい64kぐらいじゃないですか?
その他にコピーしたりでいろいろ浪費したとしても知れてると思うけど

Allocating a Text Buffer
When the system creates an edit control,
it automatically creates a text buffer,
sets its initial size, and increases the size as necessary.
The size can be up to a predefined limit of approximately 32 kilobytes
for single-line edit controls.

603 名前:デフォルトの名無しさん :2005/09/27(火) 11:40:21
Windowsが消費してんだろ。


604 名前:デフォルトの名無しさん :2005/09/27(火) 12:01:23
はぁ、やはりコントロールが消費してましたか・・
最初はコントロールが消費するだろうとは踏んでたのですが、文字を全て消してもメモリの使用量が減らないままで・・


605 名前:デフォルトの名無しさん :2005/09/27(火) 12:03:11
でも、増え続ける訳ではないだろ?うちでは16MB程度で頭打ちになったが。
つか、最小化して戻したりすると、減ってない?

606 名前:デフォルトの名無しさん :2005/09/27(火) 12:34:25
起動直後 2352KB
入力終り 2616KB(キーボード押しっぱなしで15分ぐらいで打ち止め)
最小化 132KB
元に戻す 980KB

秀丸へコピペしてテキストファイルへ保存、サイズ確認
29.2 KB (30,000 バイト)

607 名前:デフォルトの名無しさん :2005/09/27(火) 12:37:57
>>604
そもそも、freeしたからと言って、
すぐにメモリ使用量が減るわけではない事くらい、
プログラマなら覚えておけよ。

608 名前:デフォルトの名無しさん :2005/09/27(火) 14:27:22
Get ProcessWorkingSet Size
なのか、ちょっと悩んでしまった。

609 名前:セェンロン ◆89nOjCFiLI :2005/09/27(火) 15:38:43
誘導されて来ました。質問です。
http://kuroneko-upload.no-ip.info/uploader/upbd/updir/aaa.jpg
この真中のリストビューみたいなのを作りたいんですが、どうやったらいいんでしょうか?

リストビューのフラグいじったら出来ると思ってたんだけど、出来ずに困ってます。
教えてクダサイ。お願いしますです。


610 名前:デフォルトの名無しさん :2005/09/27(火) 15:40:37
つSpy++

611 名前:デフォルトの名無しさん :2005/09/27(火) 15:53:24
>>609
ここ置いときますね
http://www.g.dendai.ac.jp/lecture/vbasic/vb10.html

612 名前:デフォルトの名無しさん :2005/09/27(火) 15:55:18
質問です。
w2kでSetProcessWorkingSetSizeをPowerUserで実行しようと
以下のように書いてみたんですが
ProsHandle = OpenProcess(PROCESS_SET_QUOTA, TRUE, GetCurrentProcessId());//@
if(ProsHandle == NULL) return -1;
if(FALSE == OpenProcessToken(ProsHandle,TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES, &TknHandle)) return -2;//A
if(FALSE == LookupPrivilegeValue(NULL, SE_INCREASE_QUOTA_NAME, &Luid)) return -3;//B
NewState.PrivilegeCount = ANYSIZE_ARRAY;
NewState.Privileges[0].Luid = Luid;
NewState.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(TRUE != AdjustTokenPrivileges(TknHandle, FALSE,&NewState, sizeof(OrgState), &OrgState, &Length)) return -4;
Result= SetProcessWorkingSetSize( hProcess, processMinSize, processMaxSize );
if( !Result ){ asdf=GetLastError();}

@行 PROCESS_SET_QUOTAをPROCESS_ALL_ACCESSにしないと
AのOpenProcessTokenでerrorになります。
BのSE_INCREASE_QUOTA_NAMEもあっているのかどうかわかりません。
助けてください。

613 名前:セェンロン ◆89nOjCFiLI :2005/09/27(火) 16:05:19
>>611
このツールはVBで作られていたのかw
もっさり感といい、うっすらとそんな予感はしてましたが、本当にそうだったとは。。
ありがとうです。
違う方法で同じようなのを作ってみます。

614 名前:デフォルトの名無しさん :2005/09/27(火) 16:12:35
>>613
コントロールはActiveXコントロールだろ?
>>611のページがVBでの使い方を書いてるだけじゃん

そのツールとやらは知らんので、
それがVBで作ってあるかどうかは何ともいえんが

615 名前:デフォルトの名無しさん :2005/09/27(火) 16:22:48
見た感じが同じ

616 名前:デフォルトの名無しさん :2005/09/27(火) 18:04:46
VBのコントロールってC+から使えないの?

617 名前:デフォルトの名無しさん :2005/09/27(火) 18:21:38
>>564じゃないけど、半透明の描画方法が分かりません。
猫でもに見当たらないんですが、誰か教えてください。

618 名前:デフォルトの名無しさん :2005/09/27(火) 18:29:21
BitBltでSRC_PAINTとかで描画すればいいのでは。

619 名前:デフォルトの名無しさん :2005/09/27(火) 18:52:03
>>616
ActiveXコントロール貼り付けでいけそう
その後でクラスウィザード起動したらCMSFlexGridというクラスが追加された

620 名前:デフォルトの名無しさん :2005/09/27(火) 18:53:56
>>618
dクス!

621 名前:デフォルトの名無しさん :2005/09/27(火) 20:20:51 0
初歩的ですみませんが質問です。
Win32API を利用してフォントの情報を取得するにはどうすればよいでしょうか。
ウインドウや HDC が存在すれば LOGFONT を利用して取得できますが、
それらを使わずに取得したいと思います。

具体的にはフォントファミリーを指定することで、フォントが等幅かどうか知りたいのですが。



622 名前:デフォルトの名無しさん :2005/09/27(火) 20:29:31 0
素直にメモリDC使え。

623 名前:621 :2005/09/27(火) 21:14:47 0
>>622
CreateCompatibleDC がこのように使えるとは知らなかったです。
どうもありがとうございました。


624 名前:セェンロン ◆89nOjCFiLI :2005/09/27(火) 21:31:37 ID:0
>>614
おおおお。ホントだ。試しにやってみます。
検索したら、少ないけど登録の仕方が出て来ました。
サンクッス。

625 名前:デフォルトの名無しさん :2005/09/27(火) 21:37:25 ID:0
>>612
まずは落ち着いてMSDNちゃんと読め。

626 名前:548 :2005/09/27(火) 22:00:58 ID:0
よろしくおねがいします

627 名前:デフォルトの名無しさん :2005/09/27(火) 22:30:48 ID:0
>>624
FlexGridはVisualStudio6には標準でサブセット版がつくけど、VC7.1にはつかないので要注意。
その場合、FlexGridProを買うか、MSOfficeをインストールしていればExcel由来のGridControlを使うことになると思う。

628 名前:デフォルトの名無しさん :2005/09/27(火) 23:12:44
>>548
FindFirstChangeNotification
とかじゃないか?

629 名前:548 :2005/09/27(火) 23:25:31
おお, こんなAPIがあったとは
628さん ありがとうございます

630 名前:デフォルトの名無しさん :2005/09/28(水) 01:36:56
>>617
最後まできちんと探せよw

631 名前:デフォルトの名無しさん :2005/09/28(水) 01:49:28
タイトルバーやメニュー部分まで
オリジナルのデザインのウインドウというのはどうやって作っているのでしょうか?
ポップアップウインドウにして
ポインタの座標を取って地道に処理の追加をやっていくのでしょうか?


632 名前:デフォルトの名無しさん :2005/09/28(水) 01:51:14
だね

633 名前:631 :2005/09/28(水) 02:03:58
>>632
やっぱりそうですか
どうもでした

634 名前:デフォルトの名無しさん :2005/09/28(水) 03:58:51
>>631
タイトルバーは WM_NC* をごにょごにょするんだと思うお。
メニューは知らん。

635 名前:デフォルトの名無しさん :2005/09/28(水) 13:22:31
>>631
メニューもある程度ならオーナードローできる。
メニューウィンドウを非矩形にしたいとかなら、自分で
メニューエミュレートだと思う。

636 名前:デフォルトの名無しさん :2005/09/28(水) 14:59:00
APISPY32系のツールでお勧めはありますか?

637 名前:デフォルトの名無しさん :2005/09/28(水) 15:07:13
APISPY32

638 名前:デフォルトの名無しさん :2005/09/28(水) 16:43:33
自分のウィンドウのが表示されているときのクライアントエリアに相当する部分の
非表示時のビットマップデータを取得する簡単な方法はありますか?

目的はリアルタイムにビットマップを取得してその都度加工して表示することです
現在考えている方法はSetWindowPos-SWP_HIDEWINDOWとして
デスクトップのDCを取得し、BitBltでメモリDCに保存してウィンドウ復元>加工>描画と言うものですが
ウィンドウをSetWindowPosの度に再描画されてあまりスムーズに見えなそうな気がしています

639 名前:デフォルトの名無しさん :2005/09/28(水) 17:34:36
ダイアログの上にリストビューを作ったんですが、クリックしても全く反応しません。
どうやったらいいのでしょうか?教えて下さい。

640 名前:デフォルトの名無しさん :2005/09/28(水) 18:20:49
どうやったらいいんでしょうねえ。

641 名前:デフォルトの名無しさん :2005/09/28(水) 18:45:07
>>639
デバッグする

642 名前:デフォルトの名無しさん :2005/09/28(水) 18:56:55
よく再起動のメッセージなどで、「30秒後にwindowsを終了します」みたいなメッセージボックスが出て
カウントダウンされていくのがありますが、普通のメッセージボックスでもできるのですか?



643 名前:デフォルトの名無しさん :2005/09/28(水) 19:08:17
>>639
諦めろカス!

644 名前:デフォルトの名無しさん :2005/09/28(水) 19:13:27
>>638
クライアントエリアのビットマップを取るのになぜデスクトップのDCと思うのがすっげー不思議

>>639
リストビューを作ったけどなにもデータ入れてないとかじゃねーの?

645 名前:デフォルトの名無しさん :2005/09/28(水) 19:42:32
>>644
> 自分のウィンドウのが表示されているときのクライアントエリアに相当する部分の
> 非表示時のビットマップデータを取得する簡単な方法はありますか?

646 名前:デフォルトの名無しさん :2005/09/28(水) 19:47:47
>>644
取得したいのは背景にあたる部分です

↓はめ込み合成によるイメージ
ttp://vista.x0.com/img/vi04827.png

647 名前:デフォルトの名無しさん :2005/09/28(水) 19:47:53
>>645
(゚д゚)?

648 名前:デフォルトの名無しさん :2005/09/28(水) 19:49:27
>>646
それはあれ?
ただ背景をクライアント領域に表示するのが目的?
それとも、DCとか使ってクライアント領域が隠してる背景を取得するのが目的?


649 名前:デフォルトの名無しさん :2005/09/28(水) 19:52:18
>>648
後者ですね、フィルタをかけて表示するつもりです

650 名前:639 :2005/09/28(水) 19:53:14
>>644
データは入っています。

それと、操作を受け付けない原因が分かりました。
タブコントロールの上に乗っていたのが問題だったようです。
どうやったら解決するかはまだですが、やっと前に進んだ・・・・・

651 名前:デフォルトの名無しさん :2005/09/28(水) 20:44:03
タスクバーに表示されないウィンドウとそのオーナーウィンドウを表示する
プログラムですが、子供のウィンドウ(タスクバーに表示されない方)を削除すると
なぜかオーナーウィンドウが最小化されてしまいます。
ttp://chise.s25.xrea.com/cgi-bin/up/source3/No_1385.txt
コードが長いのでうpしました(ほとんど猫でものコピペです。スマソ)
なぜでしょうか。教えてください。

652 名前:デフォルトの名無しさん :2005/09/28(水) 20:48:18
>649
それはレイヤードウインドウでは解決できない?

653 名前:デフォルトの名無しさん :2005/09/28(水) 21:30:41
かけたいフィルタにも寄るかと

654 名前:デフォルトの名無しさん :2005/09/29(木) 04:48:35
>>651
よくわからんのだが、削除ってのはどのタイミング?
WM_CLOSEの処理?それともDestroyWindow(hChdWnd)呼んだとき?

ウチのWin2kSP4だと再現しないなあ。
バックグラウンドにはなるけど、これは自力で処理しない限りどうしようもないはず。

ChildProcのWM_CLOSEの処理の表示メッセージと処理内容が
一致してないけどいいのかな?
少なくとも最小化はしない。
現象をもう一度確認して、デバッガで追っかけてみては?


655 名前:デフォルトの名無しさん :2005/09/29(木) 16:10:27
リストビューでLVS_EDITLABELSを指定し編集をする時、iSubItemの0番目しか編集出来ないのでしょうか?


656 名前:655 :2005/09/29(木) 16:24:44
ロクに調べずごめんなさい。自己解決しました。
ググったら、出来ないって出てきました。
リストビューを編集したい分だけ並べて、見た目は1つに見えるようにします。

657 名前:デフォルトの名無しさん :2005/09/29(木) 17:31:42
>>656
メッセージをうまくトラップして任意のカラムを編集できるように見せかける応用はCodeGuruを探すと出てきますよ。
私も作ったし。
#但しMFC。

658 名前:デフォルトの名無しさん :2005/09/29(木) 17:34:58
>>656
頭いいなお前

659 名前:651 :2005/09/29(木) 18:16:37
>654
スマソ。早とちりでした。
最小化ではなく非アクティブになって他のウィンドウに
隠れてしまうという現象でしたが、
SetActiveWindowでなんとかなりました。
原因はよく分かりませんが、ありがとうございました。

660 名前:デフォルトの名無しさん :2005/09/30(金) 04:44:19
スレ違いのような気もしますが妥当なスレがないのでここで質問させてください。
*.def ファイルを書いて *.dll から *.lib ファイルを作りたいのですが、
複数の *.dll ファイルを指定する方法はありますでしょうか?

LIBRARY の行を複数書いたり、複数の dll を指定したりするとエラーを吐いてしまいます。


661 名前:デフォルトの名無しさん :2005/09/30(金) 05:01:26
複数DLL>単一LIBを作成するってこと?
それなら出来ないんじゃないの。

複数DLL>複数LIBならやりようはいくらでもあるだろうけど。


662 名前:デフォルトの名無しさん :2005/09/30(金) 05:18:17
うーん・・・
某所で入手した lib ファイルを覗いてみると複数の dll の関数名が書いてあるようなので
できるとは思うんですが。


663 名前:デフォルトの名無しさん :2005/09/30(金) 06:08:33
なんでその某所を書かないんだ

664 名前:デフォルトの名無しさん :2005/09/30(金) 07:22:46
timeGetTimeが常に同じ異常な値($B??????? 詳しくは忘れました)を返すのは、
どういった原因が考えられますか?





665 名前:660 :2005/09/30(金) 07:46:43

http://hp.vector.co.jp/authors/VA028375/d/windows.h.html
の windows.h for D のアーカイブの中にある win32.lib です。


666 名前:デフォルトの名無しさん :2005/09/30(金) 10:44:02
>>664
timeGetTimeの戻り値を確認するのに文字列っておかしくないか?
どんな確認方法よ。

667 名前:デフォルトの名無しさん :2005/09/30(金) 12:43:55
>>664
それって、正しいDWORD値のダンプを見ているだけジャマイカ。
戻り値はmsec単位だから下のほうはすぐ変わっても上のほうはそうそう変わらんわけだし。

668 名前:デフォルトの名無しさん :2005/09/30(金) 14:54:13
ACPIからCPU温度を取ってくる方法って誰か知らない?

669 名前:デフォルトの名無しさん :2005/09/30(金) 19:16:50
誰か教えてください。
今、デュアルディスプレイで、スクリーンショットを取るプログラムを
作ろうと思っているのですが、どうもプライマリディスプレイだけしか
スクリーンショットがとれないのです。
セカンダリディスプレイとプライマリディスプレイ両方の画面情報を
一つの画像としてとる方法ないですか?

670 名前:デフォルトの名無しさん :2005/09/30(金) 21:27:42
プライマリとセカンダリは別の解像度に設定できるが
その場合どうするつもりだね?

671 名前:デフォルトの名無しさん :2005/09/30(金) 22:08:57
>>665
それはD言語のライブラリアンが作る独自形式。
拡張子は同じでも互換性はまったくない。

672 名前:デフォルトの名無しさん :2005/09/30(金) 22:14:11
>>670
基本的には同じ解像度でやりたいと思ってます。
できれば違った解像度に設定された場合についても教えてもらえたらうれしいのですが

673 名前:デフォルトの名無しさん :2005/09/30(金) 23:53:37
IME の変換中の背景色を変える方法をご存知の方、教えていただけませんか?
RichEdit では出来るようなのですが、自前の View でやりたいのです

674 名前:デフォルトの名無しさん :2005/09/30(金) 23:57:12
>>672
GetDC(NULL)で全仮想スクリーンのDCが取れる

675 名前:664 :2005/10/01(土) 00:07:12
>>666
えっと、戻り値を16進数の文字列でデバッグしたのです。

>>667
$B??????? msほど長時間使ってませんし、 いつ呼び出しても常に同じ値が返ってきたのです。
再コンパイルしても同じでした。
ゲームでこれでフレームレートの管理をしていて、無限ループに陥りました。
でも、次にPCを起動したら直っていて、再現できません。
あと、色々やってた中で、 GetTickCount の方は正しい値を返してたと記憶してます。


676 名前:660 :2005/10/01(土) 01:53:05
>>671
そうですか・・・
どちらも def ファイルに書くので互換性があるかもと思ったのですが。
面倒にはなりますが複数 lib をつくれば済む話なのでそうしようと思います。
どうもありがとうございました。


677 名前:デフォルトの名無しさん :2005/10/01(土) 04:33:25
>>673
IME周りのメッセージをDefWindowProcに渡さずに自前描画。

>>675
ってことは再現してないのか…
timeBeginPeriod/timeEndPeriodは?

678 名前:デフォルトの名無しさん :2005/10/01(土) 06:05:20
メニューみたいなものを作りたいと思っています。
ところがポップアップウインドウを表示すると、フォーカスを奪ってしまうため親ウインドウが非アクティブ状態になってしまいます。
このような挙動をしないウインドウを作成するためにはどうすればよいでしょうか。
WS_POPUP、 WS_EX_TOOLWINDOW、 WS_EX_TOPMOST あたりを試してみましたがうまくいきません。



679 名前:デフォルトの名無しさん :2005/10/01(土) 08:22:29
コントロールにすれば?

680 名前:デフォルトの名無しさん :2005/10/01(土) 10:28:51
>>678
普通にメニュー使えよ

681 名前:デフォルトの名無しさん :2005/10/01(土) 10:38:29
WM_WINDOWPOSCHANGINGハンドラでSWP_NOACTIVATEフラグを立てる

682 名前:デフォルトの名無しさん :2005/10/01(土) 12:26:45
ツールバーにする。

683 名前:デフォルトの名無しさん :2005/10/01(土) 15:54:20
ある画像ファイルがあります。この画像ファイルは
64×64ピクセルの正方形の画像です。

この画像ファイルを90度時計回りに回転させて
表示するにはどうしたらよいのでしょうか?

「┳」を90度時計回りに回転させて「┫」のように表示したいのです。

あらかじめ回転させておいた画像を別に用意することも考えましたが、
90度、180度、270度と別に用意する画像があり、画像の容量が4倍に
なってしまうため、画像を別に用意するのは止めにしました。

684 名前:デフォルトの名無しさん :2005/10/01(土) 16:13:40
>>683
自前でビットデータを配置しなおしてください

685 名前:デフォルトの名無しさん :2005/10/01(土) 16:15:38
>>683
素直にgdiplusのgraphicsクラスなどを使う。

686 名前:デフォルトの名無しさん :2005/10/01(土) 17:07:19
>>683
PlgBltを使う

687 名前:デフォルトの名無しさん :2005/10/01(土) 17:16:12
>>683
D3DXMatrixRotationZとかglRotateとか

688 名前:デフォルトの名無しさん :2005/10/01(土) 18:11:01
BitBltでぐるっと回す

689 名前:デフォルトの名無しさん :2005/10/01(土) 18:16:54
BitBltだけで回転などできませんよm9(^д^)プギャー

690 名前:デフォルトの名無しさん :2005/10/01(土) 18:44:42
ディスプレイを回す

691 名前:デフォルトの名無しさん :2005/10/01(土) 18:49:03
>>690
天才

692 名前:デフォルトの名無しさん :2005/10/01(土) 18:55:59
>>690
WinAPIにディスプレイを回す関数はないぞ。

693 名前:デフォルトの名無しさん :2005/10/01(土) 19:05:37
いきなり回ったらマジコワスw

694 名前:デフォルトの名無しさん :2005/10/01(土) 19:09:45
CDトレイ勝手に開くだけでも怖いのにディスプレイまで回ったら俺のちんちんおっきしちゃうよ

695 名前:デフォルトの名無しさん :2005/10/01(土) 19:44:43

開け方教えてくれ



696 名前:デフォルトの名無しさん :2005/10/01(土) 19:48:48
ACPI

697 名前:デフォルトの名無しさん :2005/10/01(土) 19:52:15
mciSendStringか。おもれーww

698 名前:デフォルトの名無しさん :2005/10/01(土) 20:01:17
マウスを自走させる為の規格でも策定してみるかい?

699 名前:デフォルトの名無しさん :2005/10/01(土) 20:04:20
お前らそんなに俺を勃起させたいのか

700 名前:デフォルトの名無しさん :2005/10/01(土) 20:13:03
>>699を勃たせるAPIをおしえてください!><

701 名前:デフォルトの名無しさん :2005/10/01(土) 20:18:52
とりあえずCD開閉ネタはジョークアプリで使おうっと。

702 名前:デフォルトの名無しさん :2005/10/01(土) 20:19:41
>>701
使い古されてて嘲笑されるぞ

703 名前:デフォルトの名無しさん :2005/10/01(土) 20:20:44
そうなの?
疑似シリーズあたりでは見たこと無い。

704 名前:デフォルトの名無しさん :2005/10/01(土) 20:25:59
>>698
自走型マウスはどっかで見た。
この際だから TCP/IP 上でマウス動かすプロトコル作って、RFC に投稿するとか。

705 名前:デフォルトの名無しさん :2005/10/01(土) 20:29:11
http://www.paken.org/aaf/running-mouse/

キタ━━━━━━(゚∀゚)━━━━━━ !!

706 名前:デフォルトの名無しさん :2005/10/01(土) 21:20:57
inpo DoBokki(inpo, inpo, ...);

707 名前:デフォルトの名無しさん :2005/10/01(土) 21:47:35
inpoだと多分コンパイルエラー。

708 名前:デフォルトの名無しさん :2005/10/01(土) 21:49:24
void Erect(chinpo);
だろ

709 名前:678 :2005/10/01(土) 21:55:23
>>681
情報サンクスです。
でもその通りにしてもやっぱりフォーカスを奪ってしまいます。
SWP_HIDEWINDOWやそのほかのフラグはちゃんと動作するのに・・・


710 名前:デフォルトの名無しさん :2005/10/01(土) 21:58:12
SendMessage(hWnd699, WM_VIAGRA, NULL, NULL);

711 名前:デフォルトの名無しさん :2005/10/01(土) 22:21:23
Netscapeみたいに起動直後にタイトル(タスクバーに表示されないウィンドウ(?))を
どーんと出す方法を教えてください。

712 名前:デフォルトの名無しさん :2005/10/01(土) 22:28:46
どーん!

713 名前:デフォルトの名無しさん :2005/10/01(土) 22:41:45
>>711
ヒント:スプラッシュ

714 名前:デフォルトの名無しさん :2005/10/01(土) 22:44:47
>>711
ヒント:過去ログ

715 名前:711 :2005/10/01(土) 22:58:50
>713-714
サンクスです!

716 名前:デフォルトの名無しさん :2005/10/01(土) 23:01:58
FlashPlayerCodeSDKは一般人には触らせてもらえないんですか?

http://www.macromedia.com/software/flashplayer_sdk/
↑orz

717 名前:デフォルトの名無しさん :2005/10/01(土) 23:32:12
一般人てことは会社員だろ、自分の会社名で申し込めばいいじゃん。
自称一般人なら、自分の会社でっちあげたら?どうせ海外だしそこまで調べねぇよ。

718 名前:デフォルトの名無しさん :2005/10/01(土) 23:40:19
parsonalとでもかいとけば?

719 名前:デフォルトの名無しさん :2005/10/01(土) 23:42:28
personal だろ

720 名前:デフォルトの名無しさん :2005/10/01(土) 23:53:47
>>678
WS_VISIBLEを指定しないでウィンドウをCreateし、
その後、SWP_SHOWWINDOW と SWP_NOACTIVATE を指定してSetWindowPosしたらどう?


721 名前:664 :2005/10/02(日) 00:02:15
>>677
プログラム起動時に
timeBeginPeriod(1);
とし、終了時に
timeEndPeriod(1);
とやってます。

あと、思い出した事は、
別のプロジェクト(ゲーム)でも無限ループに陥ってました。

念のため、起動時にtimeGetTimeが正常に動作するか確認するかどうかで迷ってます…。

722 名前:678 :2005/10/02(日) 05:02:19
>>720
できました!どうもありがとうございました。


723 名前:683 :2005/10/02(日) 09:09:23
>684-688
の皆さんありがとうございます。
BitBltと回転行列で実現できそうです。

690さんは・・・

724 名前:デフォルトの名無しさん :2005/10/02(日) 09:28:07
ATi CATARYSTの左90度回転機能実行させるAPIとDell UltraSharp2001FP HASを左90度回転させるAPIを教えてくだしあうぇrtふygbhにmじょk、l。「;

725 名前:デフォルトの名無しさん :2005/10/02(日) 10:53:06
>>723
Direct3Dを使わずDC経由でのみ画像にアクセスするアプリなのであれば、GDI+を使うべきだと思うよ。
アンチエイリアス効果が使えるので、縮小拡大画像も綺麗に見せることができる。

726 名前:デフォルトの名無しさん :2005/10/02(日) 11:13:08
GDI+はハードウエア支援が絶望的だけどね

727 名前:デフォルトの名無しさん :2005/10/02(日) 11:23:56
DC経由で操作する古典的なアプリで、ハードウェア支援とか言い出すのもどうかと思う。

728 名前:デフォルトの名無しさん :2005/10/02(日) 11:27:50
>>726
君は詳しそうだね。
まずは、ハードウェア支援があるDC用のWin32API関数を列挙してくれない?

729 名前:デフォルトの名無しさん :2005/10/02(日) 11:54:58
ハードウエア支援=ハードウエア依存
という現実を無視する>>726に幸あれ。

730 名前:デフォルトの名無しさん :2005/10/02(日) 12:00:51
俺は、ビデオドライバの入替や、最新DirectXのインストールをユーザに求める度胸はないな。
俺はプロフェッショナルな>>726と違って腰抜けなので、配布物にgdiplus.dllを添付する仕様にするね。

731 名前:デフォルトの名無しさん :2005/10/02(日) 12:23:00
スタティックリンク出来るならGDI+使ってあげてもいいのに

732 名前:デフォルトの名無しさん :2005/10/02(日) 12:23:44
>>728
特定条件下ではビットマップがビデオメモリ上に取られたり
BitBltがハードウェアで行われるとか聞いたことがある。

と探してたらあった。
ttp://www.sun-inet.or.jp/%7Eyaneurao/intensive/diw1.html

733 名前:デフォルトの名無しさん :2005/10/02(日) 12:40:16
vistaからはGDIは全てソフトウェア処理になるそーだ
GDI+もそうなんだろうか

734 名前:デフォルトの名無しさん :2005/10/02(日) 12:46:36
DirectX10でググってたらこんなの出てきたよ

If your graphics card is using the new Vista driver model then
GDI/GDI+ has *NO* hardware acceleration. In practise this shouldn't
be a big deal since the CPUs are so darn fast these days.

ハードウェアアクセラレートがあるっていうから勉強してたのに
もうGDI+使わねーよヽ(`Д´)ノウワァァン
デマ流してた奴でてこーい

735 名前:690 :2005/10/02(日) 12:52:05
>>723
褒め称えてくれてかまわんよw遠慮すんなってww
さてはツンデレか?

736 名前:デフォルトの名無しさん :2005/10/02(日) 13:09:25
BitBltの速度検証はエロゲ葱板で数年前に検証してたはず。
結論はビデオカードにによって速度が全然違ってたような‥‥

737 名前:デフォルトの名無しさん :2005/10/02(日) 13:11:47
ドライバ次第

738 名前:デフォルトの名無しさん :2005/10/02(日) 13:14:40
日進月歩のこの世界で数年前の検証の意義は微妙じゃね?

739 名前:デフォルトの名無しさん :2005/10/02(日) 14:08:56
>>734
その訳だと、「現状のvistaドライバは未対応だ。」って言ってるようにもみえるね。
ま、どっちにしろCPUが高速になっているから、2D環境でのハードウェア支援はあまり要らんだろ。

740 名前:デフォルトの名無しさん :2005/10/02(日) 14:40:08
>>739
「新しいvistaのドライバモデルでは」じゃないの?

741 名前:デフォルトの名無しさん :2005/10/02(日) 14:58:56
Vistaドライバモデルではハードウェア支援を受けられないけど
最近のCPUは高速になってるから大したこと無い。
ってことか。

742 名前:デフォルトの名無しさん :2005/10/02(日) 15:01:43
LDDMのことですね
ゲームの場合だと古いドライバモデルを使ったほうが速いなんてことも発生するのかな

743 名前:デフォルトの名無しさん :2005/10/02(日) 15:53:00
一番重要なのは、GDI+だけでなくGDI全体がソフトウェア処理されるって部分だろ。
つまり、DirectXを使わないアプリは、すべてソフトウェアレンダリングってこった。

744 名前:743 :2005/10/02(日) 15:55:38
あ・・WindowsMedia関連はどうなるのかねぇ。
WindowsMediaはDirectXやDirectShowとは別の独立した存在だし。
どっちにしろGDIじゃないからハードウェアサポートありだろうけど。

745 名前:デフォルトの名無しさん :2005/10/02(日) 15:56:13
低スペックPCにVISTA入れる奴が悪い

746 名前:デフォルトの名無しさん :2005/10/02(日) 15:57:29
そもそもVistaではGDI切り捨てるというか、2Dは切り捨てだと言ってなかったっけ?
全てを3Dに移行するというのを見た記憶があるが

747 名前:デフォルトの名無しさん :2005/10/02(日) 16:01:26
>>746
2D切り捨てたらビジネスアプリはどうなる?
2D描画も3Dハードウェアで描画するってだけだろ。

748 名前:デフォルトの名無しさん :2005/10/02(日) 16:06:48
>>747
ビジネスアプリに限らず、HDC型を用いるレガシーのAPI全般が影響を受けるでしょ。

749 名前:デフォルトの名無しさん :2005/10/02(日) 16:14:25
>>747
だからそう書いてるじゃまいか
誤解したなら俺の書き方が悪かった

750 名前:デフォルトの名無しさん :2005/10/02(日) 16:20:21
豊かなユーザー・エクスペリエンスをもたらすWindows Vista時代のAPIセット「WinFX」
ttp://www.atmarkit.co.jp/fdotnet/insiderseye/20050928pdc2005/pdc2005_01.html

WinFXは.NET Framework 2.0の延長線上にある基本クラス・ライブラリである。
前回のPDC 2003では、Windows VistaでWin32 APIはWinFXへと完全に移行するかのようにいわれていたが、
現在ではWindows Vistaの持つ新機能はWinFXとWin32 APIのどちらでも同じようにアクセスできることが
マイクロソフトから明言されている。


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