トップページ⇒tech
1001コメント212KB

Win32API質問箱 Build91

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2010/11/08(月) 02:01:42
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやHなお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

■過去スレ
Win32API質問箱 Build90
http://hibari.2ch.net/test/read.cgi/tech/1287205063/

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

過去スレはwikiから探してください。
0002デフォルトの名無しさん2010/11/08(月) 02:02:04
以下くだらない話
0003デフォルトの名無しさん2010/11/08(月) 02:06:55
−−−終了しました−−−
0004デフォルトの名無しさん2010/11/08(月) 02:07:31
−−−修復しました−−−
0005デフォルトの名無しさん2010/11/08(月) 02:08:22
−−−絶望しました−−−
0006デフォルトの名無しさん2010/11/08(月) 02:09:20
糞スレ
0007デフォルトの名無しさん2010/11/08(月) 02:11:41
WMP12(動画再生中)がSnippingShotでとれてGetDC(hWnd)でとれないのはなぜ?
まあ、GetDC(GetDesktopWindow())でスクリーン全体とって切り出しすればとりあえずはOKそうだな。前スレ>>939を参考にする限り。
ありがとうございました。
0008デフォルトの名無しさん2010/11/08(月) 02:11:57
Brain>erase "new" OR "sizeof(DWORD)"
記憶を消去しました.

Brain>_
0009デフォルトの名無しさん2010/11/08(月) 02:13:22
テンプレ
http://studiokingyo.fc2web.com/
0010デフォルトの名無しさん2010/11/08(月) 02:16:02
テンプラ
http://studiokingyo.fc2web.com/
0011デフォルトの名無しさん2010/11/08(月) 02:16:45
テンプル
http://studiokingyo.fc2web.com/
0012デフォルトの名無しさん2010/11/08(月) 02:18:36
Templete -> Tempura -> Temple
0013デフォルトの名無しさん2010/11/08(月) 02:18:36

                ( ゚д゚ )
              ¶ノ ¶ノ |
          / ̄ ̄ ̄ ̄ ̄\
          ./  (,)   (,)  ヽ
         |     | ̄|     |
         ヽ     ̄ ̄    /
          |  |   |  |   |
         .ノ .ノ ヽ ノ .ノ   .|
         (_ノ  (_ノ    .|
            / /  ̄/ /
           < <   .< <
            ヽ ヽ   ヽ ヽ
0014デフォルトの名無しさん2010/11/08(月) 02:21:31
Templeteとか英語出来ない日本人の典型例だな
0015デフォルトの名無しさん2010/11/08(月) 02:24:41
パッションテンプリート
0016デフォルトの名無しさん2010/11/08(月) 02:26:33
ただの落書き箱だよなここ
0017デフォルトの名無しさん2010/11/08(月) 02:34:54
釣れたww
0018デフォルトの名無しさん2010/11/08(月) 02:41:18
過疎ってるな
0019デフォルトの名無しさん2010/11/08(月) 02:56:43
隔離スレだからageんな
0020デフォルトの名無しさん2010/11/08(月) 03:01:29
>>19
age
0021デフォルトの名無しさん2010/11/08(月) 17:04:45
サービスプログラムを作成しています。
サービス側から、PC内のユーザーアカウント名を列挙したいのですが、
どのようにすればよいでしょうか?
0022デフォルトの名無しさん2010/11/08(月) 17:19:27
getuser
0023デフォルトの名無しさん2010/11/08(月) 17:39:12
定期あげ
0024212010/11/08(月) 17:54:54
>>22
登録されているアカウントを全て列挙したいです。
0025デフォルトの名無しさん2010/11/08(月) 18:01:23
で?
0026デフォルトの名無しさん2010/11/08(月) 18:04:20
.NETじゃないと無理
0027デフォルトの名無しさん2010/11/08(月) 18:26:15
やっぱ時代は.NETだね
0028デフォルトの名無しさん2010/11/08(月) 18:40:56
.NETでできました!ありがとうございます!!
0029デフォルトの名無しさん2010/11/08(月) 19:17:52
.NET最高!
0030デフォルトの名無しさん2010/11/08(月) 19:22:47
それと便座カバー
0031デフォルトの名無しさん2010/11/08(月) 20:12:28
ちがう物体ちがう物体ちがう物体
0032デフォルトの名無しさん2010/11/08(月) 20:45:33
>>24
NetUserEnumじゃね?
0033242010/11/08(月) 21:03:34
>>32
ありがとうございます。
これをキーワードに調べていきたいと思います。
0034デフォルトの名無しさん2010/11/08(月) 21:17:39
>>28
まったくなりすましかよ!w
0035デフォルトの名無しさん2010/11/08(月) 21:50:13
>>34
>>34
>>34
0036デフォルトの名無しさん2010/11/08(月) 22:11:54
>>35
>>35
>>35
0037デフォルトの名無しさん2010/11/08(月) 22:20:39
.net厨しねや
0038デフォルトの名無しさん2010/11/08(月) 22:29:46
.NET便利だね。これからは.NETで開発しよう。
0039デフォルトの名無しさん2010/11/08(月) 22:41:15
.NETやCodepackだけでどうしても実現できないならP/Invoke経由でAPI使えばいいしな
0040デフォルトの名無しさん2010/11/08(月) 22:48:47
ドトネトがやられたようだな...
ククク...奴は四天王の中でも最弱
0041デフォルトの名無しさん2010/11/08(月) 23:19:07
画面描画のため、垂直ブランキングを待つためのAPIって
Win32では何か用意されていますか?
0042デフォルトの名無しさん2010/11/08(月) 23:22:11
GetGlyphOutlineで"1"や"あ"の情報をうまく取得できません。乱れてしまいます
0043デフォルトの名無しさん2010/11/09(火) 00:12:01
>>41
つ DWM
0044デフォルトの名無しさん2010/11/09(火) 00:17:31
むしろ.NET
0045デフォルトの名無しさん2010/11/09(火) 01:26:10
>>42
j事故解決しました
0046デフォルトの名無しさん2010/11/09(火) 01:30:40
.Netアプリはユーザーに嫌われる
0047デフォルトの名無しさん2010/11/09(火) 01:58:00
受注開発物なら、お客さんの了解さえ得ればいいから問題ないんだけどね。
起動やUIがちょっとばかり速くなるより納期が短くなる方がいいし。

フリーソフトの作者なんかが、ユーザの評判を気にして.NETを使えないでいるのは
実に残念だ。
0048デフォルトの名無しさん2010/11/09(火) 02:25:20
フリーでなくともより多くの人が使うプログラムは僅かな速度にも気を配る価値はあるよね
ドカタなら.netがお似合いだけど
0049デフォルトの名無しさん2010/11/09(火) 02:53:57
ドカタなら.netがお似合い(キリッ
0050デフォルトの名無しさん2010/11/09(火) 04:51:21
起動やUIが遅いとかどんだけ低スペック使ってるんだよ
0051デフォルトの名無しさん2010/11/09(火) 04:59:58
今時.NET製という理由だけで毛嫌いするユーザーなんて絶滅危惧種でしょう
レジストリ潔癖症の基地外か98/2000を未だ常用してる貧乏人とかその辺
0052デフォルトの名無しさん2010/11/09(火) 07:32:25
.NETはWindows Updateで失敗を繰り返す持病があるからなあ
クライアントが大量にあると、そのメンテだけでがっつり時間を取られるのが地味に痛い
0053デフォルトの名無しさん2010/11/09(火) 09:51:00
>>50-51
その手の言い訳は聞き飽きてるわ
0054デフォルトの名無しさん2010/11/09(火) 10:18:20
.NETはスキルのない開発者が楽を出来るだけで、利用者にはデメリットしかないから嫌われる。
0055デフォルトの名無しさん2010/11/09(火) 10:28:53
的確な指摘
0056デフォルトの名無しさん2010/11/09(火) 11:51:33
Windows3.1で動いてるC++Winアプリ(APIを使用)って
WindowsXPで動きますか??
ドライバ関係は無くて単なる計算して結果を表示するアプリです。
0057デフォルトの名無しさん2010/11/09(火) 13:00:17
とりあえずやってみたらいいんじゃね?
32bitのWindowsは16bit版プログラムでも一応動かせるようになってるはず
0058デフォルトの名無しさん2010/11/09(火) 13:00:37
定期あげ
0059デフォルトの名無しさん2010/11/09(火) 13:00:58
Win32sならほぼ動く
スレ違いのWin16でもProfessional x64 Edition以外ならそれなりに動く
0060デフォルトの名無しさん2010/11/09(火) 13:46:22
intが16bit前提のプログラムがされてたらどっかで死ぬんじゃね?
0061デフォルトの名無しさん2010/11/09(火) 13:48:20
DOSコマンドのnet useで列挙されるネットワーク接続一覧を取得する
APIコマンドってあるのでしょうか?
特定のネットワーク接続だけ、アプリ起動時にWNetCancelConnectionで
クローズしてから起動をするようなプログラムを作成しようと思っています。

色々調べましたがどうしてもわかりませんでしたので、どなたか
ご教授頂ければ幸いです。
0062デフォルトの名無しさん2010/11/09(火) 14:59:23
>>60
16bitアプリはCPUに関係なく16ビットレジスタ範囲で動くんだが、
いったい何が死ぬと言うんだ?
おまえの頭か?
0063デフォルトの名無しさん2010/11/09(火) 15:06:05
>>61
コンソールアプリとDOSコマンドを混同するな。
それからWNetCancelConnectionを知っているのに、同系列の列挙のAPIが調べられないのは明らかにおかしい。
0064デフォルトの名無しさん2010/11/09(火) 15:10:19
>コンソールアプリとDOSコマンドを混同するな。

DOSコマンドのnet useで列挙されるネットワーク接続一覧を取得する ( よ う な )
APIコマンドってあるのでしょうか?

>それからWNetCancelConnectionを知っているのに、同系列の列挙のAPIが調べられないのは明らかにおかしい。
色々調べましたがどうしてもわかりませんでしたので、どなたか
ご教授頂ければ幸いです。

文盲の上、ホルホルしたいだけの奴は消えろよ。
お前みたいな奴がこのスレを隔離スレ化してんだよ。
0065デフォルトの名無しさん2010/11/09(火) 15:12:33
netはDOSコマンドではないと指摘されているのを理解できないのか
0066デフォルトの名無しさん2010/11/09(火) 15:16:16
ヒーハー
0067デフォルトの名無しさん2010/11/09(火) 15:18:48
やらぁ、ねっとねっとするぅ
0068デフォルトの名無しさん2010/11/09(火) 15:35:22
バグを仕様にすりかえるのが得意な人たちばっかりですので
0069デフォルトの名無しさん2010/11/09(火) 15:36:34
>>61
ある夜
0070デフォルトの名無しさん2010/11/09(火) 15:43:58
わかったわかった
じゃあDOSコマンドのnetじゃなくてガンダムで教えてくれ
0071デフォルトの名無しさん2010/11/09(火) 15:47:09
>>61
http://homepage1.nifty.com/MADIA/vc/vc_bbs/200608/200608_06080009.html
0072デフォルトの名無しさん2010/11/09(火) 15:47:14
>>69
ありがとさん
0073デフォルトの名無しさん2010/11/09(火) 15:50:48
>>61
WNetAddConnection2
WNetCancelConnection2
WNetAddConnection3
WNetCancelConnection3
0074デフォルトの名無しさん2010/11/09(火) 15:51:47
WNetGetConnection
0075デフォルトの名無しさん2010/11/09(火) 15:55:24
つーかnetコマンドで希望の機能があるのわかってるんだから
インポートテーブル見ればいいだけの話だ
0076デフォルトの名無しさん2010/11/09(火) 16:07:24
>>61です。

皆様、よくわからない質問の中ご回答いただきありがとうございます。
私自身で調べた限りでは、確かにWNetGetConnectionで情報が取れそうだと
思ったのですが、ローカル名がない接続情報の取得方法がわからなかったため、
頓挫していました。

やりたいことは、WNetAddConnection2でERROR_SESSION_CREDENTIAL_CONFLICTを
出さないようにするために、同じリモート名で既に接続されている全ての
ネットワーク接続を一度切断してから、接続処理を行いたいのです。

何かよい方法がありましたら、何でもいいので情報をいただけませんか?

>>63
@ITで「netコマンド」と気軽に記載していたので、Windows2000/XP以降に
新しく加わったDOSコマンドだと勘違いしてました。すみません。

>>71
これはこれで興味深い情報なのですが、今回の件とはちょっと違いました。
情報、ありがとうございました。

>>73>>74
情報、ありがとうございました。

>>75
インポートテーブルというものがよくわかりませんでした。
勉強不足ですみません。
0077デフォルトの名無しさん2010/11/09(火) 16:18:54
少しは調べろと書こうと思ったけど、googleの上位がAccessだのOracleだので
埋め尽くされてて確かにわかりにくいな

実行ファイル内にある使用してるAPIとDLLの一覧だと思えばいい
dumpbinやDependency Walkerなどで調べられる
実際に使ってみればわかるが、NetUseEnumなんていう
いかにもな名前のAPIを呼んでる
0078デフォルトの名無しさん2010/11/09(火) 16:59:28
NetUseEnum一択タだと思うけどねぇ
試してないけど
0079デフォルトの名無しさん2010/11/09(火) 18:26:40
>>77>>78
ご回答ありがとうございました。NetApi32.dllのNetUseEnumを使って
希望通りの情報を取得することが出来ました。本当にありがとうございます。

Dependency Walkerはこうした使い方もあるんですね。あまり意識せずに
必要なモジュールがそろっているかのチェック程度にしか使っていませんでした。

重ね重ね、お礼申し上げます。
0080デフォルトの名無しさん2010/11/09(火) 19:16:13
ほしゅ
0081デフォルトの名無しさん2010/11/09(火) 20:43:28
.NET最高!
0082デフォルトの名無しさん2010/11/09(火) 20:44:46
それはない
0083デフォルトの名無しさん2010/11/09(火) 20:47:57
それはない
0084デフォルトの名無しさん2010/11/09(火) 21:00:28
それはある
0085デフォルトの名無しさん2010/11/09(火) 21:20:49
なぁ?やっぱり.NETは神の生産効率だろぅ?
0086デフォルトの名無しさん2010/11/09(火) 22:33:41
神ってそんなにのろまだったのか
0087デフォルトの名無しさん2010/11/09(火) 22:34:18
↓以下.NET信者の援護レス↓
0088デフォルトの名無しさん2010/11/09(火) 23:20:18
此処にいる優秀な開発者たちに.Netで開発させて.Netの評判を上げたい気持ちはワカランでもない
0089デフォルトの名無しさん2010/11/09(火) 23:25:55
.NET + E = NEET
0090デフォルトの名無しさん2010/11/10(水) 00:04:35
>>76
>同じリモート名で既に接続されている全ての
>ネットワーク接続を一度切断してから

他人のセッションのリモート名は取得出来ないからあきらめろ
0091デフォルトの名無しさん2010/11/10(水) 05:51:04
定期あげ
0092デフォルトの名無しさん2010/11/10(水) 09:58:31
エッチなまうまう?
0093デフォルトの名無しさん2010/11/10(水) 15:25:19
WinMainの戻り値はintですが、x64でコンパイルした時でも何故int固定なのでしょうか。
OSが64bitならば戻り値も__int64に変換されてもよさそうなのですが。。
0094デフォルトの名無しさん2010/11/10(水) 15:51:40
なぜって、変えんの面倒いじゃん?
0095デフォルトの名無しさん2010/11/10(水) 15:56:24
>>93
互換性という言葉があってだな
0096デフォルトの名無しさん2010/11/10(水) 16:06:26
>>94
なるほど

>>95
ウィンドウメッセージのWPARAMなどは64bit化してるようですし、
チグハグな感じをうけました。
0097デフォルトの名無しさん2010/11/10(水) 16:09:42
WPARAMとかはポインタが入ってたりするからな
64bitに対応させないと
0098デフォルトの名無しさん2010/11/10(水) 16:20:39
ポインタ!なるほどスッキリしました。
0099デフォルトの名無しさん2010/11/10(水) 17:26:52
ポインタ!
0100デフォルトの名無しさん2010/11/10(水) 17:36:17
定期あげ
0101デフォルトの名無しさん2010/11/10(水) 18:25:43
すみません
DLLを作るにあたって
1) DllMain() を書く方法と
2) DllEntryPoint() を書いて DllMain() を省略する方法と
3) DllEntryPoint() と DllMain() のどっちも書かない方法
4) その他?
とかがあるみたいですが
どのやりかたが正しいんでしょうか?
0102デフォルトの名無しさん2010/11/10(水) 18:34:00
DLLを作るだけならどれだって正しい
VC++のランタイムライブラリが呼んでくれる名前はDllMainだというだけ
0103デフォルトの名無しさん2010/11/10(水) 18:42:04
現在C#を使用しているのですがFindWindowについて教えてください。

ある監視ソフトを作っており、イベントが起きると別アプリを起動します。
その際にFindWindowにてハンドルを取得できればそのアプリにメッセージ(SendMessage)を
送ります。取得できなければ起動するという処理を行っております。

困っているのは、アプリ名が同じ場合(プログラム名は違います)にうまく取得できません。

また、それと逆にイベントが起きると閉じる処理PostMessageを行うようにしていますが、
同じく同じ名前だとうまく処理できません。何かいい方法があるのでしょうか?よろしくおねがいします。
0104デフォルトの名無しさん2010/11/10(水) 18:49:51
クラス名でFindWindowしろ
0105デフォルトの名無しさん2010/11/10(水) 18:54:46
クラス名も同じ・・なのですが@w@
0106デフォルトの名無しさん2010/11/10(水) 19:03:28
じゃあ無理だ
諦めろ
0107デフォルトの名無しさん2010/11/10(水) 19:10:51
○rz
0108デフォルトの名無しさん2010/11/10(水) 19:12:10
その別アプリを起動するのが自分なら
プロセスハンドルからウインドウハンドルを取得しろ
0109デフォルトの名無しさん2010/11/10(水) 19:18:49
誰が閉じるか開けるか不確定なのでどうしようもないのですorz

ユーザーに周知しても駄目だろうし・・・・あぁ困ったorz

今日はもう帰ります;w;明日起きたら良いアイディア思い・・・うかぶわけねーか;w;
0110デフォルトの名無しさん2010/11/10(水) 19:32:39
>>103
仕様が糞でハナシにならない。
0111デフォルトの名無しさん2010/11/10(水) 19:36:57
実現不可能な仕様
モンスタークライアントの悪夢
0112デフォルトの名無しさん2010/11/10(水) 22:12:18
Vista以降で管理者権限でexeを起動させたい場合、
CreateProcessで可能ですか?もちろんUACのウィンドは表示されても大丈夫です
0113デフォルトの名無しさん2010/11/10(水) 22:26:13
明日からデファクトスタンダードになる.NETで開発しろよ
0114デフォルトの名無しさん2010/11/10(水) 22:35:28
ShellExecuteにrunasでないと確認なしで失敗する
0115デフォルトの名無しさん2010/11/10(水) 23:54:29
>>112
マニフェストに書いてあるなら大丈夫じゃね?
01161122010/11/11(木) 00:13:04
>> 114, 115
ありがとうございます。 
ケースバイケースで管理者権限が必要ない場合があるので、
マニフェストをつけることはできません。
ShellExecuteで実装してみます。
0117デフォルトの名無しさん2010/11/11(木) 01:59:21
Win64スレが落ちたね
01181032010/11/11(木) 09:06:58
昨日帰ってから、ふと思ったのですが唯一exe名だけが異なります。
CallBackでハンドルとexe名の関連付けとかできる仕様ってあるのでしょうか?

よろしくおねがいします。

PS.自分で探したけど見つからなかった;w;
0119デフォルトの名無しさん2010/11/11(木) 10:15:37
EnumWindows->(EnumChildWindows->)GetWindowThreadProcessId->OpenProcess->GetProcessImageFileName
0120デフォルトの名無しさん2010/11/11(木) 10:21:40
>>118
ttp://d.hatena.ne.jp/yu-hr/20100323/1269356160
0121デフォルトの名無しさん2010/11/11(木) 11:06:16
定期あげ
0122 ◆ri5Y.eMu8c 2010/11/11(木) 16:21:21
お世話になります。

"LOCAL SERVICE"権限で動作しているデバイスドライバのプロセスから
GUIなアプリを起動する方法について教えてください。

調べてみたところ、サービスはユーザーとは異なるデスクトップを持つため
そのままCreateProcess等でアプリを起動しても、ウィンドウは表示されない
…というところまでは理解しました。

OpenWindowStation()を利用するサンプルがあったので試してみましたが
「アクセス権がありません」というエラーが出てしまい、ダメでした。

この辺に詳しい方、お力を貸していただけると助かります。
0123デフォルトの名無しさん2010/11/11(木) 19:33:36
エッチなまうまう?
0124デフォルトの名無しさん2010/11/11(木) 21:07:39
>>122
無理
0125デフォルトの名無しさん2010/11/11(木) 22:01:46
>122
Delphiだけどこんなのは参考にならないかな?
ttp://www.cromis.net/blog/2010/01/how-to-start-a-gui-process-from-service-under-windows-vista7/
0126デフォルトの名無しさん2010/11/11(木) 22:35:03
定期あげ
0127デフォルトの名無しさん2010/11/11(木) 23:57:04
何もドラッグして無くても、ドラッグのカーソルにする方法ってありますか?
0128デフォルトの名無しさん2010/11/11(木) 23:57:44
SetCursor
0129デフォルトの名無しさん2010/11/12(金) 01:57:41
メッセージボックスのメッセージ中にHTMLのリンクを埋め込むことは出来ますか?
0130デフォルトの名無しさん2010/11/12(金) 02:03:59
やってやれないことは無いけどかなりメンドイよ
自分で作ったダイアログじゃダメなのか?
0131デフォルトの名無しさん2010/11/12(金) 04:56:59
>>130
そうします
0132デフォルトの名無しさん2010/11/12(金) 10:57:35
>>128
ドラッグカーソルの定数って何でしょうか?
0133デフォルトの名無しさん2010/11/12(金) 20:32:42
定期あげ
0134デフォルトの名無しさん2010/11/12(金) 20:39:05
常時さげ
0135デフォルトの名無しさん2010/11/12(金) 21:49:36
さげ
0136デフォルトの名無しさん2010/11/13(土) 01:52:11
いいからAPI出せや
0137デフォルトの名無しさん2010/11/13(土) 05:01:16
つ CreateUmsThreadContext
0138デフォルトの名無しさん2010/11/13(土) 05:03:08
お、おぅ・・・
0139デフォルトの名無しさん2010/11/13(土) 05:28:48
作りたいプログラムがない・・・
0140デフォルトの名無しさん2010/11/13(土) 08:44:30
課題スレってあるの?
0141デフォルトの名無しさん2010/11/13(土) 12:03:11
Windows上からBIOSの設定にアクセスしてるやつどうやってるの?
0142デフォルトの名無しさん2010/11/13(土) 12:20:19
DeviceIoControl
0143デフォルトの名無しさん2010/11/13(土) 12:27:38
http://msdn.microsoft.com/en-us/library/aa394077%28VS.85%29.aspx
0144デフォルトの名無しさん2010/11/13(土) 14:33:33
ドライバ作んなきゃいけないのかと思ってた。
0145デフォルトの名無しさん2010/11/13(土) 14:38:36
MIDI関係に詳しい方いらっしゃったら教えてください。
MIDIの資料はもうかなり古いものが多いようですが、
「メッセージの送信には midiOutShortMsg() 関数を使います」という記述を見つけたのですが、
MSDNでぐぐっても出てきません。
かわりにmidiOutMessage()というのが出てきたのですが、
現在はmidiOutShortMsg()というのは淘汰され、midiOutMessage()に変わったのでしょうか?
0146デフォルトの名無しさん2010/11/13(土) 14:40:37
yes
0147デフォルトの名無しさん2010/11/13(土) 14:41:16
全言語で検索しろよ
0148デフォルトの名無しさん2010/11/13(土) 14:44:32
http://www13.plala.or.jp/kymats/study/MULTIMEDIA/midiOutShortMsg.html
01491452010/11/13(土) 14:55:17
MSDNのトップページの一番上の検索窓を使いましたが、
検索範囲に絞込みがかけてあるのですか?
MSDNで出てこなくても使えるということなのでしょうか?
midiOutMessage()を使ったほうがベターでしょうか?
C#から呼び出して使うつもりです。
0150デフォルトの名無しさん2010/11/13(土) 15:02:57
どこが出てこないんだよ
0151デフォルトの名無しさん2010/11/13(土) 15:16:13
ショートメッセージを送信するときは、midiOutShortMsgを使う
midiOutMessageはデバイスドライバーにドライバー固有の
メッセージを送るときに使う
俺midiOutMessageなんか使ったことないぞ

C#からmidiOutShortMsg使うときは以下のおまじないが必要

[DllImport("winmm.dll")]
public static extern int midiOutShortMsg(IntPtr hmo, uint dwMsg);

がんがれ
01521452010/11/13(土) 15:16:38
失礼しました!途中まで入力して候補の中にが出てこないし、
midiOutShortまで打ち込んで検索しても引っかからなかったのであきらめてました。。
MSDNの検索って完全一致でないと拾ってくれないんですね。
チラ見ですが、midiOutMessageとは少し違うみたいですね。
01531452010/11/13(土) 15:26:52
>>151
ありがとうございます!
0154デフォルトの名無しさん2010/11/13(土) 17:00:24
ウィンドウプロシージャ内でプログラムを終了させなくちゃいけないような
致命的なエラーが起きた起きたとき、どうやって終了させる?
0155デフォルトの名無しさん2010/11/13(土) 17:01:59
パソコンを窓から放り投げる
0156デフォルトの名無しさん2010/11/13(土) 17:02:08
普通に終了させちゃ駄目なんですか
0157デフォルトの名無しさん2010/11/13(土) 17:10:16
DebugBreakを呼ぶ
0158デフォルトの名無しさん2010/11/13(土) 17:32:01
致命的なんだから死んだっていいよね
0159デフォルトの名無しさん2010/11/13(土) 17:54:59
リストビューの縮小版サムネイルの大きさを、自分のみ変更することは可能でしょうか。
可能でしたら、その方法を教えていただければと思います。
0160デフォルトの名無しさん2010/11/13(土) 17:58:52
ImageListのサイズ変更したら行けないかな
0161デフォルトの名無しさん2010/11/13(土) 17:59:05
>>157
採用
01621412010/11/13(土) 18:14:14
>>142,143
ありがとうございます。できました。
0163デフォルトの名無しさん2010/11/13(土) 18:22:08
PostQuitMessageではだめなの?
0164デフォルトの名無しさん2010/11/13(土) 18:28:47
assert()だろ常考
0165デフォルトの名無しさん2010/11/13(土) 18:30:32
FatalAppExit
0166デフォルトの名無しさん2010/11/13(土) 18:45:58
定期あげ
0167デフォルトの名無しさん2010/11/13(土) 19:24:32
Win7 64bitの delete が遅いのですが、早くする方法はありませんか?
VC++ 2005 で100万件のオブジェクトをdeleteするのに1分近くかかってしまいます
XP 32bitのときは、google performance toolsを入れて new と delete を高速化していたのですが、Win7 64bitには未対応でリンクできませんでした
0168デフォルトの名無しさん2010/11/13(土) 20:20:56
普通じゃね?
32bit版の実行ファイルでやってみてもそうなるの?
0169デフォルトの名無しさん2010/11/13(土) 20:44:52
お前には3行目が読めないの?
0170デフォルトの名無しさん2010/11/13(土) 20:46:24
>>168
Visual Studio 2005 の C++ で delete にかかる時間を計測したのですが、同じプログラムでも
32bit  69秒 (VC++標準)
32bit 0.09秒 (google performance toolsのtcmallocを使用)
64bit 153秒
と、googleのtcmallocが圧倒的速度ですが、標準でも32bitと64bitでは2倍くらいの差で、64bitのdeleteが遅い状況です
64bitはntdllが遅いようで、もう64bitやめようかと・・・(´・ω・`)
0171デフォルトの名無しさん2010/11/13(土) 20:49:12
ビョーン。
0172デフォルトの名無しさん2010/11/13(土) 21:01:55
>>167の件、解決しました
Visual Studioから実行すると遅くなるようです
ビルドしたexeファイルを直接、実行した場合はdeleteがすぐに終わりました
0173デフォルトの名無しさん2010/11/13(土) 21:05:02
コンストラクタとデストラクタの中身は分からないが
今時のCPUで100万件でそんなに時間がかかるとは思えない
mallocならかかってもせいぜい数秒
ファイルを読み込んでるとかメモリをゼロクリアしてるとか
例外でも発生してるんじゃね?
0174デフォルトの名無しさん2010/11/13(土) 21:06:35
なんだDebugビルドか
0175デフォルトの名無しさん2010/11/13(土) 21:08:13
>>174
いや、Releaseビルドですよ。Win7というのが関係しているのかもしれません
0176デフォルトの名無しさん2010/11/13(土) 21:10:44
おおかたエクセルコントロールから1件ずつ削除でもしてるんだろう
0177デフォルトの名無しさん2010/11/13(土) 21:31:24
おまっ、どうすんだよこれ
http://codepad.org/MUwPe4oA
0178デフォルトの名無しさん2010/11/13(土) 21:31:25
常識的に考えてコンストラクタが1u以下であれるべきる
0179デフォルトの名無しさん2010/11/13(土) 21:33:23
わんわんお?
0180デフォルトの名無しさん2010/11/13(土) 21:37:09
エッチなまうまう?
01811612010/11/13(土) 21:39:41
ちょwwwww
FatalAppExit使い勝手いいわwwww
>>165超GJ
0182デフォルトの名無しさん2010/11/13(土) 21:42:13
こんなの常用すべきもんじゃないよ
01831612010/11/13(土) 21:44:06
>>182
メモリ確保失敗とかで終了させるときに使おうと思ってたんだがダメなのか?
0184デフォルトの名無しさん2010/11/13(土) 22:04:51
ほかの方法で終了できない場合にだけ、アプリケーションは FatalAppExit 関数を呼び出します。
FatalAppExit 関数は、常にアプリケーションが使用したメモリを解放したり、ファイルを閉じるとはかぎりません。
Windows の一般エラーの原因になることもあります。アプリケーションで予期しないエラーが発生した場合は、
このアプリケーションが使用するメモリをすべて解放し、メインメッセージループから戻って終了するようにします。
0185デフォルトの名無しさん2010/11/13(土) 22:08:38
メモリー確保の失敗とか起こるような状況下で何ができるのかいまだに想像もつかないな・・・再現できないからデバッグもできないし
でも2GB確保しようとして足りなくて失敗したとかなら正常終了に持ち込んだ方がいい
01861612010/11/13(土) 22:15:31
>>184-185
じゃあハンドルとかメモリを全部開放した上でWM_CLOSEとかでおk?
0187デフォルトの名無しさん2010/11/13(土) 22:43:35
特に問題なければDestoryWindowだな。1/0で落とす方法もあるけど、こっちも非常用だな。
0188デフォルトの名無しさん2010/11/14(日) 02:15:59
*(char *)0 = 0;
0189デフォルトの名無しさん2010/11/14(日) 02:20:29
>>185
俺も普通の new で起きる bad_alloc なんかは、チェックすらしてない。
巨大なファイルをメモリにマップするとか、VirtualAllocで数百MBのメモリを
確保するとかだったらチェックするけど。
0190デフォルトの名無しさん2010/11/14(日) 02:27:20
>>184
日本語MSDNなんか引用すんな。低能。

Remarks
An application calls FatalAppExit only when it is not capable of
terminating any other way.
0191デフォルトの名無しさん2010/11/14(日) 03:08:14
>>184
>FatalAppExit 関数は、常にアプリケーションが使用したメモリを解放したり、ファイルを閉じるとはかぎりません。
他のプロセスが参照カウンタを増やしているとか、そういうオチだね。
何の問題も無い。
0192デフォルトの名無しさん2010/11/14(日) 03:28:14
どんなやり方であれ、プロセスが終了すればそのプロセスが使用していた資源は
全て解放される。これジャングルの掟。
0193デフォルトの名無しさん2010/11/14(日) 03:44:15
>>192

>>184はそれも怪しいって言ってるんじゃないかい
プロセスの正常な終了手続き取らないとか
0194デフォルトの名無しさん2010/11/14(日) 07:55:42
>>193
英語版(>>190)にはそんな事は書いていない。日本語版(>>184)が嘘。
低能はプログラミングすんな。
01951612010/11/14(日) 08:44:26
メモリ確保に失敗するような状況だからのんびりハンドル閉じたりしてないで
さっさとプログラム終了させなきゃいけないのかと思ってたんだがそうでもないのか?
0196デフォルトの名無しさん2010/11/14(日) 09:23:21
delete/->Dispose/->Release
CloseHandle
DestroyWindow
PostQuitMessage
ExitProcess
このあたりが全部失敗するような状況のことじゃないか?
0197デフォルトの名無しさん2010/11/14(日) 10:50:06
Dllファイルの読み込みで質問です。
今は普通にLoadLibraryで読み込んでるんですが、
ファイルからの読み込みしか対応してないようです。
これをメモリから読み込むようにできませんか?

今はこのようになってるんですが、
スクリーンセーバーなのでファイルをまとめたいんです。
urara.scr スクリーンセーバー
imgloader.dll 画像ローダー
voiloader.dll 音声ローダー

Bitmapなどの素材はリソースにおけるんで、
urara.scrの中に格納できたんですが、
imgloader.dllなどは格納はできるんですが、
LoadLibraryはリソースに対応してないようです。
0198デフォルトの名無しさん2010/11/14(日) 12:01:05
「ですが、」の多用で意味不明ですが、
LoadLibraryはリソースに対応してるようですが、
対応していないと思う理由を考えてみたのですが、
やはり意味不明ですね。
0199デフォルトの名無しさん2010/11/14(日) 14:52:38
SHBrowseForFolderでMAX_PATHを超える長さの
パスって取得できないのかな・・・
0200デフォルトの名無しさん2010/11/14(日) 14:58:46
>>197
ttp://ruffnex.oc.to/kenji/text/load_dll/
ここ読めば出来るような気がする
0201デフォルトの名無しさん2010/11/14(日) 15:25:18
>>198
すいませんプログラマ夜逃げで焦ってました。

>>200
ありがとうございます参考になりました。
0202デフォルトの名無しさん2010/11/14(日) 17:10:38
>>194
http://msdn.microsoft.com/en-us/library/ms679338%28v=VS.85%29.aspx
This function should only be used as a last resort,because it may not free the memory or files owned by the application.

書いていない=解放される、ではないよ
MSの場合は書いてあっても信用できないけどねw
0203デフォルトの名無しさん2010/11/14(日) 17:40:18
Visual Studio 2010 Expressで
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win13.html
にあるやつエラーになるんですがどうしてですか?

win32api.c(14): error C2065: 'LlpcsWnd' : 定義されていない識別子です。
win32api.c(14): error C2223: '->lpszName' : 左側が構造体か共用体に対するポインターではありません。
win32api.c(14): warning C4047: '関数' : 間接参照のレベルが 'LPCWSTR' と 'long' で異なっています。
win32api.c(14): warning C4024: 'MessageBoxW' : の型が 3 の仮引数および実引数と異なります。
win32api.c(14): error C2198: 'MessageBoxW' : 呼び出しに対する引数が少なすぎます。
0204デフォルトの名無しさん2010/11/14(日) 17:44:58
>>203
BCC使ってるけどコピペで問題なかった。
もっかい見直したら?
0205デフォルトの名無しさん2010/11/14(日) 17:51:59
マジレスするとそのサイトの内容が古いからそれで勉強するのはやめとけ。
Unicodeビルドやめてマルチバイトにすればビルドは通るだろうが、
今時そういうことをするのはちょっと。
0206デフォルトの名無しさん2010/11/14(日) 18:03:22
>>200
横からだけど出来ました
ありがとうございました
0207デフォルトの名無しさん2010/11/14(日) 18:05:15
>>204
BCCでできました。報告ありがとうございます
>>205
やはりサイトではなく本を買ったほうがいいでしょうか?
0208デフォルトの名無しさん2010/11/14(日) 18:05:19
>>203
エラー出ないように書き直すと勉強になるよ
0209デフォルトの名無しさん2010/11/14(日) 18:08:52
>>197 >>200
これ結構楽しいな
ウィルススキャンにも引っかからなかった
0210デフォルトの名無しさん2010/11/14(日) 18:17:16
つーか_tWinMain()にはなってないけど、TEXTマクロは使ってるんだな
ビルド通らないって入力ミスかなんかじゃないのか
0211デフォルトの名無しさん2010/11/14(日) 18:17:37
>>207
MessageBoxWって書いてあるのに気づかなかったとか死にてぇ・・・・・・
本は2004年5月の出版。7年ほど前の本だがどうするよ?
0212デフォルトの名無しさん2010/11/14(日) 18:17:58
と思ったら

> TEXT(lpcsWnd->lpszName)

これはねーわ(;´Д`)
0213デフォルトの名無しさん2010/11/14(日) 18:18:03
捨てる
0214デフォルトの名無しさん2010/11/14(日) 18:23:02
>>212
ここはどうするべきなんでしょうか?
0215デフォルトの名無しさん2010/11/14(日) 18:27:57
TEXTマクロに変数いれてるやつなんて初めて見た
素直に渡せよ
0216デフォルトの名無しさん2010/11/14(日) 18:28:08
TEXT()がいらない。
lpcsWnd->lpszNameにすればコンパイルは通ると思われる。
TranslateMessage()呼んでなかったりとかいろいろとアレなサンプルだな・・・
0217デフォルトの名無しさん2010/11/14(日) 18:31:42
>>215-216
ありがとうございます
>>211
ちょっと新しい本見つけて買おうと思います
0218デフォルトの名無しさん2010/11/14(日) 18:34:20
そういえば猫でもわかるWin(ryって第三版まで出てるみたいだけどけっこう良書?
0219デフォルトの名無しさん2010/11/14(日) 18:39:34
判断は何に価値を置くかで異なる。
まずは自分の価値基準を提示しろ。
0220デフォルトの名無しさん2010/11/14(日) 18:51:52
>>219
プログラムの本はあんま買わないからわからん
サイトなら入門のころお世話になった苦Cがけっこう良かった、と思う
0221デフォルトの名無しさん2010/11/14(日) 18:53:16
管理人の性格が微妙なやつか
0222デフォルトの名無しさん2010/11/14(日) 20:24:38
>>218
IDEに頼ってないところだけは評価してもいい
0223デフォルトの名無しさん2010/11/14(日) 20:38:23
定期あげ
0224デフォルトの名無しさん2010/11/14(日) 22:47:26
擬似ハンドルをDuplicateさせるのって
鏡をカメラで撮って写真にする感じだよー って一言説明あれば
分かりやすいのになー
0225デフォルトの名無しさん2010/11/14(日) 23:04:58
ポインタとかハンドルをたとえ話で説明する入門書は例外なく糞。
ポインタを単にポインタとして理解できない初心者は門前払いすべし。
0226デフォルトの名無しさん2010/11/14(日) 23:08:32
>>225
最近理解できたんだね。良かった良かった
0227デフォルトの名無しさん2010/11/14(日) 23:16:04
世界はポインタを隠蔽化する方向に向かっている^ object;
0228デフォルトの名無しさん2010/11/14(日) 23:29:29
Win32APIスレで何気取ったこと言ってるんだ?
0229デフォルトの名無しさん2010/11/14(日) 23:31:37
別に隠す必要ないのにね
ちゃんとコンピューター勉強したい人にとっては妨げになるだけ
0230デフォルトの名無しさん2010/11/15(月) 00:23:42
>>228
Win32APIスレで何気取ったこと言ってるんだ?
0231デフォルトの名無しさん2010/11/15(月) 04:37:09
定期あげ
0232デフォルトの名無しさん2010/11/15(月) 06:38:49
どれだけ隠蔽しても人はヌルポから逃れられないのさ
0233デフォルトの名無しさん2010/11/15(月) 07:27:47
はいはいぬるぽぬるぽ
0234デフォルトの名無しさん2010/11/15(月) 19:24:16
定期あげ
0235デフォルトの名無しさん2010/11/15(月) 22:08:23
赤鬼さんと朝まで豆まき
0236デフォルトの名無しさん2010/11/16(火) 09:18:15
定期あげ
0237デフォルトの名無しさん2010/11/16(火) 19:31:56
定期あげ
0238デフォルトの名無しさん2010/11/16(火) 19:37:42

FormatMessageWでHRESULTの説明を取得しようとしたら
↓の読み込み専用のなんとかエラーが出るんだけどどうすればいい


(裏) [一本道] 真中ゆり&大城楓 ペロリンピックpart1 エッチなスケートリンク (パイパン・レズ) [無修正] (704x396 Mpeg4v2 2820Kbps 29.97fps 128Kbps 48KHz J-Stereo 1h01m31s).avi
0239デフォルトの名無しさん2010/11/16(火) 19:41:11
>>238
PCをリカバリー
0240デフォルトの名無しさん2010/11/16(火) 19:49:51
cygwinスレのパロディか、つまらん
0241デフォルトの名無しさん2010/11/16(火) 19:51:21
>>238
zipでくれ
02422382010/11/16(火) 19:56:57
すいません。間違えて変な物をコピペしてしまいました…
>>238は見なかったことにして下さい。
0243デフォルトの名無しさん2010/11/16(火) 20:02:30
>>240
元は面白いの?
0244デフォルトの名無しさん2010/11/16(火) 20:10:45
>>243
同じぐらいつまらん
昨日あたりに、関係ないスレにコピペされまくってたが
0245デフォルトの名無しさん2010/11/16(火) 20:23:13
クリップボードは一つだからな
0246デフォルトの名無しさん2010/11/16(火) 21:15:08
グローバルクリップボード
0247デフォルトの名無しさん2010/11/16(火) 22:34:18
質問です。
既存のDIBからDDBを生成する方法ないでしょうか。
(DDBを生成した後もDIBとして使用可能なもの)

DIBSectionは既存のDIBを使用できないし、CreateDIBitmapは
DDBを生成した後は元のDIBとは別メモリが割り当てられてしまいます。
0248デフォルトの名無しさん2010/11/16(火) 22:44:01
>DIBSectionは既存のDIBを使用できない
0249デフォルトの名無しさん2010/11/16(火) 22:45:32
DIBSection一択だろ
0250デフォルトの名無しさん2010/11/16(火) 22:47:49
>>248
たぶん1度DIB作ってから再度作るのが面倒くさいから
誰か僕ちゃんにおあつらえ向きの関数知りませんか〜ってことだと思うで
02512472010/11/16(火) 23:40:44
unsigned intの配列を任意のタイミングでDIBにしてGDIで操作したいんです。
かつ、速度が必要なαブレンド等のピクセル操作はメモリアクセスで済ませたい。
この為、unsigned intの配列とDIBがシームレスに直結してる必要があります。
さらに、GDI操作が必要なくなったらHBITMAPは解放したいです。
(この際unsigned intの配列は解放されてはいけない)
そしてまた必要なときにDIBを生成というサイクルを想定しています。
02522472010/11/16(火) 23:44:21
すみません誤記です
x DIB
o DDB
0253デフォルトの名無しさん2010/11/16(火) 23:48:03
unsigned intの配列の代わりに、
DIBセクションで確保されたメモリを使えば解決だな。
この状態で直接メモリアクセスできるから、
わざわざ解放する理由も無くなるし。
0254デフォルトの名無しさん2010/11/16(火) 23:49:57
たしかCreateDIBSectionはファイルマッピングハンドルを指定できなかったか?
使ったことないが
02552472010/11/16(火) 23:54:20
>>253
Win95で動かす場合、リソースに64k個制限があるため不要なDIBセクションの
生成は控えたいのです。
(ゲーム用途に使用する場合細かい画像を大量に取り扱う事があってリソースを圧迫してしまいます)
そのため、通常は配列で画像処理を行い、必要なときのみアダプタ的なイメージで
配列にかぶせGDIで描画を行いたいという背景があり、最初からDIBセクションを使用する事ができません。
それでこの質問をするに至りました。
02562472010/11/16(火) 23:58:54
>>254
ありがとうございます。調べてみます。
0257デフォルトの名無しさん2010/11/17(水) 00:28:56
Windows95になんか対応するな。むしろ排除しろ。
0258デフォルトの名無しさん2010/11/17(水) 00:35:59
今のPCの性能でWin9xの動作環境を用意できるという前提なら、
最終的に画面に出力する処理以外は、一切GDIは不要だな。
よって、リソースの個数制限に悩まされる事は全く無いな。
PentiumIII/Athlon以前の環境なら、多少検討する価値があるかもしれないが。
0259デフォルトの名無しさん2010/11/17(水) 00:43:22
いいからAPI出せや
0260デフォルトの名無しさん2010/11/17(水) 00:56:58
つ EnumDateFormatsExEx
0261デフォルトの名無しさん2010/11/17(水) 01:04:54
何かをトレードオフしないと厳しそうだな。
メモリが足りなかったら処理速度でまかなうとか。
処理速度上げるために別に計算してテーブルにするとか。

描画時だけ妥協してCreateDIBitmapあたりでHBITMAPにしてそれ以外は配列で何とかすればいいと思うけど。
あと、処理速度が遅いときの基本の描画はダーティレクトだと思う。異論は認める。

あ、思い出した。SetDIBitsToDeviceっていう描画関数もあるよ。
0262デフォルトの名無しさん2010/11/17(水) 01:42:24
SetPixel
0263デフォルトの名無しさん2010/11/17(水) 02:28:14
DirectDrawを使えば良い。
0264デフォルトの名無しさん2010/11/17(水) 02:33:13
SetPixel==Sex
02652612010/11/17(水) 10:08:13
暇だからサンプル書いてみた。win7+vc10
ttp://www1.axfc.net/uploader/File/so/54256.zip

DIBの8bitデータなのは別に何かの制約ではなく、データ作るの楽だから。
できれば、こんな感じのデータはクラスにして使ったほうが色々便利でいいと思う。
基本的に生データをさらしておくのはお勧めしない。

あと、これvc10のプロジェクト作成ウィザードで吐いたやつのWndProcだけ変更したやつだから要点はWindProcに集約されてるよ。
描画関数はMSDNで伸ばすほう伸ばさないほうの両方の互換性がWin95になってたから大丈夫だと思うんだけど・・・。
0266デフォルトの名無しさん2010/11/17(水) 10:44:22
「〜てみた」
0267デフォルトの名無しさん2010/11/17(水) 10:50:37
民主党
0268デフォルトの名無しさん2010/11/17(水) 11:04:57
奴らは言うだけで実行しないから
0269デフォルトの名無しさん2010/11/17(水) 11:09:50
メッセンジャーでメール受信したときに右下に出てくるウィンドウみたいなのを出す
サンプルコードみたいなのないでしょうか?
0270デフォルトの名無しさん2010/11/17(水) 11:22:11
ggr
ttp://d.hatena.ne.jp/kiwamaru/20090121/1232524352

最近はばるーんちっぷすっていうみたいだな。
0271デフォルトの名無しさん2010/11/17(水) 11:56:04
ありがとうございます
0272デフォルトの名無しさん2010/11/17(水) 12:22:53
↓サドルマン
0273デフォルトの名無しさん2010/11/17(水) 13:21:15
>>265
ハゲですねわかります
02742612010/11/17(水) 16:34:37
>>273
正解。
って俺はハゲじゃねー。まー、うまく動いてるなら問題ないんだがね。
0275デフォルトの名無しさん2010/11/17(水) 16:53:13
>>265
mingw32 3.4.4 (結構古い) の g++/ld でコンパイル/リンクしたのですが no problem でした
02762612010/11/17(水) 16:58:26
>>275
おー。そりゃ俺としても面白い結果だわ。

ま、がんばってくれ。道はまだ半ばだ、いざ行かん。ノシ
0277デフォルトの名無しさん2010/11/17(水) 17:08:16
>>268
んなことない
日本の未来を潰すものはてきぱきとに実行してる。
0278デフォルトの名無しさん2010/11/17(水) 19:49:47
>>277
それを日本国民が望んでいたから、選挙で民主が大勝した
0279デフォルトの名無しさん2010/11/17(水) 19:50:29
みんなの党に入れた俺に隙は無かった。
0280デフォルトの名無しさん2010/11/17(水) 19:57:35
俺も民主党に入れる勇気は無かった
0281デフォルトの名無しさん2010/11/17(水) 19:58:34
>>275
おいドンもmingw使っているでゲソ
g++/ld でコンパイル/リンクするmakefileくれな烏賊?
0282デフォルトの名無しさん2010/11/17(水) 19:58:49
誰かご存知でしたら教えてください

コマンドボタンが実装されたApp1.exeがあります
App1.exeのボタンがクリックされたら、そのイベントをフックするApp2.exeを
制作したいと思っています
VC++でSendMessageやFindWindowを使ってクリックのイベントをフックするアプリは作ったことはありますが
コマンドボタンをクリックするイベントのフックの仕方がわかりません
参考になるサイトのURLやAPIなど、教えていただきたく思います

よろしくお願いします
0283デフォルトの名無しさん2010/11/17(水) 20:08:47
>>282 です

補足です
App1.exeは他社で制作されたアプリで、ソースは公開されておりません
VB6で制作されているようです

よろしくお願いいたします
0284デフォルトの名無しさん2010/11/17(水) 20:20:19
複数のペンを使って描画する場合
1.下記で大丈夫でしょうか?
BeginPaint→
CreatePen→SelectObject→使用→DeleteObject(SelectObjectで他のPenに変えてない)→
CreatePen→SelectObject→使用→DeleteObject(SelectObjectで他のPenに変えてない)→
 : :
EndPaint
0285デフォルトの名無しさん2010/11/17(水) 20:28:36
>>281
makefile じゃないけど mingw32 用に整理してみた
ttp://www1.axfc.net/uploader/Sc/so/174391.zip
パスは 281
0286デフォルトの名無しさん2010/11/17(水) 20:45:16
>>285
熱烈感謝
0287デフォルトの名無しさん2010/11/17(水) 20:47:01
>>284
MSDN嫁
http://msdn.microsoft.com/en-us/library/dd183539%28VS.85%29.aspx
> Do not delete a drawing object (pen or brush) while it is still selected into a DC.
0288デフォルトの名無しさん2010/11/17(水) 21:30:22
>>285-286
Makefile作ってみた
(左端のスペースはタブです)


TARGET=SetDIBitsToDevice.exe
CC=g++
RC=windres
OPT=-mwindows

SRC=$(shell ls *.cpp)
OBJ=$(SRC:.cpp=.o)
WRC=$(shell ls *.rc)
RES=$(WRC:.rc=.cr)

.SUFFIXES: .cpp .o .rc .cr

all: $(TARGET)

clean:
  rm -f $(OBJ) $(RES)

$(TARGET): $(OBJ) $(RES)
  $(CC) $(OPT) -o $@ $(OBJ) $(RES)

.cpp.o:
  $(CC) -c $<

.rc.cr:
  $(RC) -i $< -o $(RES)
0289デフォルトの名無しさん2010/11/17(水) 21:40:23
>>282
ttp://ruffnex.oc.to/kenji/text/api_hook/
ここ見れば出来るような気がする
0290デフォルトの名無しさん2010/11/17(水) 21:54:08
>>282
FindWindowで親ウインドウを探したら、
FindWindowExを使ってコマンドボタンの子ウインドウを探して見るとか。
0291デフォルトの名無しさん2010/11/17(水) 21:59:44
>>288
ヘッダファイルだけが更新されたときに
それだとちゃんと動かないね
0292デフォルトの名無しさん2010/11/17(水) 22:43:56
「〜てみた」系は無視しろよ
0293デフォルトの名無しさん2010/11/17(水) 22:46:27
へ?
なんで?
助かってるのに
0294デフォルトの名無しさん2010/11/17(水) 22:48:53
>>285
vc10にバックポートしてみた。
一個だけWinMainがおかしいとか怒られるんだけど、WinMainをTCHAR対応にすれば動いた。
具体的には_tWinMain(・・・)ってするだけなんだけどね。_tがキモイけど大事だ。
0295デフォルトの名無しさん2010/11/17(水) 23:09:21
>>293
死ねカス
0296デフォルトの名無しさん2010/11/17(水) 23:27:31
>>294
>>286だけど、
mingwでは_tWinMainだとダメポになる。
あと、mingwだと.rcなんかに日本語あると化けてダメポになんだよね
rcの日本語をちゃんとやろうとすると、VCのrcで前処理して、windresに
渡してやるとかしないといけないんだよな。
mingwで有料のVCのrc使うっておいおいだからね

>>288 どうも!
0297デフォルトの名無しさん2010/11/17(水) 23:31:53
>>296
紛らわしいこと書いてすまないね。
用はVC10EEで動かしたかったらって話だから。
言葉が抜けてた。すまない。
0298デフォルトの名無しさん2010/11/17(水) 23:42:01
どーまんせーまん。
0299デフォルトの名無しさん2010/11/18(木) 00:11:31
>>295
消えろ
0300デフォルトの名無しさん2010/11/18(木) 00:22:12
>>299
消えろ
0301デフォルトの名無しさん2010/11/18(木) 00:23:13
>>300
0302デフォルトの名無しさん2010/11/18(木) 00:23:44
>>301
0303デフォルトの名無しさん2010/11/18(木) 00:24:12
>>302
0304デフォルトの名無しさん2010/11/18(木) 00:24:24
>>303
0305デフォルトの名無しさん2010/11/18(木) 00:25:21
>>304
0306デフォルトの名無しさん2010/11/18(木) 00:26:08
>>305
0307デフォルトの名無しさん2010/11/18(木) 00:26:30
>>306
0308デフォルトの名無しさん2010/11/18(木) 00:27:10
>>307
0309デフォルトの名無しさん2010/11/18(木) 00:28:05
>>308
0310デフォルトの名無しさん2010/11/18(木) 00:29:39
これはひどい
0311デフォルトの名無しさん2010/11/18(木) 00:31:37
>>310
0312デフォルトの名無しさん2010/11/18(木) 00:32:20
>>310
0313デフォルトの名無しさん2010/11/18(木) 00:32:58
>>309
0314デフォルトの名無しさん2010/11/18(木) 00:33:17
>>310
0315デフォルトの名無しさん2010/11/18(木) 00:33:54
>>310
0316デフォルトの名無しさん2010/11/18(木) 00:34:04
>>310
0317デフォルトの名無しさん2010/11/18(木) 00:34:33
>>310
0318デフォルトの名無しさん2010/11/18(木) 00:35:16
>>301
0319デフォルトの名無しさん2010/11/18(木) 00:36:10
>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310
0320デフォルトの名無しさん2010/11/18(木) 00:36:48
通報してもいいですか^^;
0321デフォルトの名無しさん2010/11/18(木) 00:36:53
>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310>>310
0322デフォルトの名無しさん2010/11/18(木) 00:37:22
>>320
0323デフォルトの名無しさん2010/11/18(木) 00:38:25
>>320
0324デフォルトの名無しさん2010/11/18(木) 00:38:55
エッチなまうまう?
0325デフォルトの名無しさん2010/11/18(木) 00:40:33
エッチしてるなう
0326デフォルトの名無しさん2010/11/18(木) 00:41:55
>>100
0327デフォルトの名無しさん2010/11/18(木) 00:43:47
ペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロペロ
0328デフォルトの名無しさん2010/11/18(木) 00:45:28
尿意
0329デフォルトの名無しさん2010/11/18(木) 00:47:28
僕はイテレータちゃん!
0330デフォルトの名無しさん2010/11/18(木) 03:23:32
まだ書けるかな
巻き添えはごめんだ
0331デフォルトの名無しさん2010/11/18(木) 03:33:26
>>330
バーカw
0332デフォルトの名無しさん2010/11/18(木) 03:35:04
隔離スレ最高
0333デフォルトの名無しさん2010/11/18(木) 03:35:33
>>330
これは恥ずかしい
0334デフォルトの名無しさん2010/11/18(木) 03:37:10
隔離スレとか言い出すのって大抵悔しくて顔真っ赤な奴だよねw
0335デフォルトの名無しさん2010/11/18(木) 03:41:03
あずにゃんペロペロ
0336デフォルトの名無しさん2010/11/18(木) 03:42:05
あずにゃんは俺の嫁
0337デフォルトの名無しさん2010/11/18(木) 03:57:52
なんですと
0338デフォルトの名無しさん2010/11/18(木) 04:06:27
あずにゃんスレ
0339デフォルトの名無しさん2010/11/18(木) 04:17:51
WM_PAINT以外の場所でGetDC,ReleaseDCして描画した時、表示内容が欠けた際の補完処理(invalidaterectで再描画をシステムにお願いするような)したいのだけど無理?
こういう描画処理ってWM_PAINT内でifやらなんやらつかって処理すべきもの?具体的にはWM_LBUTTONDOWNでsin波表示させるようにしたい。
0340デフォルトの名無しさん2010/11/18(木) 06:59:37
sin波を描画した直後にその領域が無効化、
WM_PAINTで再描画されたらsin波が消えた、
ってパターンが嫌ならWM_PAINTに実装すべきだろうな。
更新頻度が高いとか重要度が低いとかなら、描きっ放しもありだと思うけど。
0341デフォルトの名無しさん2010/11/18(木) 09:16:19
ダブルバッファリング常考
0342デフォルトの名無しさん2010/11/18(木) 09:22:10
定期あげ
0343デフォルトの名無しさん2010/11/18(木) 10:05:42
もうだめだこのスレ
0344デフォルトの名無しさん2010/11/18(木) 12:40:06
元からカスだったじゃん
0345デフォルトの名無しさん2010/11/18(木) 13:05:36
>>343
もうだめねこのスレ
0346デフォルトの名無しさん2010/11/18(木) 13:10:50
ぬこのスレ
0347デフォルトの名無しさん2010/11/18(木) 13:19:08
ミクロナーゼ
0348デフォルトの名無しさん2010/11/18(木) 13:26:12
わんわんお?
0349デフォルトの名無しさん2010/11/18(木) 14:46:10
あずにゃん
0350デフォルトの名無しさん2010/11/18(木) 15:24:01
ペロペロ
0351デフォルトの名無しさん2010/11/18(木) 17:57:01
侵略ぅ〜
0352デフォルトの名無しさん2010/11/18(木) 18:24:06
教えてくださいませ。
TreeView_CreateDragImageの戻り値がNULLになってしまうのは
原因としてどのようなことが考えられるでしょうか。
私の環境にドラッグ用のビットマップが用意されてないということでしょうか。
0353デフォルトの名無しさん2010/11/18(木) 20:33:32
これは恥ずかしい
0354デフォルトの名無しさん2010/11/18(木) 20:34:39
(ノ∀`)アチャー
0355デフォルトの名無しさん2010/11/18(木) 20:50:18
定期あげ
0356デフォルトの名無しさん2010/11/18(木) 21:05:13
>>289 >>290

>>282-283 です。

解答ありがとうございました。

どうがんばってもボタン押下イベントをフックできないので
「マウスのクリックが発生したとき、ボタンにフォーカスがあったなら」
で対応するようにしました。

�@ SetWindowsHookExで全マウスイベントを監視
�A WM_LBUTTONUPであるなら、そのウィンドウハンドルでSendMessageを使って
 ウィンドウ(イベントの発生を知りたいボタン)のテキストを取得する
�B 取得したテキスト名が監視したいボタンのテキストと同じなら処理実行

今日一日考えて、やっと実装できました。

まだまだ実装しないといけない機能は山ほどありますが・・・。
0357デフォルトの名無しさん2010/11/18(木) 21:09:35
>>340,341
なるほど〜。ありがとうございました。
0358デフォルトの名無しさん2010/11/18(木) 22:07:33
あなたの好きなWin32APIを1つ言いなさい
0359デフォルトの名無しさん2010/11/18(木) 22:57:02
bitblt
0360デフォルトの名無しさん2010/11/18(木) 23:07:41
Beep
0361デフォルトの名無しさん2010/11/18(木) 23:09:11
CopyRect
0362デフォルトの名無しさん2010/11/18(木) 23:26:55
DestroyCursor
0363デフォルトの名無しさん2010/11/18(木) 23:32:07
Explorer
0364デフォルトの名無しさん2010/11/18(木) 23:52:53
BitBlt
0365デフォルトの名無しさん2010/11/19(金) 00:21:27
a.exe a.batなどのファイルアイコンをクリックしたら
プロンプトの黒いウインドウを一瞬出さずに
キーボードのCtrl+S を押したのにと全く同じ効果があるプログラムって
C,C++,C# で出来ますかね?
入力のところまでは作れた記憶があるんですが
黒いウインドウが消せたかどうか覚えてなくて
0366デフォルトの名無しさん2010/11/19(金) 00:55:20
Windows(Server系)全般の質問かも知れませんが、Windowsのログインというのは1ユーザしかできないのでしょうか?
ターミナルサービスを使用したログインと実際にログインしているユーザは、また別物と考えてよいのでしょうか?

GetUserNameの関数で取得できるユーザが実際にログインしているユーザと認識しています。

0367デフォルトの名無しさん2010/11/19(金) 00:58:18
書いて思い出したんで質問を変えさせてくださいすけど昔作ったのは
アクティブなウインドウにキー入力を送るというやつで、

アクティブまたは大元のウインドウにキーを送るということで
実物のキーを押すのと等価といえるのでしょうか?

タスクバーからプロブラムを起動したら
***キーと***キー押下と同じ効果が起きて、 ショートカットキーであれば
同じように反応する、ということをやりたいんですが

プロンプトの抑制は自分でやってみます
0368デフォルトの名無しさん2010/11/19(金) 01:01:06
ちがいます。
0369デフォルトの名無しさん2010/11/19(金) 01:03:30
>>368
>>367
へのレスですか?
ありがとうございます。
火急のものでもないので64bitOSのに買い換えるまで放置します。
0370デフォルトの名無しさん2010/11/19(金) 02:36:12
>>366
エディションによるけど同時に複数の端末からログインしてホストを操作できるよ。
0371デフォルトの名無しさん2010/11/19(金) 04:51:10
Windowsで、URLスキームとアプリケーションを結びつけるにはどうするのでしょうか。
たとえばHTMLページに href="mailto:[email protected]" というリンクがあれば、このリンクをクリックするとメーラが起動します。
あるいは href="aim:goim?screenname=foobar" だったらAOLインスタントメッセンジャーが起動するでしょう。
このように、リンクのURLスキームとアプリケーションを結びつけたいのですが、
とっかかりになる情報だけでも教えていただけないでしょうか。
よろしくお願いします。
0372デフォルトの名無しさん2010/11/19(金) 05:26:16
フォルダオプション->ファイルの種類->URL:MailTo Protcol
ちがってたらスマソ
0373デフォルトの名無しさん2010/11/19(金) 07:48:17
Web Development
- Internet Explorer Development
- Content Extensions
- Pluggable Protocols
新しいスキームだとここら辺か?
ブラウザと直結するからあまりお勧めしないが。
0374デフォルトの名無しさん2010/11/19(金) 08:54:53
>>371
こんなところで質問しないと開発を進められないキミの技術レベルだと、
ブラウザにセキュリティ上の大穴あける確率がとても高い。

簡単にいえば、素人は手を出すな。キミには1000年早い。
0375デフォルトの名無しさん2010/11/19(金) 11:43:06
定期あげ
0376デフォルトの名無しさん2010/11/19(金) 13:36:54
>>372-373
ありがとうございます!「Pluggable Protocols」でぐぐったらいろいろ出てきたので
あとは自分で調べてみようと思います。
ちなみにMacでは同じ機能を「カスタムURLスキーム」と呼んでいます。
0377デフォルトの名無しさん2010/11/19(金) 19:35:03
誰がブラウザの話なんてしてるんだろ・・・
0378デフォルトの名無しさん2010/11/19(金) 19:48:25
オレオレ!
0379デフォルトの名無しさん2010/11/19(金) 20:28:55
HTMLのアンカー踏むだけで呼び出せるのだから、
ブラウザの話が出てこない方が不思議だろ。
0380デフォルトの名無しさん2010/11/19(金) 23:11:33
定期あげ
0381デフォルトの名無しさん2010/11/20(土) 01:21:36
>>386
Microsoft Quick C
0382デフォルトの名無しさん2010/11/20(土) 03:16:25
>>386
まあやっといて損はない。
0383デフォルトの名無しさん2010/11/20(土) 12:26:52
>>386超期待
0384デフォルトの名無しさん2010/11/20(土) 12:28:20
>>386
何が起こるんだ?
0385デフォルトの名無しさん2010/11/20(土) 12:33:47
1/4世紀も使われ続けている命令セットだからな。
0386デフォルトの名無しさん2010/11/20(土) 13:00:02
            _,、,、,、___
*     +  ,Oニ二_.工業用__)
        i!|i   〒 !   +    。     +    。     *     。
       +  i!|i 。 |  |
   *    i!|i + / /   イヤッッホォォォオオォオウ--------イ!
       ∧!|i∧ / /
      (´∀`u/ / +    。     +    。   *     。
      ,-u    f         ()]    カチッ!
      / ュヘ u  | *     + □(E)  。     +   。 +        
     〈_} )   |     ∧_∧/ /                          
        /    !    (´∀`*) /     +    +     *         
       ./  ,ヘ  |⊂ニニ     /
 ガタン ||| j  / |  | |||  /    /
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  
0387デフォルトの名無しさん2010/11/20(土) 13:30:36
お前にはがっかりだよ・・・
0388デフォルトの名無しさん2010/11/20(土) 15:41:57
失望した
0389デフォルトの名無しさん2010/11/20(土) 16:44:49
>>386のせいで俺は自殺に追い込まれた・・・
0390デフォルトの名無しさん2010/11/20(土) 17:39:00
>>381-389の流れに感動した!
おまえらありがとう!
0391デフォルトの名無しさん2010/11/20(土) 19:53:19
定期あげ
0392デフォルトの名無しさん2010/11/20(土) 20:45:44
あぶらあげ
0393デフォルトの名無しさん2010/11/20(土) 21:00:56
あぶらさげ
0394デフォルトの名無しさん2010/11/20(土) 23:07:46
から揚げ
0395デフォルトの名無しさん2010/11/20(土) 23:32:06
からさげ
0396デフォルトの名無しさん2010/11/21(日) 02:09:40
POINT構造体とSIZE構造体ってわける必要あるんですか?
0397デフォルトの名無しさん2010/11/21(日) 02:30:33
そんなことを言ったらBOOLなんて……
0398デフォルトの名無しさん2010/11/21(日) 03:19:34
位置と大きさは違うだろ
0399デフォルトの名無しさん2010/11/21(日) 04:37:37
>>398
そう、概念はね。でも実装は(実質)同じ。
実装が同じでも概念が別なら別物として扱うべきか? という数十年来の
議論をまた蒸し返そうってんだぜ。>>396はよ。
0400デフォルトの名無しさん2010/11/21(日) 05:03:45
POINTとSIZEはともかく
RECTとRECTLの違いは何?
0401デフォルトの名無しさん2010/11/21(日) 05:10:38
POINTL, RECTL はメタファイル用。
0402デフォルトの名無しさん2010/11/21(日) 09:36:27
>>396
POINT構造体と↓こういう構造体をわける必要は無いかね?

struct baka_aho {
LONG number_of_baka;
LONG number_of_aho;
};
0403デフォルトの名無しさん2010/11/21(日) 11:55:57
WM_PAINTで描画処理を記述していると、
ウィンドウのサイズを変更するたびにウィンドウが点滅するのですが、
点滅しないようにできないのでしょうか?
他のアプリケーション見ていると点滅していないし、できるとは思うんですけど。
0404デフォルトの名無しさん2010/11/21(日) 12:21:01
double buffering
0405デフォルトの名無しさん2010/11/21(日) 12:55:05
>>403
ちらつき デバイスコンテキスト
で検索するとよい。
0406デフォルトの名無しさん2010/11/21(日) 13:02:03
>>404,>>405
ありがとうございます。
これで解決できそうです。
0407デフォルトの名無しさん2010/11/21(日) 15:32:11
定期あげ
0408デフォルトの名無しさん2010/11/21(日) 16:30:40
>>403
Flicker Free Drawing
ttp://www.catch22.net/tuts/flicker

Double-buffing and memory-DC's
The basic way double-buffering works is like this:

HDC hdcMem;
HBITMAP hbmMem;
HANDLE hOld;
PAINTSTRUCT ps;
HDC hdc;
....
case WM_PAINT:
// Get DC for window
hdc = BeginPaint(hwnd, &ps);
// Create an off-screen DC for double-buffering
hdcMem = CreateCompatibleDC(hdc);
hbmMem = CreateCompatibleBitmap(hdc, win_width, win_height);
hOld = SelectObject(hdcMem, hbmMem);
// Draw into hdcMem
// Transfer the off-screen DC to the screen
BitBlt(hdc, 0, 0, win_width, win_height, hdcMem, 0, 0, SRCCOPY);
// Free-up the off-screen DC
SelectObject(hdcMem, hOld);
DeleteObject(hbmMem);
DeleteDC (hdcMem);
EndPaint(hwnd, &ps);
return 0;
0409デフォルトの名無しさん2010/11/21(日) 16:32:13
サンプルとはいえ毎回コンパチブルビットマップ作るのかお(^ω^ ;)
0410デフォルトの名無しさん2010/11/21(日) 17:39:14
>>409
うんこうんこうんこー!
0411デフォルトの名無しさん2010/11/21(日) 17:40:03
CreateCompatibleBitmapってそんなに高負荷なの?
0412デフォルトの名無しさん2010/11/21(日) 17:47:01
>>411
毎回作るのは明ら蟹無駄だ都思わ内科医?
0413デフォルトの名無しさん2010/11/21(日) 18:14:48
じゃあビットマップを作り直すのは、色数が変更されたり、テーマを切り替わったり
デスクトップコンポジッションが変わったときだけでいいの?
0414デフォルトの名無しさん2010/11/21(日) 18:30:50
明日のお天気は
0415デフォルトの名無しさん2010/11/21(日) 18:45:26
谷
0416デフォルトの名無しさん2010/11/21(日) 18:56:12
良
0417デフォルトの名無しさん2010/11/21(日) 18:56:57
子
0418デフォルトの名無しさん2010/11/21(日) 19:20:39
「今夜は寝かせないんだから」

谷はそういって服を脱ぎ始めた。
亮子はいつもそうだった。自分勝手で、わがままで。明日、試合を控えてる俺の事情などそっちのけで
子作りしたいなどと。まったくこまった奴だ。
でも、今日は許してあげようかと思う。最近ご無沙汰だった為、亮子はご機嫌斜めだったしな。
いやと言ってもやめてくれなさそうだし、諦めて夜のお勤め、させていただくとするか。 俺は服を脱ぎ始めた。

真っ赤にほてった亮子の素肌は、柔道家とは思えないきれいな肌だった。
カラダには無駄な肉は付いてないし、引き締まっててナイスボディだ。
裸体の谷も、柔道家の谷も、妻としての谷も、どれも俺は好きなのは知っていた。しかし、やはり郡を
ぬいて今の亮子は素敵だ。  なんつーのはいつも言ってる言葉か。  少し笑う。

いきり立つ俺の息子は、亮子の裸体に反応していた。それをみかねた亮子は、そっと
手でさすり始めた。  いや、しごきはじめた。が適切だろうか。 手コキだ。
くちゅくちゅと、唇で息子の先端をいやらしく吸っている亮子は、どこか激しかった。
ルビーのように赤くなった俺の息子は、激しい攻めに負け、一本とられてしまったようだ。  僕は射精した
0419デフォルトの名無しさん2010/11/21(日) 20:27:35
>>412
俺もそう思って極力作り直さないようにしてみたことがあったけど、
毎回作り直した場合と有意な差は出なかった。
0420デフォルトの名無しさん2010/11/21(日) 20:47:54
DeleteObjectで直ぐに解放されなかった場合はGDIハンドル数が大増殖するな
0421デフォルトの名無しさん2010/11/21(日) 21:18:46
SelectObjectしっぱなしなんだろ
0422デフォルトの名無しさん2010/11/21(日) 21:20:30
定期あげ
0423デフォルトの名無しさん2010/11/21(日) 21:23:16
>>418
新谷良子を知らないんだね
0424デフォルトの名無しさん2010/11/21(日) 21:28:38
コピペにマジレスとか
0425デフォルトの名無しさん2010/11/21(日) 21:35:28
マジレスに見えるとか
0426デフォルトの名無しさん2010/11/21(日) 21:38:54
突っ込んでもらってなんだけど、俺はコピペの選択についてマジレスしたのでした
0427デフォルトの名無しさん2010/11/21(日) 21:48:02
谷亮子APIを開発
0428デフォルトの名無しさん2010/11/21(日) 21:52:31
エ、エロひ………
0429デフォルトの名無しさん2010/11/21(日) 23:49:47
RECT構造体にしていできる最大の座標はいくつなんでしょうか?
また、その値はwindows.hに定義されているのでしょうか。
0430デフォルトの名無しさん2010/11/21(日) 23:51:55
3万いくらだったかな
0431デフォルトの名無しさん2010/11/21(日) 23:53:25
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
0432デフォルトの名無しさん2010/11/21(日) 23:54:10
CopyRect
0433デフォルトの名無しさん2010/11/22(月) 00:03:46
>>432
お前は一体何に使えばいいの?
0434デフォルトの名無しさん2010/11/22(月) 00:11:41
これ作った人は、構造体の代入がCでできることを知らなかったのかね・・・
0435デフォルトの名無しさん2010/11/22(月) 00:13:14
Cは最初できなくて途中で仕様変更はいったんだっけ?
0436デフォルトの名無しさん2010/11/22(月) 00:14:47
規格では出来る ≠ 全ての実装で出来る
MS-C とかな
0437デフォルトの名無しさん2010/11/22(月) 00:18:20
memcpyじゃだめだったんだろうか
0438デフォルトの名無しさん2010/11/22(月) 00:18:52
VBのことも考えてやれよ
0439デフォルトの名無しさん2010/11/22(月) 00:33:00
別の言語の為にわざわざSetRectとか用意してるんだね…って勝手に解釈してたんだが。
0440デフォルトの名無しさん2010/11/22(月) 00:49:47
VBのためか・・・それは納得せざるを得ない
0441デフォルトの名無しさん2010/11/22(月) 01:01:49
VBリリース以前からあるんだが。
0442デフォルトの名無しさん2010/11/22(月) 01:39:53
Don't think,FEEL!
0443デフォルトの名無しさん2010/11/22(月) 02:16:53
OffsetRectもひどいなw
0444デフォルトの名無しさん2010/11/22(月) 04:28:23
当時はオブジェクト指向が流行ってたんだよ
0445デフォルトの名無しさん2010/11/22(月) 16:57:06
定期あげ
0446デフォルトの名無しさん2010/11/22(月) 17:09:04
RECTの内部構造に依存したプログラムは駄目なんじゃないか?
初期化にはSetRect
コピーにはCopyRect
比較にはEqualRect等
解放前にはSetRectEmpty
この基本を守らないと将来のWindowsでメモリリークなどの可能性が
0447デフォルトの名無しさん2010/11/22(月) 18:18:11
タスクマネージャから行う「関係の設定」を自プロセスから自分に対して制御する方法は無いでしょうか?
スレッドアフィニティーだと、自前の処理で発生したスレッドの管理はできますが、ライブラリが
生成したスレッドまではカバーできません。

よろしくお願いします。
0448デフォルトの名無しさん2010/11/22(月) 18:28:23
>>447
ttp://msdn.microsoft.com/ja-jp/library/Cc429334
0449デフォルトの名無しさん2010/11/22(月) 18:28:56
自己レス
SetProcessAffinityMask
がありました。試してみます
0450デフォルトの名無しさん2010/11/22(月) 18:36:32
>>448-449
これは酷い
04514472010/11/22(月) 18:42:06
>>448
どうもすみません。レスに気がつかなくて。
ありがとうございます
0452CopyRect2010/11/22(月) 19:45:57
呼んだ?
0453デフォルトの名無しさん2010/11/22(月) 19:54:48
┃|  三
┃|     三
┃|  三
┃|    三
┃|  三
┃|
┃| ピシャッ!
┃|  ∧∧
┃|  (;  ) 三
┃|⊂    \
0454デフォルトの名無しさん2010/11/22(月) 22:31:33
お尋ねしたいのですが、人に謝罪するにはどうしたらよいのでしょうか?
その方法を、母も、姉も、父も、先生も、みな教えてはくれませんでした。
どうしたらいいかわからず困惑しております、助けてください!!
スレ違いかも知れませんが、当方極めて切羽詰っております、平にご容赦を・・・
0455デフォルトの名無しさん2010/11/22(月) 22:33:49
まずCopyRectに謝れ
0456デフォルトの名無しさん2010/11/22(月) 22:36:15
>>450
30秒でその指摘はひどい
0457デフォルトの名無しさん2010/11/22(月) 23:31:59
>>454
マジレスすると、君の思いをどうやって伝えるかという一点になる。
その表現方法は色々あるけど、それは場合で選択するべきであり、
何を持って謝罪とするかは両者の合意に近いものだ。
だから考えろ。そして元のバランスの取れた状態に戻す方法を思案するんだ。
0458デフォルトの名無しさん2010/11/22(月) 23:34:34
>>446
まぁ用意されてる関数でやるのが妥当なんだろうけど、
どうせCopyRectExExとかが登場するのさ
0459デフォルトの名無しさん2010/11/22(月) 23:37:21
SuperCopyRectorExtream
0460デフォルトの名無しさん2010/11/22(月) 23:40:00
CopyRectExExEx_Extended
0461デフォルトの名無しさん2010/11/23(火) 00:10:26
プログラマってのはいいですね。2つ覚えておきゃいいんですから。
0462デフォルトの名無しさん2010/11/23(火) 01:06:11
>>461
まて、元ネタはとんでもなく低レベルだが
それはとんでもなく高次元で人間やめてるぞ
0463デフォルトの名無しさん2010/11/23(火) 01:18:25
gotoとexitですね
0464デフォルトの名無しさん2010/11/23(火) 01:19:08
10:GOTO 10
0465デフォルトの名無しさん2010/11/23(火) 01:41:08
確かに Windows Internals と Windows via C/C++ の2つだけ覚えとけば大丈夫だよな。
0466デフォルトの名無しさん2010/11/23(火) 01:44:10
全てはIO。入力と出力である。
0467デフォルトの名無しさん2010/11/23(火) 02:28:12
くそひりむし
0468デフォルトの名無しさん2010/11/23(火) 05:36:50
>>459はExtremeの綴りを素で間違えたあげ
0469デフォルトの名無しさん2010/11/23(火) 09:07:38
ほんとだ
0470デフォルトの名無しさん2010/11/23(火) 09:21:36
スペルミスなんざ押し通したもの勝ちなんだよ。
HTTPのRefererとか。(正しくはReferrer)
0471デフォルトの名無しさん2010/11/23(火) 10:03:10
constractor は意外と多くて困る
0472デフォルトの名無しさん2010/11/23(火) 12:09:31
>>470
まじかよ…
ずっとrefererって英単語だと思ってた
0473デフォルトの名無しさん2010/11/23(火) 12:14:49
一瞬名前スレかと思った
0474デフォルトの名無しさん2010/11/23(火) 13:00:41
creat(笑)
0475デフォルトの名無しさん2010/11/23(火) 15:52:45
>>471
違うの?
0476デフォルトの名無しさん2010/11/23(火) 16:37:34
>>472
RFCにもReferer[sic]って書いてあるだろ。

>>475
constructorって普通指が覚えてないか?
0477デフォルトの名無しさん2010/11/23(火) 16:49:39
>>476
abstruct も時々みかける
0478デフォルトの名無しさん2010/11/23(火) 17:51:02
RFCに書いてあるのなら仕方ないな
0479デフォルトの名無しさん2010/11/23(火) 18:07:58
RFCなら仕方がない
0480デフォルトの名無しさん2010/11/23(火) 19:11:31
RFCなら
0481デフォルトの名無しさん2010/11/23(火) 19:25:19
RFCを鵜呑みしているようではまだまだじゃな
0482デフォルトの名無しさん2010/11/23(火) 19:49:55
ならばおぬしのRFCを見せてもらおう
0483デフォルトの名無しさん2010/11/23(火) 19:57:33
これが俺の取っておきよォ!
0484デフォルトの名無しさん2010/11/24(水) 00:12:52
RFCってそんなにすごいのか?
0485デフォルトの名無しさん2010/11/24(水) 00:47:15
11種類の秘伝のスパイスが効いててな
0486デフォルトの名無しさん2010/11/24(水) 00:54:21
辛口でおねがい
0487デフォルトの名無しさん2010/11/24(水) 02:10:02
>>446
C辺りで問題が出そうなのは比較のみ。
0488デフォルトの名無しさん2010/11/24(水) 09:26:41
それはない
0489デフォルトの名無しさん2010/11/24(水) 15:40:40
>>487,488
kwsk
0490デフォルトの名無しさん2010/11/24(水) 15:42:37
RECTを拡張する必要性なんか出てくるのか?
0491デフォルトの名無しさん2010/11/24(水) 16:25:49
z座標が追加される程度なら問題ないが
可変次元になったら死ぬかも
0492デフォルトの名無しさん2010/11/24(水) 16:53:26
ここまで古い仕様だとRECTを拡張するより新しく定義したほうが互換性の面でも問題でないんでないかい?
ヒープに確保するような面倒なこともそうそうしないし。
0493デフォルトの名無しさん2010/11/24(水) 16:55:26
RECTEX
0494デフォルトの名無しさん2010/11/24(水) 17:31:08
定期あげ
0495デフォルトの名無しさん2010/11/24(水) 17:32:12
そしてsage
0496デフォルトの名無しさん2010/11/24(水) 17:39:29
http://www.yomiuri.co.jp/net/news/20101124-OYT8T00339.htm
0497デフォルトの名無しさん2010/11/24(水) 17:42:06
エッチなまうまう?
0498デフォルトの名無しさん2010/11/24(水) 18:37:14
エッチしてるなう
0499デフォルトの名無しさん2010/11/24(水) 18:45:38
わんわんお?
0500デフォルトの名無しさん2010/11/24(水) 18:53:19
>>501
0501デフォルトの名無しさん2010/11/24(水) 19:45:42
ラングーン事件
http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%82%B0%E3%83%BC%E3%83%B3%E4%BA%8B%E4%BB%B6
その後の変遷
日本の朝鮮学校では、本件ラングーン事件および大韓航空機爆破事件について、
「北朝鮮による犯行ではない」とする教育が2010年現在も行われている。
0502デフォルトの名無しさん2010/11/24(水) 20:23:34
if(>>501){
goto >>500;
}
0503デフォルトの名無しさん2010/11/24(水) 23:12:26
500>>501=501>>500=0
0504デフォルトの名無しさん2010/11/24(水) 23:32:26
echo 501 >>500
0505デフォルトの名無しさん2010/11/25(木) 01:19:51
while( true );
0506デフォルトの名無しさん2010/11/25(木) 03:47:23
TerminateThread(KusoThreadHandle, -1 );
0507デフォルトの名無しさん2010/11/25(木) 04:23:53
DWORD WINAPI procThread(LPVOID p)
{
DWORD dummy;
CreateThread(NULL, 0, procThread, NULL, 0, &dummy);
CreateThread(NULL, 0, procThread, NULL, 0, &dummy);
ExitThread(0);
return 0;
}

int main(int argc, char *argv[])
{
procThread(NULL);
}
0508デフォルトの名無しさん2010/11/25(木) 09:13:55
kill >>507
0509デフォルトの名無しさん2010/11/25(木) 09:18:37
#include <WindowsExEx.h>
0510デフォルトの名無しさん2010/11/25(木) 12:48:02
WindowsExtream
0511デフォルトの名無しさん2010/11/25(木) 16:20:13
window sex
0512デフォルトの名無しさん2010/11/25(木) 16:40:34
sexなんて数千年前からあるような過去の遺物
早急に廃止するべき
0513デフォルトの名無しさん2010/11/25(木) 16:55:49
Windows Sex Development Kit
0514デフォルトの名無しさん2010/11/25(木) 19:16:00
WNDCLASSEX
0515デフォルトの名無しさん2010/11/25(木) 19:41:11
>>514
打つとき毎回邪な事を考えてしまう
0516デフォルトの名無しさん2010/11/25(木) 20:10:46
この字面でネイティブの人たちは変なこと考えないのかな
0517デフォルトの名無しさん2010/11/25(木) 20:16:27
この程度で変な事考えてたら身が持たない
0518デフォルトの名無しさん2010/11/25(木) 20:20:49
うんど暮ラセックス
0519デフォルトの名無しさん2010/11/25(木) 20:23:49
>>517
刺身
0520デフォルトの名無しさん2010/11/25(木) 20:27:53
man command
0521デフォルトの名無しさん2010/11/25(木) 21:38:00
HBITMAP
0522デフォルトの名無しさん2010/11/25(木) 22:13:16
HITBIT
0523デフォルトの名無しさん2010/11/25(木) 22:17:08
H.HIP
0524デフォルトの名無しさん2010/11/25(木) 22:19:44
何この流れ
0525デフォルトの名無しさん2010/11/25(木) 22:22:10
HSketchOnetouch
0526デフォルトの名無しさん2010/11/25(木) 23:08:14
INITCOMMONCONTROLSEX
0527デフォルトの名無しさん2010/11/25(木) 23:30:40
Sleep(-1);
0528デフォルトの名無しさん2010/11/26(金) 12:12:08
定期あげ
0529デフォルトの名無しさん2010/11/26(金) 20:29:11
Windows2003サーバーのターミナルサービス環境で、リモート接続したクライアントがGetUserName関数を呼んだ場合、
そのリモート接続のユーザ名が取得されるで正しいですか?
手元に環境がないので、わかりません。

0530デフォルトの名無しさん2010/11/26(金) 21:44:41
>>529
そのスレッドを実行させたユーザーの名前がかえりますヨン
0531デフォルトの名無しさん2010/11/26(金) 23:33:46
定期あげ
0532デフォルトの名無しさん2010/11/27(土) 01:38:04
定期あげ
0533デフォルトの名無しさん2010/11/27(土) 05:12:46
TerminateWorldPeace
0534デフォルトの名無しさん2010/11/27(土) 14:27:31
>>529
環境がないなら、XP/Vista/7のリモートデスクトップで試したらいいと思うよ。
0535デフォルトの名無しさん2010/11/27(土) 14:42:37
>529 は何が返ると思っているんだろうか。気になる。
接続ユーザー以外で返りそうなものって何がある?
0536デフォルトの名無しさん2010/11/27(土) 17:23:35
SYSTEM
0537デフォルトの名無しさん2010/11/27(土) 19:48:43
いいからAPI出せや
0538デフォルトの名無しさん2010/11/27(土) 19:55:45
CopyRect
0539デフォルトの名無しさん2010/11/27(土) 20:39:25
神APIだな
構造体のコピーができなくてもできる
0540デフォルトの名無しさん2010/11/27(土) 20:43:16
???
0541デフォルトの名無しさん2010/11/27(土) 20:48:29
!!!
0542デフォルトの名無しさん2010/11/27(土) 21:31:23
&&&
0543デフォルトの名無しさん2010/11/27(土) 21:31:58
へへへ
0544デフォルトの名無しさん2010/11/27(土) 22:09:34
|||
0545デフォルトの名無しさん2010/11/27(土) 22:13:17
フフフフフフ
0546デフォルトの名無しさん2010/11/27(土) 22:45:57
つ WindowFromPhysicalPoint
0547デフォルトの名無しさん2010/11/27(土) 23:24:49
僕のCopyRectも閉鎖されそうです
0548デフォルトの名無しさん2010/11/27(土) 23:46:23
下半身のCopyRectは今日も元気です
0549デフォルトの名無しさん2010/11/27(土) 23:49:51
chinko.elect();
0550デフォルトの名無しさん2010/11/28(日) 03:32:28
整数型やらの変数の中身を描くにはどうしたらいいの
wprintfとかsprintfとかいじっているけど全然分からない
こういうように考えること自体が的外れなんかな
0551デフォルトの名無しさん2010/11/28(日) 04:35:33
つhttp://www5c.biglobe.ne.jp/~ecb/c/c00.html
Cの基本的なことは4時間も集中すれば十分覚えられる。ガンバルンバ
あとポインタは飛ばしていいかもしれない。Win32使ってる間に自然に覚えられる。
0552デフォルトの名無しさん2010/11/28(日) 04:40:01
追記とりあえずsprintfとprintfで簡単なプログラムくんでみ。これ以上はスレチだから後は具具って頂戴
0553デフォルトの名無しさん2010/11/28(日) 11:19:42
定期あげ
0554デフォルトの名無しさん2010/11/28(日) 17:30:06
ポインタ理解できないやつはアセンブリ勉強すれば一発で理解できると
思われ
0555デフォルトの名無しさん2010/11/28(日) 17:33:23







0556デフォルトの名無しさん2010/11/28(日) 17:51:18
アプリケーションドメインに属する.Netオブジェクトのことですね
0557デフォルトの名無しさん2010/11/28(日) 18:05:26
BASICやったら一発でポインタ理解できた
0558デフォルトの名無しさん2010/11/28(日) 18:10:39
ポインタが分からないって言ってる人が
何を分からないっていってるのか分からない
0559デフォルトの名無しさん2010/11/28(日) 18:45:23
とりあえず”ポインタのポインタ”を使う場面が、アドレスをポインタ渡しする場合を除いて未だよくわからないw
0560デフォルトの名無しさん2010/11/28(日) 18:51:54
DirectXとかCOMで一杯出てくるよ
0561デフォルトの名無しさん2010/11/28(日) 18:52:17
ジャグ配列作りたいときとか
0562デフォルトの名無しさん2010/11/28(日) 18:52:48
main()のchar **argvとか
0563デフォルトの名無しさん2010/11/28(日) 19:12:37
ポインタを受けとった側は
あくまでポインタのコピーを受け取っただけ
つまり受け渡し側がそのポインタに対して何か操作をしたとしても
そのポインタがさすアドレスに入ってる値を知ることはできるが
アドレス自体がどうなってるかは感知することが出来ない

例えば呼び出し元がそのアドレスにあるものを開放しちゃって無効になっていたり
別のオブジェクトをさすように書き換えたりしても
受け取り側のアドレスはコピーなので渡された時点のアドレスにあるものを処理しようとしてしまう
0564デフォルトの名無しさん2010/11/28(日) 19:25:20
とりあえず * ** & *() とかいろいろやってれば解決する (現役25年)
0565デフォルトの名無しさん2010/11/28(日) 19:30:41
25年ってえと知命は過ぎてるんだろうか
0566デフォルトの名無しさん2010/11/28(日) 20:31:19
しり命ってどういうことですか?
0567デフォルトの名無しさん2010/11/28(日) 20:35:17
ふぃふてぃーいやーずおるーど
0568デフォルトの名無しさん2010/11/28(日) 20:41:50
天命を知る
天命ねえ…エラソーだね
0569デフォルトの名無しさん2010/11/28(日) 20:50:24
てめぇの天命
0570デフォルトの名無しさん2010/11/28(日) 20:51:04
てやんでぃ
0571デフォルトの名無しさん2010/11/28(日) 21:01:22
年末ジャンボ
0572デフォルトの名無しさん2010/11/28(日) 21:20:52
尾崎
0573デフォルトの名無しさん2010/11/28(日) 21:25:18
豊
0574デフォルトの名無しさん2010/11/28(日) 21:35:47
臣
0575デフォルトの名無しさん2010/11/28(日) 21:36:25
木
0576デフォルトの名無しさん2010/11/28(日) 21:37:08
下
0577デフォルトの名無しさん2010/11/28(日) 22:51:08
藤
0578デフォルトの名無しさん2010/11/28(日) 22:54:56
吉
0579デフォルトの名無しさん2010/11/28(日) 23:31:30
外
0580デフォルトの名無しさん2010/11/28(日) 23:35:30
郎…
0581デフォルトの名無しさん2010/11/29(月) 00:31:35
>>551
回答ありがとう
深夜でほとんどやけくそになっていたから質問が日本語になってないな
要約すると、恐らくLPCSTRやLPCTSTRやWってなんだよそれに整形して入れるにはどうしたらいいんだろうという話だったんだと思う

static TCHAR buf[4];
sprintf(buf,"%d",21);
TextOut(hdc,100,150,buf,lstrlen(buf));

をユニコードでやっていたからエラーだったのでググった結果マルチバイトにしたら通った
ただユニコードならどうやればいいのかまだ分からないのでどなたか教えて欲しい
同じように

static WCHAR buf[4];
wprintf(buf,"%d",21);
TextOut(hdc,100,150,buf,lstrlen(buf));

としてみたがコンパイラは通るが動かない
0582デフォルトの名無しさん2010/11/29(月) 00:38:04
>>581
TextOutW
にしたらどう?
0583デフォルトの名無しさん2010/11/29(月) 01:00:46
>>581
_T("文字列")
0584デフォルトの名無しさん2010/11/29(月) 01:03:28
自作の構造体my_tをコピーするCopyMyT() APIを実装するにはどうしたらいいですか?
0585デフォルトの名無しさん2010/11/29(月) 01:31:28
>>584
CopyMemory
ttp://msdn.microsoft.com/ja-jp/library/cc430033.aspx
0586デフォルトの名無しさん2010/11/29(月) 02:30:28
>>583
助かった、ありがとう
tchar.hと_stprintf_sという関数があったのか
やっぱやり方ばかりに囚われないでユニとかマルチワイドとか基本的なことから押さえないとアカンね
0587デフォルトの名無しさん2010/11/29(月) 03:50:37
WindowsプログラミンにおいてCRTで出来ることをWin32APIでやるのは基本的にいいことなのでしょうか?
0588デフォルトの名無しさん2010/11/29(月) 03:55:38
定期あげ
0589デフォルトの名無しさん2010/11/29(月) 05:21:13
SSEで今日の俺は4倍速
0590デフォルトの名無しさん2010/11/29(月) 05:23:02
>>587
単純なプログラムほど出力物のファイルサイズ激減
CRT意外とおっき
0591デフォルトの名無しさん2010/11/29(月) 05:39:05
>>590
そんな大きいの入らないお?
0592デフォルトの名無しさん2010/11/29(月) 09:21:34
_stprintf_sの本体ってprintだよな
修飾部分が本体の文字数を超えるほど何度も拡張されてるんだな
0593デフォルトの名無しさん2010/11/29(月) 10:11:25
ツールチップ(tooltips_class32)で、改行コード(\nや\r\n)を入れてもツールチップ文字列が改行されないのだが、改行させるにはどうすればいいだろうか
0594デフォルトの名無しさん2010/11/29(月) 10:20:48
普通に\nで改行するけど
05955932010/11/29(月) 10:24:46
バルーンチップにしたら改行できた 解決
0596デフォルトの名無しさん2010/11/29(月) 10:30:37
プリン
0597デフォルトの名無しさん2010/11/29(月) 10:42:55
プリン
0598デフォルトの名無しさん2010/11/29(月) 11:18:23
プリソ
0599デフォルトの名無しさん2010/11/29(月) 14:36:24
プンリ
0600デフォルトの名無しさん2010/11/29(月) 17:12:12
プソリ
0601デフォルトの名無しさん2010/11/29(月) 17:16:02
このスレBooで舐めまわされてるのか
0602デフォルトの名無しさん2010/11/29(月) 17:22:08
さげ
0603デフォルトの名無しさん2010/11/29(月) 17:25:50
定期あげ
0604デフォルトの名無しさん2010/11/29(月) 17:43:19
手動Fooですので
0605デフォルトの名無しさん2010/11/29(月) 19:14:35
定期あげ
0606デフォルトの名無しさん2010/11/29(月) 23:00:50
水揚げ
0607デフォルトの名無しさん2010/11/30(火) 03:32:49
おっす、オラ極右!
0608デフォルトの名無しさん2010/11/30(火) 09:50:15
定期あげ
0609デフォルトの名無しさん2010/11/30(火) 23:13:39
ダイアログベースのウインドウに、リストビューコントロールをくっつけて、
画像ファイルのサムネイルを表示してみようとしたのですが、
ImageListに80x80ピクセルのHBITMAPを設定したのですが、真っ黒でしか表示されません。
FillRectで紫で塗りつぶしたりしてみましたが、一向に変化なし。
ためしに、ピクチャーコントロールにHBITMAPを貼り付けてみたら、正しく表示されました。
これって、何か設定が足りないのでしょうか? もしかして、アイコンしか表示できないのでしょうか?
0610デフォルトの名無しさん2010/11/30(火) 23:17:52
>>609
ソース貼ってみろ
イメージリストにビットマップを読み込むところがおかしいんだろう
0611デフォルトの名無しさん2010/11/30(火) 23:33:22
ということは、大きなサイズのHBITMAP画像(フルカラー)でも
問題なくリストビューに表示できるということですね。
0612デフォルトの名無しさん2010/12/01(水) 00:04:21
顧問コントロールのリストビューは256までだったような
0613デフォルトの名無しさん2010/12/01(水) 00:10:30
とりあえずHBITMAPとしては正しいみたいだから、
次はImageList_Drawで描画されるか確認したら良いんじゃないか?
0614デフォルトの名無しさん2010/12/01(水) 00:16:33
ピクチャーコントロールに対して、ImageList_Drawも試してみましたが、
真っ黒でした。
やっぱフルカラーデータをリストビューに表示ってのがマズイのかも知れませんね。
0615デフォルトの名無しさん2010/12/01(水) 00:19:33
ためしに16*16の8BITデータ読ませてみるとか。映れば良しダメならコードに問題ある。
0616デフォルトの名無しさん2010/12/01(水) 00:27:30
イメージリスト作るときILC_COLOR32指定してないとか
0617デフォルトの名無しさん2010/12/01(水) 00:28:36
ん、文章がおかしいぞ。
ピクチャーコントロールに対して、HBITMAPの表示はOK。
イメージリストに登録したHBITMAPは、ピクチャーコントロール、リストビュー共にNG。
ということは、やっぱイメージリストの設定がおかしいのか…。
ちなみに、ImageList_Createの最後の引数、cGrowって0以外の数値でも大丈夫ですか?
ImageList_Addしてって、cInitialの個数を超えたら、cGrowまで拡張って解釈してるんですけど。
0618デフォルトの名無しさん2010/12/01(水) 00:30:06
最初はILC_COLOR24にしてましたが、真っ黒だったので、ILC_COLOR32も試してみましたが
同様でした。
0619デフォルトの名無しさん2010/12/01(水) 00:30:34
じゃあILC_COLORDDB試してみるとか
0620デフォルトの名無しさん2010/12/01(水) 00:32:30
hdc要求するような関数でNULL指定してるかそれ相当してるとか・・・。
0621デフォルトの名無しさん2010/12/01(水) 02:00:07
256x256のImageListに、SHGetFileInfo()で取得した32x32のアイコンをAddIconした場合、
拡大されてしまう為、これを阻止し、
アイコンを中央に表示したいと思うのですが、どういった方法をとればよいのでしょうか。
HBITMAPに貼り付けてAddしてみたのですが、ギザギザなアイコンしか表示することが出来ませんでした。
0622デフォルトの名無しさん2010/12/01(水) 08:57:12
定期あげ
0623デフォルトの名無しさん2010/12/01(水) 08:58:29
定期さげ
0624デフォルトの名無しさん2010/12/01(水) 09:01:13
ここゎ何のスレデスカ??@@
0625デフォルトの名無しさん2010/12/01(水) 09:34:41
@@
0626デフォルトの名無しさん2010/12/01(水) 10:38:29
過疎
0627デフォルトの名無しさん2010/12/01(水) 17:04:59
定期あげ
0628デフォルトの名無しさん2010/12/01(水) 19:28:54
>>621
元々、複数の同サイズのイメージを管理するためのものだから、
そういう対応は難しい気がする。
予め256x256の画像の中心に貼り付けてから追加するとか、
自前で好きなように描画するとかしかないんじゃないか?
0629デフォルトの名無しさん2010/12/01(水) 20:04:25
↑マジワロスww
0630デフォルトの名無しさん2010/12/01(水) 20:07:47
↑↑テラワロスww
0631デフォルトの名無しさん2010/12/01(水) 21:15:07
609ですが、解決しました。
イメージリストに登録する前に、HBITMAPのデバイスコンテキストを
開放していないことがいけなかったようです。
0632デフォルトの名無しさん2010/12/02(木) 02:34:57
リストビューでサムネイルを表示した際、アイテムをクリックすると、画像までもが反転表示されてしまいます。
反転表示させず、エクスプローラの様に黒枠で囲むにはどのような操作が必要でしょうか。
0633デフォルトの名無しさん2010/12/02(木) 03:10:55
定期あげ
0634デフォルトの名無しさん2010/12/02(木) 13:41:57
あげ
There are no programmers.
There are only 2channelers.
0635デフォルトの名無しさん2010/12/02(木) 18:27:49
定期あげ
0636デフォルトの名無しさん2010/12/02(木) 20:57:35
よくウィンドウズのアプリで2重起動を禁止しているアプリがありますが、起動しているアプリが最小化や他のアプリの背後に存在しているときに、
2重起動でプログラムを実行すると、1つ目のアプリにフォーカスが当たり最前に表示(最小化から復元)するのを見かけます。これと同じことをしたい
のですが、どのように実装すればよいのでしょうか?
0637デフォルトの名無しさん2010/12/02(木) 20:59:46
>>636
まず、多重起動してるかかくにんする。
次にウインドウハンドルをとって最小化を解除する。
後はお好きに。
0638デフォルトの名無しさん2010/12/02(木) 23:35:56
mutex
0639デフォルトの名無しさん2010/12/02(木) 23:43:28
findwindow
0640デフォルトの名無しさん2010/12/03(金) 01:11:18
CreateFontでメモリ上にあるフォントファイルを読み込む方法はある?
0641デフォルトの名無しさん2010/12/03(金) 01:47:07
メモリの内容を一時ファイルに書き出して、そのファイルを読み込むのが一般的。
0642デフォルトの名無しさん2010/12/03(金) 07:46:10
定期あげ
0643デフォルトの名無しさん2010/12/03(金) 08:09:22
mmioOpenを使い、メモリ上のファイルを読み込もうと思っていますが、うまくいきません。

HMMIO hMmio = NULL;

MMIOINFO m;
memset(&m, 0, sizeof(MMIOINFO));
m.pchBuffer = メモリへのポインタ;
m.fccIOProc = FOURCC_MEM;
m.cchBuffer = サイズ;
hMmio = mmioOpen(NULL, &m, MMIO_ALLOCBUF | MMIO_READ);

上のm.pchBuffer = メモリへのポインタ;でアクセス違反で止まってしまいます。
MSDNにMMIOINFOについて載っていないのでよくわかりません。ご教授お願いします。
0644デフォルトの名無しさん2010/12/03(金) 08:15:40
> MSDNにMMIOINFOについて載っていないのでよくわかりません
それは偽物のMSDN。本物は
http://msdn.microsoft.com/en-us/library/dd757331(VS.85).aspx
0645デフォルトの名無しさん2010/12/03(金) 09:19:39
>>644
サンクスできた
0646デフォルトの名無しさん2010/12/03(金) 15:27:53
偽者w
0647デフォルトの名無しさん2010/12/03(金) 17:30:10
為者w
0648デフォルトの名無しさん2010/12/03(金) 17:57:34
為箸w
0649デフォルトの名無しさん2010/12/03(金) 18:27:50
為替w
0650デフォルトの名無しさん2010/12/03(金) 18:29:09
はいはい終了
0651デフォルトの名無しさん2010/12/03(金) 18:32:50
為賛w
0652デフォルトの名無しさん2010/12/03(金) 18:40:11
TerminateThreadを無視するとはけしからん
0653デフォルトの名無しさん2010/12/03(金) 18:59:23
TerminateThread( hKusoThread );
06546402010/12/03(金) 19:32:52
AddFontMemResourceExで出来ました。
0655デフォルトの名無しさん2010/12/04(土) 10:37:23
650=652
0656デフォルトの名無しさん2010/12/04(土) 11:33:24
656==656
0657デフォルトの名無しさん2010/12/04(土) 11:35:30
657===657
0658デフォルトの名無しさん2010/12/04(土) 12:07:19
定期あげ
0659デフォルトの名無しさん2010/12/04(土) 19:45:24
CopyRectあげ
0660デフォルトの名無しさん2010/12/04(土) 20:16:18
そのAPIはない!
0661デフォルトの名無しさん2010/12/04(土) 20:17:21
互換性のためにうんぬんかんぬん…
0662デフォルトの名無しさん2010/12/05(日) 01:01:14
誰かRaymond ChenにCopyRectの歴史を訊いてくれ
0663デフォルトの名無しさん2010/12/05(日) 01:17:38
GetWindowには、ループ中で使うと相手のウィンドウが途中で消えたりZ座標が変わったりした場合に問題が起きますが、
FindWindowExにはそのような問題はないのでしょうか?
最初にhwndChildAfter=NULLで呼び出したときにウィンドウツリーのスナップショットを持っていてくれればよいのですが、
EnumChildWindowsの場合と違って、スナップショットのメモリを解放すべき時期がWin32には分からないように思えます。
0664デフォルトの名無しさん2010/12/05(日) 02:22:06
スナップショット持っててもウィンドウがなくなってたらどうしようもないな
0665デフォルトの名無しさん2010/12/05(日) 04:42:27
Win64API本って買っといた方がいいの?
ヤフオクとかで安く出てるけど。
0666デフォルトの名無しさん2010/12/05(日) 04:43:37
ゴミだから手放すんだろ
0667デフォルトの名無しさん2010/12/05(日) 09:07:26
API自体はほとんど Win32 API とおなじで
一部 64bit専用の API が追加されてることと
データ型のサイズに気をつけることと
あとまぁちょっとぐらいなにかあったかもしれない。
本はちゃんと読んでないからわからないけど
最初の方で Win64 でのプログラミングに関して
注意する点だけ書いて
あとは Win32本と基本的に同じなんじゃないかな。

一応 MSDN に情報はある。

64 ビット Windows プログラミング ガイド
http://msdn.microsoft.com/ja-jp/library/bb427430(v=VS.85).aspx
0668デフォルトの名無しさん2010/12/05(日) 10:14:05
http://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88
0669デフォルトの名無しさん2010/12/05(日) 19:48:55
定期あげ
0670デフォルトの名無しさん2010/12/05(日) 21:06:47
教えてください。

例えばコントロールAのクライアント内でマウスをクリックする度に
画像を切り替えていく処理を作っていてBitBltで実現しているのですが、
描画する度に前回の描画状態が残ってしまいます。

InvalidateRect( NULL, NULL, TRUE );でやると前回の描画状態も
消えてくれるのですが、画面全体がちらついてしまうので
やはり対象のコントロールAのクライアント領域に対してのみ
前回描画状態のリフレッシュをやったあと描画をやりたいのですが
どういうやり方でやればいいのでしょうか?


色々試したのですがどうしてもできません。
よろしくお願いします。
0671デフォルトの名無しさん2010/12/05(日) 21:07:41
ダブルバッファでggrks
0672デフォルトの名無しさん2010/12/05(日) 21:12:25
WPF使えばいいのに・・・
0673デフォルトの名無しさん2010/12/05(日) 21:30:59
>>670
せめて、第一引数にウインドウハンドル入れるんだ。改善しないと思うけど。
第二引数はGetCliantRectでとったものを入れるのが望ましく、
第三引数はFALSEにしておいて、ウインドウ全体をかきかえるのが望ましいかな。

ダーティレクトは捨てるんだ。
0674デフォルトの名無しさん2010/12/05(日) 21:31:59
覚えること多いから手間考えるとお勧めはできない
0675デフォルトの名無しさん2010/12/05(日) 22:21:58
>描画する度に前回の描画状態が残ってしまいます。

>前回描画状態のリフレッシュをやったあと描画をやりたいのですが

消したいのか残したいのかどっちなんだ?
06766702010/12/05(日) 22:54:07
>>675
コントロールAの領域がクリックされる
↓
画像1をBitBltでコントロールAのクライアント領域に描画
↓
コントロールAの領域がクリックされる
↓
画像2をBitBltでコントロールAのクライアント領域に描画
↓
コントロールAの領域がクリックされる
↓
コントロールAの領域に描画されている状態をクリア(消す)

これがやりたいのです。
コントロールAはCreateWindowExで生成しており、
WC_STATICWとWS_CHILD | WS_VISIBLE | SS_BITMAPを指定しています。
上記のハンドルをサブクラス化して「WM_NCHITTEST」のタイミングで
そのコントロールに対してBitBltを行った後、InvalidateRect()を呼び出して
画像を描画しているのですが、画像1と2の切り替えは都度描画されるので
上手くいき、最後の画像を消すという処理がうまくいってない状態にあります。

画像を消す処理は単純にInvalidateRect( hWnd, NULL, TRUE );を行い
WM_PAINTでBeginPaint()を呼べば描画状態が初期化されると思っていたのですが
そうでもないみたいで、手詰まりの状態です・・。
正直こういう描画関連の処理はいままでそれほどやってきたことがないので、
単純に知識不足なのでしょうが、自分が思い浮かんだ解決策として
画像をもう一つ用意してその画像の背景色を透明化(スプライト)させて
BitBltで描画という手法があるにはあるのですが、可能であればそういう事をせずに
解決できればと思っています。何かいい案があれば教えてください。

>>671
教えていただいてありがとうございます。それも一つの案として他にも何かないかもう少し探してみます。
0677デフォルトの名無しさん2010/12/05(日) 23:08:36
ちゃんとクリッピングしないからだ
0678デフォルトの名無しさん2010/12/05(日) 23:28:25
サブクラス化してるんだったら
継承元のDefaultWindowProc呼び忘れてるんだろうな
0679デフォルトの名無しさん2010/12/06(月) 00:58:51
>>676
何でサブクラス化したりBitBltしたり面倒なことをしているのか?
SS_BITMAPを使うならSTM_SETIMAGEやSTN_CLICKEDを調べたらどうか?
0680デフォルトの名無しさん2010/12/06(月) 01:06:56
いいからAPI出せや
0681デフォルトの名無しさん2010/12/06(月) 01:10:34
Twitter API
0682デフォルトの名無しさん2010/12/06(月) 01:33:59
あたいのポケットには1円しか入ってない
06836702010/12/06(月) 01:45:35
>>679
BitBltやっているのは画像の一部分(背景色)を透明化している為です。

>>STN_CLIKEDを調べたらどうか?
マジありがとうございます!
そいつの存在を忘れていました。


結局この時間帯まで頑張ってできなかった・・。
ソース一式晒したほうがいいでしょうか?
0684デフォルトの名無しさん2010/12/06(月) 02:24:27
>>683
晒せ
0685デフォルトの名無しさん2010/12/06(月) 02:27:27
俺の人生を最高にするAPI教えてくれ!!
0686デフォルトの名無しさん2010/12/06(月) 02:27:48
GetClientRect+MapWindowPointsで
親ウィンドウに自ウィンドウ矩形範囲のInvalidateRectをかけてやると
うまく動作するのは確認した。
CS_PARENTDCの付いたウィンドウは、
ウィンドウ矩形位しか管理していないと考えて扱うべきなのかなあ。
06876702010/12/06(月) 03:26:56
明日仕事なのにこんな時間になってしまった・・。
解決できないとなかなか寝る気になれないですね。
でも、でも流石にもう限界なので寝ます

>>684
ソースは下記にうpしました。
http://uproda.2ch-library.com/lib320763.zip.shtml
パスは「win32api」

環境はVisual Studio 2008 Proです。
問題個所は「PIFSubClassProc.c」の154行目(InvalidateRect)
あたりというか「WM_NCHITTEST」と「WM_PAINT」全体だと思います。
WM_PAINT処理は今までそんなに触ってこなかったので
他にも色々指摘してくれると助かります。
※ツールの内容は勉強を含めて自己満の世界なので触れないでやってください・・


では、時間がほんとにやばいので寝ます。
06886702010/12/06(月) 03:31:47
あと言い忘れてましたがPIF.exeを起動した後に表示される
左したあたりの画像をクリックしてもらえるとなんとなく自分が
やりたいことがわかると思います。

クリック場所はクライアント座標の「600, 460」あたりです。
座標の設定ファイルはPIF.posファイルなので適当に眺めてみてください。

よろしくお願いします
0689デフォルトの名無しさん2010/12/06(月) 19:25:47
定期あげ
0690デフォルトの名無しさん2010/12/06(月) 19:42:59
ビットブリット屁が出た
0691デフォルトの名無しさん2010/12/06(月) 20:05:48
>>687
改造してみた。
適当にデバッグしてドヤ顔しようとおもったらドップリはまったわ。
しかし、そこはかとなくバグってるから、適当に使える部分だけマージしてくれ。

ttp://www1.axfc.net/uploader/File/so/55241.zip&key=dl
0692デフォルトの名無しさん2010/12/06(月) 20:16:09
こういう作りなら、コントロールの組み合わせに拘らず
直接描画で対応してしまった方が手っ取り早い気がするな。
0693デフォルトの名無しさん2010/12/06(月) 20:28:45
俺691だけど。
普段コントロールなんかまったく使わんから勉強になったよ。
しかも直接生成するのはもっと無いな。

普段あんまりでかいコード書かないのもあるけどね。
06946702010/12/06(月) 20:32:21
いま仕事から戻りました。

>>691
ぐおおおおおおおお!!
解決のヒントぐらいだと思っていたのですが、改造までしてくれるとは・・・・。
しかも、posファイルの座標調整までしてくれるなんてお礼の言葉もありません。

さっそく差分見てどこが原因だったのか調べてみます。
いい勉強材料になりそうです。ありがとうございました。
0695デフォルトの名無しさん2010/12/06(月) 20:44:32
>>694
追加したハンドル開放してないとか色々不具合あるからきをつけてね。
コードのこぴぺは絶対やめるんだ。とだけいっとくか。
0696デフォルトの名無しさん2010/12/06(月) 22:24:26
まーた懐かしいゲームだなおい
年齢は俺と同じぐらいかw
0697デフォルトの名無しさん2010/12/07(火) 18:53:14
定期あげ
0698デフォルトの名無しさん2010/12/07(火) 18:54:32
スニッピングが効いてるならありだと思う。
ウィンドウズでごみ箱がgで移動すれば便利だけど、日本人は損してる。
0699デフォルトの名無しさん2010/12/08(水) 08:06:13
gomibakoにでも名前を変更すればいいだけだろ
0700デフォルトの名無しさん2010/12/08(水) 09:16:44
定期あげ
0701デフォルトの名無しさん2010/12/08(水) 13:42:20
うちはよく使うアイコンはみんな「gごみ箱」「cマイコンピュータ」とかに変えて一発で飛べるようにしてる
0702デフォルトの名無しさん2010/12/08(水) 13:46:39
ご マ で移動するけど?
0703デフォルトの名無しさん2010/12/08(水) 15:34:04
ここで質問していいか微妙ですが、
一瞬しか表示されないウィンドウがありまして、そいつをキャプションかなにかで監視して、表示したままにできるツール知ってる方いますか?
spy++ならできるっぽいですが、フリーのものを探してます。
0704デフォルトの名無しさん2010/12/08(水) 16:00:30
>>703
VCなら、デバッガでブレークポイント打つとか。
0705デフォルトの名無しさん2010/12/08(水) 16:20:22
>>704
ありがとうございます。
ですが、そのウィンドウ(ダイヤログ?)を表示してるのは、自分で作ったものじゃないんです。
痛し痒しです。
0706デフォルトの名無しさん2010/12/08(水) 17:17:51
エッチなまうまう?
0707デフォルトの名無しさん2010/12/08(水) 17:47:41
エッチしてるなう
0708デフォルトの名無しさん2010/12/08(水) 17:57:49
タブコントロールで、タブの位置を左右にした場合に
タブを縦じゃなくて、上下に表示したときと同じように
横向きで表示する方法ある?
0709デフォルトの名無しさん2010/12/08(水) 18:26:57
>>705
いや
それでもデバッガでとめられるんだよ
0710デフォルトの名無しさん2010/12/08(水) 18:53:59
定期あげ
0711デフォルトの名無しさん2010/12/08(水) 20:20:40
>>709
なるほど…そういったことができそうなデバッガを探してみます。ありがとうございました。フリーでありますかね…
0712デフォルトの名無しさん2010/12/08(水) 20:21:58
初心者で申し訳ありませんが、
指定ファイルが削除可能かどうかのチェックをしたいのですがどのようにすればよいでしょうか?

2個セットのファイルがあり、両方を確実に削除できることを確認後に削除を行います。
ファイルの削除自体はDeleteFile関数で削除します。
0713デフォルトの名無しさん2010/12/08(水) 20:24:53
>>712
消してみてからエラー内容で判定すればいい
07147122010/12/08(水) 20:28:30
>>713
いえ、仮にAとBのファイルが存在して、
Aは削除可能、Bは削除不可の場合、 AとBの削除が可能な場合を確認して両方を削除します。
Aが削除成功後にBで失敗というケースがあるので、その方法は無理です(^^;


0715デフォルトの名無しさん2010/12/08(水) 20:34:09
Aをどこかにコピーしておいて戻せばいいじゃん
0716デフォルトの名無しさん2010/12/08(水) 20:35:26
DeleteFileTransacted
0717デフォルトの名無しさん2010/12/08(水) 20:37:17
FILE_SHARE_DELETEで開け
0718デフォルトの名無しさん2010/12/09(木) 09:37:27
定期あげ
0719デフォルトの名無しさん2010/12/09(木) 15:47:01
BItBltで描画してんだけど、ウィンドウを移動させて画面の端を突き抜けて
また戻してくると、そのはみでた部分だけ背景色になっちゃいます。
なのでそのときに再描画させたいんですが、
なんかちょうどいいウィンドウメッセージないですか?

タイマー以外の方法でよろしくお願いします。
0720デフォルトの名無しさん2010/12/09(木) 16:00:10
WM_PAINT
0721デフォルトの名無しさん2010/12/09(木) 16:02:28
そうじゃなくて、Wm_Paintをその描画タイミングで発生させたいんです
つまりInvalidateRect関数を実行するんですが、それを発生させる
タイミングとしてちょうどいいメッセージはないのかを聞いてます。
0722デフォルトの名無しさん2010/12/09(木) 16:11:17
windowsによって勝手に無効領域に設定されるから何もする必要はない
0723デフォルトの名無しさん2010/12/09(木) 16:52:54
画面をはみ出したら自動的に無効領域として設定されるので、
自動的にwm_paintが発生するということですか?

描画の処理を、WM_paintのメッセージが発生したときに動作する場所に
書いてるはずなのに、描画されないんですが。
0724デフォルトの名無しさん2010/12/09(木) 16:57:24
>>723
WM_PAINTの処理書いてるところにブレークポイント張ってみればいい
0725デフォルトの名無しさん2010/12/09(木) 18:57:44
MoveWindow関数で、ウィンドウを動かさずにサイズだけ変更したい時は、どうすればいいですか?
0726デフォルトの名無しさん2010/12/09(木) 18:59:41
WindowRectとって左上がウインドウのポジションだからそれを指定すればいい。
大きさはご自由に。
0727デフォルトの名無しさん2010/12/09(木) 19:03:33
SetWindowPosも忘れないであげて……
0728デフォルトの名無しさん2010/12/09(木) 19:13:46
CopyRectも忘れないであげて……
0729デフォルトの名無しさん2010/12/09(木) 19:37:40
>>725-728
SetWindowPosを使う事にしました。
いろいろありがとうございました。
0730デフォルトの名無しさん2010/12/09(木) 23:05:02
CopyRectは忘れてやれよ。
0731デフォルトの名無しさん2010/12/09(木) 23:55:04
お礼されてCopyRectマジ歓喜
0732デフォルトの名無しさん2010/12/10(金) 01:27:25
でも実際、CopyRectは昔は必要だったんだよね?
CopyRectがなかったらMFCとか.NETとかWindowsとか生まれてないじゃん
0733デフォルトの名無しさん2010/12/10(金) 01:53:16
水平スクロールバーの付いたウインドウの下に、
ステータスバーをくっつけるのって、どうやればいいのでしょうか?

現在は、CreatwWindowEx で水平スクロールバー付きの親ウインドウを作成して、
WM_CRATEメッセージで、CreateStatusWindow にてステータスバーの子ウインドウを
作成したのですが、ステータスバーの下にスクロールバーが付いた状態になってます。
0734デフォルトの名無しさん2010/12/10(金) 03:32:55
>>733
親ウィンドウにスクロールバーをつけるのではなく、クライアント領域を覆う子ウィンドウ(MFC的にいうならビュー)を作ってそれにスクロールバーをつけることでしょうな。
つまりビューとステイタスバーを兄弟にするのです。
0735デフォルトの名無しさん2010/12/10(金) 12:55:08
CopyRectがなければWindowsもなかったんですよね?
0736デフォルトの名無しさん2010/12/10(金) 14:32:52
じゃあお前らCopyRectなしで構造体コピーしてみろや
0737デフォルトの名無しさん2010/12/10(金) 16:52:26
winプログラミング歴16年ほどだけど、CopyRectって知らんかも
0738デフォルトの名無しさん2010/12/10(金) 18:00:57
rect1 = rect2;
0739デフォルトの名無しさん2010/12/10(金) 20:28:25
エディットボックスの背景に画像を描画することは無理ですよね?
0740デフォルトの名無しさん2010/12/10(金) 20:30:06
そんなことはない
なせばなる
0741デフォルトの名無しさん2010/12/10(金) 20:37:47
ざっくりでいいんで簡単に教えてください。
0742デフォルトの名無しさん2010/12/10(金) 20:39:30
サブクラス化してWM_イレイズバックグラウンドを処理すりゃいい
0743デフォルトの名無しさん2010/12/10(金) 20:42:56
>>742
そんなメッセージあったのか。ありがとうございます。
0744デフォルトの名無しさん2010/12/10(金) 21:07:19
WM_ERASEBKGNDなんてものがあったのか
0745デフォルトの名無しさん2010/12/10(金) 21:22:06
ttp://codezine.jp/article/detail/3663
このサイトの内容を参考に、プログラムを組んでみた所
映像は正しく描画されたのですが、終了しようとすると

MediaPlayer.exe の 0x641d3a76 で初回の例外が発生しました: 0xC0000005: Access violation
MediaPlayer.exe の 0x641d3a76 でハンドルされていない例外が発生しました: 0xC0000005: Access violation

このようなエラーが出てきてしまいます。
エラーメッセージで調べてみたりはしたのですが、解決法が分かりませんでした。
どなたか解決法をご存じないでしょうか?
0746デフォルトの名無しさん2010/12/10(金) 21:23:19
破棄する順番じゃねーの
0747デフォルトの名無しさん2010/12/10(金) 21:28:10
>>746
なんと、その通りでした。
お早い回答ありがとうございました。
0748デフォルトの名無しさん2010/12/11(土) 10:21:37
>>742
スーパークラスの方がいいな
0749デフォルトの名無しさん2010/12/11(土) 12:26:53
定期あげ
0750デフォルトの名無しさん2010/12/11(土) 12:47:29
定期CopyRect
0751デフォルトの名無しさん2010/12/11(土) 12:57:43
CopyRectはVBをやるのに必要と聞いたけどホント?
0752デフォルトの名無しさん2010/12/11(土) 13:20:55
CだってCopyRect使わなきゃ構造体コピーできないぞ
0753デフォルトの名無しさん2010/12/11(土) 13:29:32
そりゃ俺が大学生くらいの頃の話だ
0754デフォルトの名無しさん2010/12/11(土) 14:11:12
50年前か
0755デフォルトの名無しさん2010/12/11(土) 14:52:11
まるで難民キャンプだな。ここは。
0756デフォルトの名無しさん2010/12/11(土) 16:00:25
お前ら、大学でてるのか
大学でが多いのに日本だめだよな。低脳でも大学行ける日本って変だよ
大学でって言いながら、実質高校後期課程での奴多いんだろ。俺もだがな
本当に大学でって言えるの、旧帝国大だったところだけらしいぞ
0757デフォルトの名無しさん2010/12/11(土) 16:15:38
↑小卒です。w
0758デフォルトの名無しさん2010/12/11(土) 16:21:17
私、尋常小学卒です
0759デフォルトの名無しさん2010/12/11(土) 16:21:40
日本の大学進学率は約50%。ちなみに1990年は25%、2000年には40%。

石を投げれば大学生にあたると言われたのも昔の話で
「アニメーション学科」みたいなクソ学科が増えたこともあって、
いまや、大卒の価値は一流以外は毛ほどにもなくなってる^^
0760デフォルトの名無しさん2010/12/11(土) 16:47:39
就職できない奴らが溢れかえってるからな。
0761デフォルトの名無しさん2010/12/11(土) 16:47:46
私大文系は勉強するところじゃなくて「大卒待遇で就職できるかもしれない」という夢を売ってるところだからな。
0762デフォルトの名無しさん2010/12/11(土) 20:27:50
仕事がないだけだろ
人間に増減はないんだから
0763デフォルトの名無しさん2010/12/12(日) 01:12:55
えっ
0764デフォルトの名無しさん2010/12/12(日) 03:19:11
エディットボックスの背景に画像を描画してるんですが、
ウィンドウを移動したり、文字を入力したりすると消えてしまうんです。
どうにかして防ぐ方法はないでしょうか?
0765デフォルトの名無しさん2010/12/12(日) 03:24:31
スーパークラス化してWM_ERASEBKGNDを処理する
0766デフォルトの名無しさん2010/12/12(日) 04:31:21
>>739-744
0767デフォルトの名無しさん2010/12/12(日) 08:57:33
WM_ERASEBKGNDを処理するってことは、そのメッセージが来たときに
もう一回描画すればいいってことですか?

やってみても文字を入力したら背景は消えてしまいます。
0768デフォルトの名無しさん2010/12/12(日) 09:00:02
文字を入力したときに発生するメッセージは何なのでしょうか?
0769デフォルトの名無しさん2010/12/12(日) 15:36:31
スプリッタウィンドウを上下に分割しているのですが
親ウィンドウに追随してサイズを変更させるようにするにはどうすればいいでしょうか?
0770デフォルトの名無しさん2010/12/12(日) 15:40:45
親ウィンドウがスプリッタウィンドウの大きさを変えてやればいい
0771デフォルトの名無しさん2010/12/12(日) 15:51:58
>>770
親ウィンドウのプロシージャのWM_SIZEの所でResizeClientを使ったらできました。
ありがとうございます。
0772デフォルトの名無しさん2010/12/12(日) 17:46:29
>>767
WM_CTLCOLORで背景ブラシをNULLブラシとかにしてみたら?
0773デフォルトの名無しさん2010/12/13(月) 08:18:27
定期あげ
0774デフォルトの名無しさん2010/12/13(月) 21:38:33
リストビューの背景に画像を描画してるんですが、項目を追加すると
その部分はやっぱり白くなってしまいます。

SetBkModeでTRANSPARENTに設定しても、文字の背景が白くなるのでダメです。
どうにかして項目を追加しても、背景の画像が残せる方法はないでしょうか?
0775デフォルトの名無しさん2010/12/13(月) 22:02:10
リストビューを自作すればいいよ
0776デフォルトの名無しさん2010/12/13(月) 22:21:20
ListView_SetBkImageを使った方法を教えてほしいです。

ファイルからではなく、ビットマップハンドルから読む方法で。
0777デフォルトの名無しさん2010/12/14(火) 03:46:05
>>774
オーナードロー使えば?
0778デフォルトの名無しさん2010/12/14(火) 03:57:06
多分オーダードローせんでもいけるわ

ListView_SetTextBkColor(hwnd, CLR_NONE);
0779デフォルトの名無しさん2010/12/14(火) 05:16:33
皆さんありがとうございます。
ListView_SetTextBkColorとListView_SetBkColoroをCLR_NONEにすることで
背景は黒色になったのですが、ビットマップの表示がうまくいきません。

ListView_SetBkImageでビットマップハンドルを使用した方法が知りたいです。
LVBKIMAGE
memset(&lvbk,0,sizeof(lvbk));
lvbk.ulFlags=LVBKIF_SOURCE_HBITMAP | LVBKIF_STYLE_NORMAL;
lvbk.hbm=//ハンドル

ListView_SetBkImage(ウィンドウハンドル、&lvbk);

このようにしてるんですが、SetBkImageでFALSEが返ってきてしまいます。

考えられる原因を教えて下さい。

ビットマップハンドルは別クラスで取得したものを代入していますが、
ちゃんとハンドルは取得できていることを確認しています。
0780デフォルトの名無しさん2010/12/14(火) 06:39:06
>>779
原因はお前が英語版のAPIリファレンスを読むことができない低脳だから。
0781デフォルトの名無しさん2010/12/14(火) 09:30:23
定期あげ
0782デフォルトの名無しさん2010/12/14(火) 10:15:29
低脳なのは十分承知です。
英語が読めたらここに来るわけありません。
最低な人しかいないんですね。もういいです。
0783デフォルトの名無しさん2010/12/14(火) 10:17:12
英語読めねー奴はPGやめろ。
0784デフォルトの名無しさん2010/12/14(火) 10:19:30
やめねえよクズ
0785デフォルトの名無しさん2010/12/14(火) 10:24:02
こんなスレいらんだろ

クズがクズに教えても何も解決しない
もはや存在意義なし
0786デフォルトの名無しさん2010/12/14(火) 10:32:27
英語が読めなくても、翻訳しながら意味を解釈していけばいいだけの話。
結局のところ怠け者の言い訳なんだよね。
0787デフォルトの名無しさん2010/12/14(火) 10:39:10
クズは回答すんなよ w

プログラムの初期化時にCoInitializeかOleInitializeしてるか?
0788デフォルトの名無しさん2010/12/14(火) 10:39:28
> 翻訳しながら意味を解釈していけばいいだけの話。
それは英語読める方に分類してやってるんだが。それすら出来ないカスは今すぐPGやめろ。
0789デフォルトの名無しさん2010/12/14(火) 10:41:15
定期あげ
0790デフォルトの名無しさん2010/12/14(火) 10:46:20
PG
必要な技能 翻訳サイトにコピペしてボタンを押す
0791デフォルトの名無しさん2010/12/14(火) 10:47:53
よほどマニアックなAPIで無い限り根性でググレば意外と日本語のサイトも見つかるぞ
初歩は頭の良し悪し以前に気合で何とかなる
0792デフォルトの名無しさん2010/12/14(火) 11:28:47
MSDN日本語版を筆頭として日本語のサイトには嘘が多い。
0793デフォルトの名無しさん2010/12/14(火) 11:48:43
ここも日本語サイトだよな
0794デフォルトの名無しさん2010/12/14(火) 11:50:31
MSDNとVSのヘルプシステムの連携は
海外でも評判よくないw
0795デフォルトの名無しさん2010/12/14(火) 12:22:49
そりゃそうだろw
MSDNは名前だけでMSは無関係
0796デフォルトの名無しさん2010/12/14(火) 12:41:04
>>795
え?
0797デフォルトの名無しさん2010/12/14(火) 12:41:46
MSDNは二次創作なんだが
0798デフォルトの名無しさん2010/12/14(火) 12:58:02
いいからAPI出せや
0799デフォルトの名無しさん2010/12/14(火) 13:13:55
SetRect
0800デフォルトの名無しさん2010/12/14(火) 13:46:20
Insert(girl)
0801デフォルトの名無しさん2010/12/14(火) 13:56:56
? 0
0802デフォルトの名無しさん2010/12/14(火) 14:00:56
名前の一番長いWinAPIは何
0803デフォルトの名無しさん2010/12/14(火) 14:14:26
IsTheLongestNameAPIEx2
0804デフォルトの名無しさん2010/12/14(火) 14:19:34
ぐぐったところによれば
ConvertStringSecurityDescriptorToSecurityDescriptor
0805デフォルトの名無しさん2010/12/14(火) 15:51:42
どなたか、midiInStopとmidiInRestの違いを教えてください。
MSDNの解説見ると、キューのバッファの処理が違うようなんですけど、
具体的に何が変わって来るのかわかりません。
0806デフォルトの名無しさん2010/12/14(火) 15:58:44
midiInAddBuffer で投入したバッファの残ってるやつがアプリ側に返されるかどうかじゃない
0807デフォルトの名無しさん2010/12/14(火) 16:09:04
それが何のことだかわからないんだけど・・・
戻らないと何か不都合があるのか?とか、どう使い分けるのか?とか・・・
具体例を教えて欲しいなあと。
MSDNってほんと解らない。
0808デフォルトの名無しさん2010/12/14(火) 16:12:06
不都合って、渡したままのバッファを free できないじゃない
まだ使ってるのに
0809デフォルトの名無しさん2010/12/14(火) 16:24:07
戻るとフリーになるんだ?
バッファは必ずフリーにしないといけないって決まりなの?
だったらReset使っておけば問題無いのかな?

これってロングメッセージ限定の話だよね?・・・ってそこまで知らないか。
0810デフォルトの名無しさん2010/12/14(火) 16:34:01
APIを呼び出した時点で新規入力を停止するまでは共通
バッファに残った未処理のデータをコールバックで通常処理するならReset
ただちに完了マークをつけるならStop

これのどこが理解できない
0811デフォルトの名無しさん2010/12/14(火) 16:43:18
なにファビョってんだかw
0812デフォルトの名無しさん2010/12/14(火) 16:45:22
>>809
いやいや、メモリを malloc で確保したら free で解放しなきゃいけないから
malloc でバッファを確保 → midiInAddBufferに渡す → midiInがバッファにデータを書き込む → バッファが戻ってくる → free でバッファを解放
という流れのプログラムを組むことになるだろ
もちろん malloc/free じゃなくて GlobalAlloc/GlobalFree でもなんでもいいが
もちろんグローバル変数を使うのなら解放する必要はない
ロングメッセージ限定の話
ショートメッセージはバッファ使わない
0813デフォルトの名無しさん2010/12/14(火) 16:58:36
久しびりに聞いた単語 MIDI
0814デフォルトの名無しさん2010/12/14(火) 16:58:50
エッチなまうまう?
0815デフォルトの名無しさん2010/12/14(火) 17:06:57
エッチしてるなう
0816デフォルトの名無しさん2010/12/14(火) 17:21:40
>>810>>812
なるほど!バッファのルールがまだよく分かってないんだけど、
なんとなく流れが分かった。
MSDNもこういう具体的な解説付けてくれたらいいのにな。
ありがとうございました。
0817デフォルトの名無しさん2010/12/14(火) 18:08:07
まだMSDNとか言ってんのか
0818デフォルトの名無しさん2010/12/15(水) 00:04:35
MSDNの
「システム排他メッセージ」ってやめて欲しいな
「システムエクスクルーシブメッセージ」と呼ぶって、MIDIの規格書に書いてあるだろ

MIDI知らないやつが翻訳するからこうなる
0819デフォルトの名無しさん2010/12/15(水) 00:17:56
こんな風に名前を付ければ誤解されずに済んだかも

midiInStop -> midiInPause
midiInReset -> midiInStop
0820デフォルトの名無しさん2010/12/15(水) 00:19:23
ローカル(操作PCに完全にインストールされた)なMSDNには価値がある。
ちょっと調べたい時にスパッと出てくるので便利。
ネットワーク経由のMSDNにはあまり価値がない、
ネットで検索するぐらいならMSDNなんて見ない。
0821デフォルトの名無しさん2010/12/15(水) 00:21:50
2010のExpressはローカル版ないんで?
0822デフォルトの名無しさん2010/12/15(水) 03:07:54
いいからISDN出せや
0823デフォルトの名無しさん2010/12/15(水) 03:17:06
CopyISDN
0824デフォルトの名無しさん2010/12/15(水) 03:39:58
>>821
そんな貧乏くさいもん使うな
0825デフォルトの名無しさん2010/12/15(水) 03:44:09
音響カップラーって売ってますかね?
0826デフォルトの名無しさん2010/12/15(水) 04:39:22
WIN32APIはオワコン
0827デフォルトの名無しさん2010/12/15(水) 05:21:53
32ビットオワコン
0828デフォルトの名無しさん2010/12/15(水) 07:37:31
御前らフロッピーをDMFフォーマットするAPIを教えて下さいな
0829デフォルトの名無しさん2010/12/15(水) 09:12:13
定期あげ
0830デフォルトの名無しさん2010/12/15(水) 09:22:44
>>818
キミが見ているのは偽物のMSDN。本物はsystem-exclusive messagesと書いてある。
0831デフォルトの名無しさん2010/12/15(水) 09:36:12
いいからOPPAI出せや
0832デフォルトの名無しさん2010/12/15(水) 09:39:15
(・)(・)
0833デフォルトの名無しさん2010/12/15(水) 15:13:00
WH_MOUSE_LLよりさらに低水準で、
状態取得のみ可能なAPIってありませんでしたっけ?
0834デフォルトの名無しさん2010/12/15(水) 16:55:13
>>833
Raw Inputのこと?
0835デフォルトの名無しさん2010/12/15(水) 17:17:20
>>831
(。人。)
0836デフォルトの名無しさん2010/12/15(水) 20:35:54
繋がってる液晶モニタのリアル解像度を取得することってできませんか?

CRT時代だったら需要のないAPIだと思うけど…
0837デフォルトの名無しさん2010/12/15(水) 20:39:37
GetSystemMetrics
0838デフォルトの名無しさん2010/12/15(水) 21:16:47
なんとWindows3.1時代から実装されているAPIであった…
0839デフォルトの名無しさん2010/12/15(水) 21:32:21
>>836
そういう情報がそもそもないから存在しない
0840デフォルトの名無しさん2010/12/15(水) 21:35:51
>>836
俺もだいぶ前から探してるんだけど、どうにも見つからない。
Vista以降のMonitor Configuration APIでモニタの種類を取得とかはできるんだが。

ドライバレベルでは取得できてるようなので、その情報にアクセスできる共通のAPIが
あればいいんだが。
0841デフォルトの名無しさん2010/12/15(水) 21:50:59
http://msdn.microsoft.com/en-us/library/dd145189%28v=vs.85%29.aspx
VIDEOPARAMETERS Structure
DISPLAY_DEVICE Structure
EnumDisplayDevices Function
0842デフォルトの名無しさん2010/12/15(水) 21:53:06
ペゾルド本p.171

>プログラムがディスプレイの実際の物理サイズを必要とする場合にはどうしたらよいのだろうか?
>おそらく、最良の方法は、ダイアログボックスを使ってユーザに直接入力してもらうことだろう。
0843デフォルトの名無しさん2010/12/15(水) 21:53:32
>>841
ずるいよ^^
0844デフォルトの名無しさん2010/12/15(水) 21:58:39
VGAで使ってる液晶の時でも、XGAでの解像度を取得したいんだよね?
0845デフォルトの名無しさん2010/12/15(水) 22:01:45
そうだよね。基本無理。
0846デフォルトの名無しさん2010/12/15(水) 23:05:17
>>843
どうして
0847デフォルトの名無しさん2010/12/15(水) 23:11:27
>>846
自分がペゾルド本をせっせと調べているうちに正解が書きこまれたので^^;
0848デフォルトの名無しさん2010/12/16(木) 00:04:41
って夕香、リアル解像度って何?w
ネイティブ解像度のこと?物理的なサイズ?それとも私?
0849デフォルトの名無しさん2010/12/16(木) 00:23:07
親ウィンドウをリサイズした際に、ウィンドウ内のコントロールのサイズも適宜変えるにはどうすればいいでしょうか?
0850デフォルトの名無しさん2010/12/16(木) 00:23:32
物理的な解像度のことじゃね
定規持ってインチ数を測ってピクセル数を割る
0851デフォルトの名無しさん2010/12/16(木) 00:25:03
>>849
WM_SIZE とか WM_WINDOWPOSCHANGED とかのメッセージを捕まえて
MoveWindow とか SetWindowPos で適宜変えてください
0852デフォルトの名無しさん2010/12/16(木) 01:19:46
Windows付属のエクスプローラーで、ドライブやフォルダーがツリー表示されますが
それと同じ表示をするコントロールは、何かありますか?

SHBrowseForFolder()を使うと、フォルダーを選択するダイアログを表示できる
ところまでは分かったのですが。それと同じ表示をするものをウィンドウクライアント上に
コントロールとして貼りたいです。
0853デフォルトの名無しさん2010/12/16(木) 01:22:12
貼る(笑)
0854デフォルトの名無しさん2010/12/16(木) 01:28:46
ツリービュー
0855デフォルトの名無しさん2010/12/16(木) 01:37:31
>>854
やはりTreeViewコントロールを利用して、自作するしかない感じですね><;
情報ありがとうございました
0856デフォルトの名無しさん2010/12/16(木) 02:18:16
OS依存のものは面倒なんで、OSのをそのまま使うほうが楽だぜ。
自分で作る場合はShellAPI関係経由で実装はできると思うけど。
0857デフォルトの名無しさん2010/12/16(木) 07:53:48
Vista以降ならエクスプローラコンポーネントを貼るだけでいけたような・・・
0858デフォルトの名無しさん2010/12/16(木) 09:04:03
定期あげ
0859デフォルトの名無しさん2010/12/16(木) 12:51:55
IE貼ればエクスプローラになる
0860デフォルトの名無しさん2010/12/17(金) 06:38:55
俺は貼られる側を作るのが専門。
だから、APIとATLとCOMについてはかなり詳しく知っている。
0861デフォルトの名無しさん2010/12/17(金) 07:22:26
そんな最低限の知識自慢されても笑われるだけだよ。
言うのはこのスレだけにしとけよ。
0862デフォルトの名無しさん2010/12/17(金) 07:49:09
>>860
そのわりには、このスレの回答レベルかなり低いけど
0863デフォルトの名無しさん2010/12/17(金) 07:49:09
自慢はしたいだけすれば良いよ
どうせ匿名だし誰か判らないんだから意味無いよね
0864デフォルトの名無しさん2010/12/17(金) 10:07:42
>>862
msdn libraryを見ればわかる質問とスレ違いの質問しか無いから
0865デフォルトの名無しさん2010/12/17(金) 16:14:35
定期あげ
0866デフォルトの名無しさん2010/12/17(金) 17:43:58
>>857 >>859
ナビゲーションバー出る?
0867デフォルトの名無しさん2010/12/18(土) 00:18:12
質問させてください。

C++でPlatform SDKとVisualStudio(VS)・そのリソースエディタを使って組んでいるのですが、
Windows7のそれのような見た目を持つコントロール(緑色のプログレスバーなど)を
利用するにはどうすればいいのかヒントを教えていただけないでしょうか。

これまでのアプリをWin7上で実行するとコントロールの見た目が勝手に置き換わる、
と思ったらそうではなかったので
(ウィンドウのタイトルバーの見た目は勝手に置き換わって半透明になってます)。
Win7にインストールしたVSのリソースエディタ上ではWin7の見た目になっているので、
できないことはないと思うのですが。
0868デフォルトの名無しさん2010/12/18(土) 00:24:28
新しいバージョンでどうぞ
0869デフォルトの名無しさん2010/12/18(土) 00:37:53
定期あげ
08708672010/12/18(土) 00:55:40
>>868
情報後出しになってすみません、VS2008です。
2010でビルドすればWin7ルックになるということですか?
0871デフォルトの名無しさん2010/12/18(土) 01:04:43
訪問記念、カキコ

>>870
後出しは世界中のどこでも嫌われる
そう思うなら2010でやってみる
0872デフォルトの名無しさん2010/12/18(土) 01:07:00
Platform SDKじゃなくてWindows SDK for Windows 7でやれ
0873デフォルトの名無しさん2010/12/18(土) 01:10:15
どこでそれ手に入れられんですか?
いぐらぐらいするんですか?
0874デフォルトの名無しさん2010/12/18(土) 01:11:04
ググルかMSのサイトで調べるんだ。
0875デフォルトの名無しさん2010/12/18(土) 01:15:47
まぁ2010でやればWindowsSDK7.1は標準なんだが
0876デフォルトの名無しさん2010/12/18(土) 01:20:45
VS2010はMFCも新OS対応になってて色々面白いぞ
0877デフォルトの名無しさん2010/12/18(土) 01:24:29
さっさと2010を買うが超大吉ですよ
http://www.microsoft.com/japan/visualstudio/

訪問記念で訪れた僕でさえ2010使ってるんですから
08788672010/12/18(土) 01:26:50
>>871
そうですよね、すみません。さらに言うと2008のSP1でした。
2010はexpressだとリソースエディタが使えないのでインストールしてないのですが、
今度インストールして試してみます。

>>872
おおおこんなものが出てたんですね、存在すら知りませんでした、ありがとうございます!

ざっと見たところ、.NET系のプログラミングに使えるものであって、
DialogBox()でダイアログリソースを渡して…という(PlatformSDK的?な)やり方では
利用できないような印象を受けましたが、もうちょっと詳しく調べてみます。

>>875
さらにヒントをありがとうございます。

ちなみに873は俺じゃないです。
みなさんありがとうございました。
0879デフォルトの名無しさん2010/12/18(土) 01:28:43
2008ってVista対応のSDKが付属してるのに
わざわざそれより古いPlatform SDK使ってるのかよ
08808672010/12/18(土) 01:29:26
またorz…2008のStandardのSP1でした。
08818672010/12/18(土) 01:36:35
俺が"Platform SDK"の意味を勘違いしてたみたいです。

俺がやってるのは新規プロジェクトからWin32アプリケーション(コンソールじゃないほう)を
選んでOKで進めてCreateWindow()やらDialogBox()で書いていくような、
”猫でもわかるプログラミング”のSDK編にリソースエディタを足したようなやりかたです。

てっきりこのやりかた=Platform SDKを利用したやりかただと思ってました。
(というのもVisualStudio2005のexpressを使っていた頃は、VS2005に加えてPlatform SDKを
インストールしないとビルド出来なかったからです。)
0882デフォルトの名無しさん2010/12/18(土) 01:42:27
マニュフェスト書くだけだろ。
なんでこんな基本的な事をちゃんと答えてやれないんだ?
08838672010/12/18(土) 02:18:32
>>882
情報ありがとうございます!
manifestってコントロールの外観を変えるのに使えるんですね!
単語は目にしていましたが特に触らなくてもこれまで困らなかったので何に使えるのかも知りませんでした。
ふむ…(一周前になりますが)2000ルックのコントロールをmanifestでXPルックのlunaにできると…。

Windows SDK for Windows7とmanifest、この2つについて調べようと思います。
みなさんレスありがとうございました。
0884デフォルトの名無しさん2010/12/18(土) 02:47:03
>>882
みんな親切しても報われなかったんだろう
誰もがひねくれてしまった
0885デフォルトの名無しさん2010/12/18(土) 05:58:38
>>882
そうだろ。
だからこのスレの回答者のレベルは低いと言ってるんだよ。
0886デフォルトの名無しさん2010/12/18(土) 08:41:21
ぽっぽ
0887デフォルトの名無しさん2010/12/18(土) 12:27:23
>>881
Platform SDKは大昔にWindows SDKに名前が変わった。
0888デフォルトの名無しさん2010/12/18(土) 18:44:14
888ゲットぽっぽ
0889デフォルトの名無しさん2010/12/18(土) 21:01:13
定期ぽっぽ
0890デフォルトの名無しさん2010/12/19(日) 03:57:39
イメージリストを複製しようとしてImageList_Duplicateを使っていますが、どうもうまく複製してくれません。
かといってNULLが返るわけでもなく、イメージ数0の変なハンドルが返ってきます。ImageList_Destroyもできません。
ググってもバグ情報とか出てこなくてお手上げ状態です。もし何かご存知の方があれば教えてください。
ちなみにIEのバージョンは8です。
0891デフォルトの名無しさん2010/12/19(日) 04:21:57
イメージリストは複製した
だが中身まで複製するとは言ってない
0892デフォルトの名無しさん2010/12/19(日) 08:05:32
>>24>>21
>全て列挙

それは一言で「枚挙」という。
08938902010/12/19(日) 13:17:26
>>891
ありがとうございます。
>だが中身まで複製するとは言ってない
そうなんですか!?
MSDN↓を読んでてっきり全部コピーしてくれるのかと・・・
>All information contained in the original image list for normal images is copied to the new image list. Overlay images are not copied.
ImageList_Duplicateはどのように使うのが正しいのでしょうか。
0894デフォルトの名無しさん2010/12/19(日) 18:01:01
質問よろしいでしょうか?

WIN32APIで何かしらのUSBが接続されたことを確認するなどができる関数は
ないのでしょうか?
0895デフォルトの名無しさん2010/12/19(日) 18:11:16
通知メッセージが来る
0896デフォルトの名無しさん2010/12/19(日) 18:12:05
WM_DEVICECHANGE
0897デフォルトの名無しさん2010/12/19(日) 18:12:11
WM_DEVICECHANGE
0898デフォルトの名無しさん2010/12/19(日) 18:12:59
ありがとうございます。

助かりました。
ちょっとググってきます。
0899デフォルトの名無しさん2010/12/19(日) 20:43:30
定期ぽっぽ
0900デフォルトの名無しさん2010/12/20(月) 00:20:15
えっちなぽっぽ?
0901デフォルトの名無しさん2010/12/20(月) 07:21:58
エッチしてるぽっぽ
0902デフォルトの名無しさん2010/12/20(月) 10:20:31
定期あげ
0903デフォルトの名無しさん2010/12/20(月) 14:49:41
さげ
0904デフォルトの名無しさん2010/12/21(火) 09:48:59
定期あげ
0905デフォルトの名無しさん2010/12/22(水) 09:02:10
定期あげ
0906デフォルトの名無しさん2010/12/22(水) 14:01:28
スレッド作成した後にCloseHandleとかいうので閉じるけど、
あれってスレッド側で閉じてもいいの?
0907デフォルトの名無しさん2010/12/22(水) 14:10:16
ダメ
0908デフォルトの名無しさん2010/12/22(水) 14:10:43
>>907
ダメか・・忙しいところありがとう
0909デフォルトの名無しさん2010/12/22(水) 14:12:41
>>906
http://msdn.microsoft.com/ja-jp/library/cc429605.aspx
キーワードを入れて検索ボタンを押すだけの作業が思いつかないやろうともしない人間はプログラムはやめた方がいい。
向いていない。
0910デフォルトの名無しさん2010/12/22(水) 14:33:06
>>909
>MAPI:詳細については、「」を参照してください。
ひでぇな
0911デフォルトの名無しさん2010/12/22(水) 14:59:28
質問者がハンドルの寿命とスレッドの寿命を混同している前提でなければ
MSDNのCloseHandleの項目だと回答になっていないんじゃないか
0912デフォルトの名無しさん2010/12/22(水) 15:05:35
>>910
明らかに何かが欠落してるとわかるだけマシなとこだろそこは。

>>911
> スレッドオブジェクトを削除するには、最初にスレッドを終了し、
> 次にそのスレッドのすべてのハンドルを閉じなければなりません。

の部分を示したかったんじゃね?
翻訳があってるかどうか微妙だけども。

> To remove a thread object, you must terminate the thread,
> then close all handles to the thread.
0913デフォルトの名無しさん2010/12/22(水) 17:09:55
定期あげ
0914デフォルトの名無しさん2010/12/22(水) 17:53:10
消費税は安定した推移を見せつつ、所得税と法人税が減少しているわけだから
単純に考えて、日本企業の業績が芳しくないのと、正規雇用者が減っているのと給与が上がらないのが主な原因
そしてもう一つ、安定した消費を支えている公務員の存在
○○が売れないとは、公務員や正規雇用者を対象にしたビジネスが前提であり、非正規の存在が無視されている為に起こる
つまり公務員を増やし、正規雇用者を増やし、給与をあげた上で、日本企業の製品やサービスを使い、企業も同じ姿勢を貫く
こうやって巡回させていけば全てが上向く

まずは国民全員を公務員にする為に、日銀法を改正して、日本政府の管理下に置く
円を刷り、生活保護を廃止して、ベーシックインカムを行う
これが第一歩

次に3年間限定で緊急の結婚手当て、妊娠手当て、出産手当て、子供手当てを始めて、20年後を見据えたベビーブームを起こす
同期間に相続税、贈与税の税率を下げて、老人の資産が子孫に回る体制を作る

そして、将来の国家像を構築する為に、旧インフラに縛られている首都圏を改装する
その為に一時的に名古屋へ遷都をして、愛知県を中京都にする
その間、首都圏で22世紀を睨んだ宇宙未来型の都市モデルを創造し、大規模の公共工事を行い、受注は日本企業が行う
航空宇宙未来技術、環境エネルギー、ソフトウェア、観光、農業、林業、水産業、医学工学、軍需産業ありとあらゆる分野の若い研究者に投資を行う

世界日本化計画と称し、日本だけではなく、途上国を中心に日本語を普及させ、ありとあらゆるインフラを日本企業が担う為に
国家に忠誠を尽くす準日本人を育成する
これを30年化計画で進めていく
30年経ったら再び東京に遷都する
0915デフォルトの名無しさん2010/12/22(水) 18:02:21
消
単
そ
0916デフォルトの名無しさん2010/12/22(水) 18:02:50
スレチだし後半はないなー。
0917デフォルトの名無しさん2010/12/22(水) 18:32:10
日本API
0918デフォルトの名無しさん2010/12/22(水) 18:57:34
>>910
MSDNの日本語サイトは見てはいけない
0919デフォルトの名無しさん2010/12/22(水) 19:22:29
Nakaso
0920デフォルトの名無しさん2010/12/22(水) 19:38:39
30年後は日本の首都は実質北京だろう
そのころは日本は実質的に中国の日本自治区レベルだろな
いまでも中国がくしゃみをすると日本は重篤肺炎になる状況だからな
低脳な民の国は依存する大国の言いなりになるだけ
尖閣の件で分ったろ
アメリカの子分から中国の子分になると低脳民なりに決断したんだ

>>918
美国語が分らないんです><
0921デフォルトの名無しさん2010/12/22(水) 19:42:13
なんでこのスレにシナチクが湧いてんだ
0922デフォルトの名無しさん2010/12/22(水) 19:59:25
30年後の日本より10年後のWinAPIを考えようぜ
0923デフォルトの名無しさん2010/12/22(水) 20:23:52
いいなこれ

ttp://userdisk.webry.biglobe.ne.jp/006/690/82/N000/000/000/sob-main.jpg
0924デフォルトの名無しさん2010/12/22(水) 20:40:43
30年後の日本と、10年後のWinAPIのどちらが現実的なのかな?
0925デフォルトの名無しさん2010/12/22(水) 21:07:53
俺の余命より後の話だからどうでもいいや。
0926デフォルトの名無しさん2010/12/22(水) 21:16:47
30年後にはCopyRectExが出来る予定
0927デフォルトの名無しさん2010/12/22(水) 21:28:37
自分で作った関数とせにを呼び出すのではどっちが速い?

中身同じ処理だったとして

0928デフォルトの名無しさん2010/12/22(水) 21:30:25
欧米は珍妙な料理道具が次から次へと出てくるよね
0929デフォルトの名無しさん2010/12/22(水) 21:52:16
>>927
日本語でOK
0930デフォルトの名無しさん2010/12/22(水) 22:14:51
>>926
CopyRectの拡張に30年もかかるのか・・・
0931デフォルトの名無しさん2010/12/22(水) 23:32:14
そろそろCopyCube作らないといけないんじゃないかな?
0932デフォルトの名無しさん2010/12/22(水) 23:37:20
その前にCopyCircleだろ
0933デフォルトの名無しさん2010/12/23(木) 00:09:20
その前にCopyPoint
0934デフォルトの名無しさん2010/12/23(木) 00:17:47
CopyPointsだろ
0935デフォルトの名無しさん2010/12/23(木) 00:23:29
C++スレから移動してきました。

すみません、ミューテックスについて教えてください。

複数スレッドの処理で、下記のようなミューテックスの処理を行ってました。

コンストラクタ
mutex = CreateMutex(NULL, FALSE, NULL);
ReleaseMutex(mutex);


スレッド内処理
ReleaseMutex(mutex);
WaitForSingleObject(mutex, INFINITE);
ReleaseMutex(mutex);
WaitForSingleObject(mutex, INFINITE);

スレッド内処理で最初に無駄なReleaseMutex()をしており、さらに最後にReleaseMutex()をしてなかった為
スレッド間でデッドロックが起こるかと思いきや、問題ありませんでした。
これは再起カウンタが以下の様な動きしているからですか?

ReleaseMutex(mutex); →-1
WaitForSingleObject(mutex, INFINITE);→0
ReleaseMutex(mutex); →-1
WaitForSingleObject(mutex, INFINITE);→0
0936デフォルトの名無しさん2010/12/23(木) 00:28:16
最初のReleaseMutexでハンドルが解放されてる以上、
それ以降の呼び出しは全部エラー。
だからC++スレで「エラーチェックしてるか?」って聞かれたんだろ。
09379352010/12/23(木) 00:35:51
>>936
そうだったのか!!!
すいません、解放失敗以降全てエラーになる事は知りませんでした。
戻り値をチェックしてみます。
ありがとうございましたm(_ _)m
0938デフォルトの名無しさん2010/12/23(木) 00:45:56
解放の意味を理解しているのかかなり不安なんだが
0939デフォルトの名無しさん2010/12/23(木) 00:52:06
なんか日本語が通じてない感じ
09409352010/12/23(木) 01:03:51
>>938-939
すいません、まだ認識が間違ってますか。。。

ReleaseMutex→所有権の解放
WaitForSingleObject→所有権の取得(複数取得可)

>>936さんは所有権の解放に失敗したら、以降の取得は不可能(エラー)となるものである。
と仰ってると認識したのですが、違いますか?
0941デフォルトの名無しさん2010/12/23(木) 01:49:05
>>940
所有権の開放ではなくmutexオブジェクト(ハンドル)の開放。
コンストラクタでReleaseMutex(mutex);しているから、そのmutexオブジェクトはすでに無効になっている。
以降の[スレッド内処理]では、すべて無効なハンドルに対して関数を呼び出していることになる。
無効なハンドルに対するWaitForSingleObject、およびReleaseMutex(mutex);呼び出しは失敗する。

ReleaseMutex が正常に終了(戻り値がTRUEであるか、
WaitForSingleObjectが正常に終了(戻り値がWAIT_FAILED以外)であるか
ちゃんと確認してみろ。
0942デフォルトの名無しさん2010/12/23(木) 01:52:54
解放に失敗するのはそもそもスレッドが所有権を持っていない(解放した)から
だからWaitしない限り何回Release繰り返しても無駄だよねって話
別に失敗したからってMutexが死ぬわけじゃない
あとなんでデッドロックしないのかよくわからん
0943デフォルトの名無しさん2010/12/23(木) 01:57:35
>>941
CloseHandleと混同してね?
0944デフォルトの名無しさん2010/12/23(木) 02:12:23
1スレッド1mutexというオチだったりしてw
0945デフォルトの名無しさん2010/12/23(木) 02:21:49
無名だしな
0946デフォルトの名無しさん2010/12/23(木) 02:24:09
馬鹿が講釈垂れるほど見苦しいものは無い
0947デフォルトの名無しさん2010/12/23(木) 02:47:01
>>935
再起カウンタが0以下になるというのは考えづらいかな。
スレッド内処理というのが実際にはどうなっているのかは知らないが、
最初の ReleaseMutex は無視して、スレッド終了時に自動開放されていると考えれば、

ReleaseMutex(mutex); // 0 -> 0 (SIGNAL)
WaitForSingleObject(mutex, INFINITE); // 0 -> 1
ReleaseMutex(mutex); // 1 -> 0 (SIGNAL)
WaitForSingleObject(mutex, INFINITE); // 0 -> 1
スレッド終了 1 -> 0 (SIGNAL)

となって、Mutexだけなら辻褄は合いそうだが


09489352010/12/23(木) 12:29:11
>>944
省略してしまいましたが、CreateMutexは初回スレッドのコンストラクタのみ行います。
そして最終スレッドのデストラクタでCloseHandleして破棄してます。

なので、1スレッド1ミューテックスではないです。
試しに最初の解放をコメントアウトしたら、2スレッド目が無限待機に陥ったので
スレッド間でのミューテックスは成功してそうです。

>>947
上で書いた様に、最初の解放をコメントアウトするとデッドロックするので
自動解放はしてないっぽいです。

今まで、解放に失敗してもその後の動作には関係がないと思っていたのですが
そうで無さそうなので。。。エラー時に以下の様になった場合は解放未完了になるのか?
という部分を懸念しています。

ReleaseMutex(mutex); // 0→-1
WaitForSingleObject(mutex, INFINITE); // -1→0
ReleaseMutex(mutex); // 0→-1
スレッド内処理終了(再起カウンタ0でないため非シグナル状態?)
0949デフォルトの名無しさん2010/12/23(木) 12:43:01
WaitForSingleObjectを勘違いしてないか?
ミューテックスがシグナル状態になるまで待つ関数だぞ
09509472010/12/23(木) 13:11:49
Mutexを所有した状態でスレッドを終了すると、通常とは異なるシグナル状態になるみたいだ。
WaitForSingleObject() が WAIT_ABANDONED を返していたりしない?
0951デフォルトの名無しさん2010/12/23(木) 13:19:57
WaitForMultipleObjects使えばいけるが
終了前に解放すりゃいい話だろ
0952デフォルトの名無しさん2010/12/23(木) 13:39:12
なにこれひっど〜い
0953デフォルトの名無しさん2010/12/23(木) 14:22:02
>>948
コンストラクタ
mutex = CreateMutex(NULL, FALSE, NULL);
ReleaseMutex(mutex); <=なんで取得してないのにイラネするの?

スレッド内処理
ReleaseMutex(mutex); <= WaitForSingleObjectの前にイラネするん?
WaitForSingleObject(mutex, INFINITE);
ReleaseMutex(mutex); //
0954デフォルトの名無しさん2010/12/23(木) 15:18:31
まだやってんのかw
エラー値見ればいいだけの話だろ。
妄想しなくても、OSはちゃんと教えてくれるよ。
0955デフォルトの名無しさん2010/12/23(木) 15:29:39
質問いいですか?

unsigned _64int型の整数を
fprintf_s( ファイルポインタ,"%I64u ",変数 );
という形式で出力したところ、出力した形式とはまったく違う数字で出力されてしまいました。
テキストとバイナリ、同じ形式でやったのですが、結果は変わりませんでした。

変数が間違っていると思い、定数でやっても変わりませんでした。
_64int型ではなにか違う方法で出力しないといけないのでしょうか?
0956デフォルトの名無しさん2010/12/23(木) 15:30:51
すみません
64intではなく int64です
0957デフォルトの名無しさん2010/12/23(木) 15:36:03
すみません、自己解決しました。
0958デフォルトの名無しさん2010/12/23(木) 16:41:59
何だこの流れ
0959デフォルトの名無しさん2010/12/23(木) 16:46:20
よろしい
さがってなさい
0960デフォルトの名無しさん2010/12/23(木) 17:05:29
定期拳!
0961デフォルトの名無しさん2010/12/23(木) 17:32:48
fprintf_sは api だっけ?
もしかしてただのCライブラリじゃないか?
0962デフォルトの名無しさん2010/12/23(木) 17:42:24
APIの意味を調べて、赤面する事だ。
0963デフォルトの名無しさん2010/12/23(木) 18:29:32
定期あげ
0964デフォルトの名無しさん2010/12/23(木) 21:54:42
srud(>>963);
0965デフォルトの名無しさん2010/12/23(木) 22:12:27
定期あげ
0966デフォルトの名無しさん2010/12/24(金) 00:27:36
クリスマスイブですが、お前らはどうせWin32APIだなwwwww
0967デフォルトの名無しさん2010/12/24(金) 10:12:36
FWPでのフィルタリングで、条件にIPアドレスの範囲を指定することってできない?
範囲の指定をこんなふうにしてみたんだけど

FWPM_FILTER_CONDITION0 Condition;
FWP_RANGE0 Range;
Condition.matchType=FWP_MATCH_RANGE;
Condition.conditionValue.type=FWP_RANGE_TYPE;
Condition.conditionValue.rangeValue=&Range;
Range.valueLow.type=FWP_UINT32;
Range.valueLow.uint32=ntohl(AddressLow);
Range.valueHigh.type=FWP_UINT32;
Range.valueHigh.uint32=ntohl(AddressHigh);

FwpmFilterAdd0の呼び出しは成功するけど、実際にはフィルタリングされない
条件をFWP_MATCH_EQUALにしてFWP_V4_ADDR_MASKで指定すると問題なく動作する
アドレスの範囲を指定したい場合、Calloutを使うしかない?
0968デフォルトの名無しさん2010/12/24(金) 13:08:11
追記
Condition.fieldKey=FWPM_CONDITION_IP_REMOTE_ADDRESS;
としています
FWPM_FILTER0のlayerKeyはFWPM_LAYER_INBOUND(OUTBOUND)_IPPACKET_V4や
FWPM_LAYER_INBOUND(OUTBOUND)_TRANSPORT_V4、FWPM_LAYER_ALE_AUTH_CONNECT_V4を
指定してみたが、どれもフィルタリングされない
あとFWPじゃなくてWFPね
0969デフォルトの名無しさん2010/12/24(金) 23:04:26
定期あげ
0970デフォルトの名無しさん2010/12/24(金) 23:15:31
SetMerryXmas()
0971デフォルトの名無しさん2010/12/24(金) 23:57:19
Destroy(reaju)
0972デフォルトの名無しさん2010/12/25(土) 00:16:41
xmas->Release()
0973デフォルトの名無しさん2010/12/25(土) 00:25:01
santakuro-su->tonakai->release();
santakuro-su->open(purezento);
0974デフォルトの名無しさん2010/12/25(土) 00:32:53
virtual void lover() const;
0975デフォルトの名無しさん2010/12/25(土) 00:45:46
WaitForSingleXmas()
0976デフォルトの名無しさん2010/12/25(土) 00:46:49
>>974
永遠の愛は絵空事でしかなく、ただ虚しさだけ残るか
0977デフォルトの名無しさん2010/12/25(土) 03:32:05
WaitForSingleXmas()
0978デフォルトの名無しさん2010/12/25(土) 03:42:26
DestroyXmas()
0979デフォルトの名無しさん2010/12/25(土) 03:46:45
GetXmasPresent()
0980デフォルトの名無しさん2010/12/25(土) 04:32:19
クリスマスプレゼント欲しい奴って意外といるのか?w
0981デフォルトの名無しさん2010/12/25(土) 04:56:58
HANDLE WINAPI GetXmasPresent()
{
  return INVALID_HANDLE_VALUE ;
}
0982デフォルトの名無しさん2010/12/25(土) 06:29:37
メリクリ ho
0983デフォルトの名無しさん2010/12/25(土) 09:41:28
>>971
レア獣は残しとかなあかん
0984デフォルトの名無しさん2010/12/25(土) 11:39:19
if (IsPresent(L"MonsterHunter")){
0985デフォルトの名無しさん2010/12/25(土) 16:27:07
靴とパンツはいてる女は信用できん
0986デフォルトの名無しさん2010/12/25(土) 16:34:42
GetGirlFriend関数は以前のバージョンとの互換性のために残されています。
新しいアプリケーションではGetBoyFriend関数を使ってください。
0987デフォルトの名無しさん2010/12/25(土) 17:05:18
アッー!!
0988デフォルトの名無しさん2010/12/25(土) 21:15:58
while (!IsPresent(L"MonsterHunter", L"Portable", 3))
{
        Sex();
        GetXmasPresent();
}
0989デフォルトの名無しさん2010/12/25(土) 23:13:07
ほらよ
http://msdn.microsoft.com/ja-jp/library/cc428323.aspx
0990デフォルトの名無しさん2010/12/25(土) 23:15:40
失敗するのか、この関数w
0991デフォルトの名無しさん2010/12/25(土) 23:17:18
そりゃNULLとか渡したら失敗するだろう
0992デフォルトの名無しさん2010/12/25(土) 23:23:16
これだけ頭悪そうな関数だと確認せずに書き込みそうで・・・
0993デフォルトの名無しさん2010/12/25(土) 23:25:37
ぬるぽ
0994デフォルトの名無しさん2010/12/26(日) 00:18:24
CopyRectっ!
0995デフォルトの名無しさん2010/12/26(日) 01:20:19
なんでLPRECTは定義してLPCRECTは定義しないんだ
0996デフォルトの名無しさん2010/12/26(日) 01:49:06
ume
0997デフォルトの名無しさん2010/12/26(日) 04:41:49
梅
0998デフォルトの名無しさん2010/12/26(日) 05:33:37
>>993
そういるルールだからです。
「ぬーやる」バーガーはしってますか?
0999デフォルトの名無しさん2010/12/26(日) 07:11:40
999
1000デフォルトの名無しさん2010/12/26(日) 07:12:21
次に行こうか!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。