- 1 名前:デフォルトの名無しさん [2007/04/18(水) 01:54:51 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 101 名前:99 mailto:sage [2007/04/20(金) 15:35:25 ]
- >>100
ありがとうございます。 されないです。 最小化して標準に戻すのでもダメです。 WM_PAINTが来てない可能性すらあるので、 そこらへんから実験してみます。
- 102 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:22:57 ]
- それはあれか、全く同じEXEを9xとXPで動かしてるのか?
>WM_PAINTが来てない可能性すらあるので、 ネェヨwwwww
- 103 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:29:05 ]
- 子ウインドウは動かしただけでは再描画されなくても正常だが
WS_EX_LAYERED付なら親でも
- 104 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:34:47 ]
- そういえばレイヤードウィンドウなんてありましたねぇ
全然必要性を感じないから使ったこと無いですが
- 105 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:39:05 ]
- レイヤードウィンドウは雑誌やスクリーンショットで見る分にはかっこいいが
実際に使ってみると使いにくくてしょうがない
- 106 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:42:11 ]
- >>95
ありがとうございますstrtok確認しました >>96 >\r\nを\0\0に書き換えていく このやり方で行きます目から鱗です こういうテクニックって本に書いてあるんでしょうか? ウェブでも本でも見たことない・・
- 107 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:51:04 ]
- >>105
完全不透明のレイヤードウィンドウもつくれるよ。 見た目は普通のウィンドウと変わらないけど、WM_PAINTは激減する。
- 108 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:05:24 ]
- 外部プロセスのCPU使用率を強制的に制限する方法を探しています。
最初に、CreteProcessのPROCESS_INFORMATIONから得られるhThreadに対して SuspendThread/ResumeThreadを試しましたが、 複数スレッドがある場合に対応できない様です。 次にCreateToolhelp32Snapshotによるプロセス内のThreadの列挙で SuspendThread/ResumeThreadをやろうとしましたが、 Thread32First/Thread32Nextで得られるThreadIDに対し、 OpenThreadでHandleへ変換しようとすると失敗してしまいました。 また、JobObjectの関連付けでJOB_OBJECT_LIMIT_JOB_TIMEや IDLE_PRIORITY_CLASSで時間制限を掛けてみましたが、このオプションは 設定時間にプロセスが終わってしまうだけみたいなので目的と違う様です。 使用率制限を行うツールとして既にBESという物がありますが、 あれはどうやっているのでしょうか?
- 109 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:07:32 ]
- すいません、BESはソースが公開されていますね。
調べてみます…。
- 110 名前:99 mailto:sage [2007/04/20(金) 17:12:42 ]
- >>102
はい。基本は9xで作っているんですけど、 動作確認のためxpで動かそうと思いました。 >>103 再描画されて欲しいのは、下にある親ウィンドウの方です。 ただ、最小化→標準化とすると、子ウィンドウの方も再描画されません。 WS_EX_LAYEREDについても調べてみます。
- 111 名前:108 mailto:sage [2007/04/20(金) 17:27:28 ]
- できました。Thread32First/Thread32Nextの方法でよかった様です。
- 112 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:37:56 ]
- 画像を扱うのにBMP用のAPIは見つかったのですが、
PNG用のAPIは、外部ライブラリを探すしかないのでしょうか? OSはXPです。
- 113 名前:デフォルトの名無しさん [2007/04/20(金) 17:40:00 ]
- GDI+でも検索汁
- 114 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:41:03 ]
- つ gdiplus
- 115 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:45:29 ]
- StretchDIBitsって出力先がメモリDCや拡張メタファイルでもPNGを出力できるんだろうか
- 116 名前:112 mailto:sage [2007/04/20(金) 17:50:23 ]
- ありがとうございます。勉強してきます。
- 117 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:07:55 ]
- WM_CREATEメッセージ中に、子ウインドウのレイアウトに従い
自身のサイズを変更したいのですが、CREATESTRUCTを修正しても MoveWindow/SetWindowPosでも変更できないようです 何かいい方法はないでしょうか?
- 118 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:10:34 ]
- サイズの変更をポスト
- 119 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:15:05 ]
- >MoveWindow/SetWindowPosでも変更できないようです
可能性 ・自分の WM_SIZE ハンドラで、引数と無関係の値にサイズ変更している ・自分の親が 親のWM_SIZEのタイミングで 自分をMoveWindowしやがってる
- 120 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:15:36 ]
- あれ?ウィンドウ生成時にもWM_SIZEが発行されるんじゃなかったっけ?
- 121 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:26:35 BE:124224588-2BP(222)]
- >WM_CREATEメッセージ中に、
リソースインダイレクトを使っているというオチではなかろうな。
- 122 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:23:11 ]
- ウィンドウを作らずに通知エリアの追加は出来ないの
- 123 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:25:15 ]
- 通知エリアって?
- 124 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:34:20 BE:62112184-2BP(222)]
- >>122
できたとして、どうやってメッセージを受け取るつもりだ?
- 125 名前:97 mailto:sage [2007/04/20(金) 19:43:23 ]
- >>98
ありがとうございます。 その通りにやったら、できました。
- 126 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:45:04 ]
- >>124
Hook
- 127 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:46:33 BE:58230656-2BP(222)]
- >>126
「通知エリアのメッセージ」と分かっているのにフックしなければならない理由があるの?
- 128 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:59:01 ]
- 北がキチガイなのは世界中公認の周知の事実だが
南は中身は同じなのに私達先進国ですという皮をかぶってるのがウザス
- 129 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 20:02:32 ]
- 同意するがスレ違いだ
- 130 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:09:53 ]
- >>106
さぁねぇ プログラムの本なんて数多あるから、似たようなのが載ってる本ももしかしたらあるかもしれないな 俺はとりあえず見たこと無いが ランゲージリファレンス系の本しか持ってないしな ていうか今回のくらいのは、自分で思いつくくらいにはならんといかんのじゃないかと思うよ
- 131 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:12:23 ]
- >>96
>行開始位置のポインタをとりつつ\r\nを\0\0に書き換えていく これポインタ取るのはわかるけど、書き換えは出来ないんじゃね? バッファってchar*だから一旦配列なり、mallocで取った領域なりに バッファ丸ごとコピーして、そこを書き換えないと
- 132 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:18:26 ]
- ファイルマpp(ry
- 133 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:21:50 ]
- >>131
constでもリテラルでも無い、普通にメモリ上に動的確保したバッファ内の値が書き換えできないと申すか?w
- 134 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:25:15 ]
- >>131
おまえの言ってるバッファはいったい何のバッファだ? ReadFileに渡すようなバッファがWriteAccess不能なメモリ領域だと言うのか?w
- 135 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:27:54 ]
- バッファの語源はやっぱ水牛?
- 136 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:28:26 ]
- シリアル通信について質問させて下さい。
通信がうまくできません。 以下は流れです。 CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); GetCommState(); DCBパラメータを書き換え SetCommState(); GetCommTimeouts(); タイムアウトパラメータを変更 SetCommTimeouts(); WriteFile(); // 1byteのコマンド送信準備 FlushFileBuffers(); // 送信 ReadFile(); // 1byte受信(受信できるまで10回繰り返し) 0x0Fを送れば、0xF0が返ってくるはずなのですが 何も返ってこなくて。手順的な見落としなどがあれば ご指摘頂けると幸いです。 秋月のTDS01Vというセンサーキットを自前のプログラムで 読んでみようと始めたのですが、最初から躓きました。 センサーの動作は添付のプログラムで正常動作を確認しています。 全てのAPIからはエラーは返ってきていません。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:34:21 ]
- どんな引数を指定しているかも
DCBの設定内容も隠してどこがいけない?と聞かれてもな・・・
- 138 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:43:23 ]
- >>137
申し訳ない、行数制限に引っかかったので どこを削ろうかなと。 DCBはGetした後は、キットのドキュメントにある パラメータをセットしてるつもりです。 (他はGet時のまま) m_CommDCB.BaudRate = CBR_9600; // 9600bps m_CommDCB.fBinary = TRUE; // bynary mode:always TRUE m_CommDCB.fParity = FALSE; // parity no check m_CommDCB.ByteSize = 8; // byte size m_CommDCB.Parity = NOPARITY; // no parity m_CommDCB.StopBits = ONESTOPBIT;// 1 stop bit タイムアウトはWeb上でみつかったサンプルの値を引っ張って 来ています。 m_CommTimeouts.ReadIntervalTimeout = 100; m_CommTimeouts.ReadTotalTimeoutMultiplier = 10; m_CommTimeouts.ReadTotalTimeoutConstant = 500; m_CommTimeouts.WriteTotalTimeoutMultiplier = 10; m_CommTimeouts.WriteTotalTimeoutConstant = 500; bRtn = WriteFile( m_hCommHandle, m_pTxBuff, 1, &dwCount, NULL ); FlushFileBuffers( m_hCommHandle ); dwCount = 0; for ( int i = 0; i < 10 && dwCount == 0; i++ ) { bRtn = ReadFile( m_hCommHandle, m_pRxBuff, 1, &dwCount, NULL ); // 戻り値チェックしながらリトライループ } ここで、for文が10回回って出てきてしまいます。dwCountは0のまま
- 139 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:52:46 ]
- bRtnは確認したの?
- 140 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:56:33 ]
- >>139
レスありがとうです。 上のソースは抽出でして、全てのAPIの戻り値は チェックしていて、エラーが返ってきていないことは 確認しています。
- 141 名前:デフォルトの名無しさん [2007/04/21(土) 00:51:40 ]
- >>140はCOMポートを増設してクロスケーブルを買ってくるべきだな。
で、ケーブルで首ry
- 142 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 15:04:40 ]
- タブコントロールをEnableWindow()で無効にしても、
タブの文字が淡色表示にならないのだがそういう仕様?
- 143 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 15:09:15 ]
- そう
- 144 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:45:17 ]
- GRAYEDにしなさい?
- 145 名前:デフォルトの名無しさん [2007/04/21(土) 19:34:52 ]
- >>141
ワロタw まさに泣いて馬超を斬るを地でいった訳かw
- 146 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:07:28 ]
- CreateWindowのEDITで、文字を入力してENTERを押したときに動作を設定したいのですが、
どうすればいいのでしょうか?EDITにフォーカスがないときには出来るのですが、 EDITにフォーカスがあるときは改行されてしまいます。
- 147 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:16:09 ]
- サブクラス化
- 148 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:26:13 ]
- >>146
エディットコントロールをマルチラインに設定するのをやめる。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:32:12 ]
- >>148
メッセンジャーみたいな感じで、Shift(Ctrlだったかも)+Enterで改行、 通常のEnterで別の動作みたいな感じにしたいのですが、 マルチライン設定だと無理なのでしょうか?
- 150 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:32:44 ]
- >>149
>>147 それが理解できないならまだ早いということ
- 151 名前:デフォルトの名無しさん [2007/04/22(日) 00:31:32 ]
- XP Homeでファイルのアクセスをプログラム側で検出することは出来ますか?
Proならファイルの監査が利用できるですが。
- 152 名前:デフォルトの名無しさん [2007/04/22(日) 02:03:44 ]
- >>151
おまえのエクスプローラーはどうなってる?それが答えだ。
- 153 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 02:21:35 ]
- フォルダの変更は監視できたと思うけど。
- 154 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 02:22:31 ]
- >>151
理屈から考えて出来るはず。
- 155 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 06:10:46 ]
- 逆にpro側の監査機能が良くわからないがfilemonのようなことしたいのかな?
- 156 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 10:12:32 ]
- ReadDirectoryChangesW
FILE_NOTIFY_CHANGE_LAST_ACCESS 監視中のディレクトリ、またはサブツリーで前回のファイルアクセス日時が変更されると、 変更通知の待機操作から制御が返ります。
- 157 名前:151 mailto:sage [2007/04/22(日) 11:11:30 ]
- >>152-156
レスありがとうです。 ReadDirectoryChangesWなどでは、なんらかの更新が発生しないとダメな気がします。 (今から確認します) 簡単に試してみると、メモ帳でテキストファイルを開いても"アクセス日時"が変わらないような。。。
- 158 名前:151 mailto:sage [2007/04/22(日) 11:14:24 ]
- 連投申し訳ないです。
>>155 そうですね。filemonの簡易版(最低限アクセスがあったことをトリガーにしたい)のです。
- 159 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:17:44 ]
- 監査かけてイベントビューアからゲット
- 160 名前:デフォルトの名無しさん [2007/04/22(日) 11:20:19 ]
- 仮想リストビューでカラム幅を調整する方法を教えてください。
リストビューは詳細表示。ダイアログは使わずにCreateWindowで作ってます。 普通のリストビューを使っていたときはヘッダとデータを全部作り終わった後に カラム数分 ListView_SetColumnWidth(ハンドル, インデックス, LVSCW_AUTOSIZE) をしていました。 仮想リストビューに変更してLVN_GETDISPINFOのときに ListView_SetColumnWidth(ハンドル, pDispInfo->item.iSubItem, LVSCW_AUTOSIZE); をやったら固まりました。 環境:VC6, SDK
- 161 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:20:59 ]
- >>159
最初はそうしようと思ったんだけど、XP homeって監査がないんです。
- 162 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:39:44 ]
- >>160
LVSCW_AUTOSIZEするためにはその列の一番長い文字列の幅が必要だから そのときにLVN_GETDISPINFOが呼ばれて無限ループになってるんじゃね?
- 163 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:55:51 ]
- ファイルアクセスをHOOK
- 164 名前:160 mailto:sage [2007/04/22(日) 12:02:08 ]
- LVSCW_AUTOSIZEは使えなさそうですね。
他のタイミングで幅調整するしかないか。
- 165 名前:151 [2007/04/22(日) 12:09:48 ]
- >>163
えっと、それはSetWindowsHookExを利用したHOOK機能のお話しでしょうか。 調べ切れていないかもしれませんが、ファイルアクセスに関するものは見つかりませんでした。 それとも ruffnex.oc.to/kenji/text/api_hook/ のような、概念的なフックの話で、代替DLLを用意して 起動しているプロセス全てのエントリポイントを塗り替えるお話でしょうか。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:23:31 ]
- explorer.exeだけならCreateProcess系のフックで何とかなると思うけど
Windows全体ってことになるとカーネルモードのお仕事になる気がする CreateProcessにしても思いつきで言ってるうえ、あまりにもスマートじゃないが
- 167 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:31:53 ]
- って
ファイルに触る=>CreateProcess=>ファイルパスの取得 が100%成り立つって前提じゃないとだからたぶん無理か スマソ
- 168 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:39:27 ]
- 何らかの変更が加えられたときだけでいいならFindFirstChangeNotificationなどが使えるような気がする
- 169 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:42:40 ]
- >>168
>>157-158を見てそういう話が出てくるか普通w で、その上で、ファイルの監視なんて変更が加えられた時でいいと思うんだがな 開かれたからって、なんかあるか?
- 170 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:47:20 ]
- >>142 だけど、どなたか淡色表示する方法教えてください。
なるべく簡単な方法で具体的だと助かります。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:37:59 ]
- オーナードロー
- 172 名前:151 mailto:sage [2007/04/22(日) 13:47:32 ]
- >>169
特定ファイルへのアクセスのロギングがしたいのです。。。 やっぱり難しそうですね。
- 173 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:09:59 ]
- >>151
Home EditionでもUIがないだけで監査の機能自体は存在する。 したがってこのスレ的な回答は「Audit Policy関数を駆使して何とかしろ」 msdn2.microsoft.com/en-us/library/aa375742.aspx
- 174 名前:151 mailto:sage [2007/04/22(日) 14:30:52 ]
- >>173
>UIがないだけで監査の機能自体は存在する そうだったんだ! 無知でした。 解決できそうです。ありがとうございます!
- 175 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:31:06 ]
- ロードランナー
- 176 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:59:39 ]
- 初期のNTからある物をわざわざ外すわけないじゃん
- 177 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 15:02:18 ]
- ですよねー^^
- 178 名前:151 mailto:sage [2007/04/22(日) 15:46:42 ]
- うーん、LoadLibraryでadvapi32.dllを取り込んで
GetProcAddressしてAuditFreeとかAuditSetSystemPolicyを見つけようとしても null返してくる。 GetLastErrorは"指定したプロシージャが見つからない(127)"でした。 >>173のページの説明でもclientは"Requires Windows Vista."ってなっていて やっぱりXP homeでは駄目なんでしょうか。。。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:14:55 ]
- >>178
すまん、Vistaでしか確認してなかった。XP以前だとこのあたり使うのかな AddAuditAccessAce (WinNT 3.1) AddAuditAccessAceEx (Win2k) AddAuditAccessObjectAce (Win2k)
- 180 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:40:38 ]
- >>179
ご丁寧にありがとうございます! GetProcAddressで確認できました。今からヘルプ読みます。
- 181 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:19:45 ]
- >>180
> GetProcAddressで確認できました。 DependencyWalkerで確認したほうが手っ取り早くね?
- 182 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:43:28 ]
- >>181
VCならな
- 183 名前:デフォルトの名無しさん [2007/04/22(日) 19:47:55 ]
- [Ctrl]+[A]とかをシミュレートしたいのですがどうやるんでしょうか?
SendMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0); SendMessage(hWnd, WM_KEYDOWN, 'V', 0);
- 184 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:56:43 ]
- >>183
SendInputかkeybd_event
- 185 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:57:57 ]
- >>182
VCである必要はないと思うが
- 186 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:00:42 ]
- VC買わないと手に入らないと思ってるんじゃね? Platform SDKに付いてる。
- 187 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:05:15 ]
- PSDKについてくるし
ttp://www.dependencywalker.com/ で単独で配布しとるぞ。
- 188 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:07:35 ]
- 知らんヤツの方が多いんじゃね?
- 189 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:16:56 ]
- ウィンドーを作らないプログラムの場合
タスクバーの右端にアイコンを追加することは出来ますか?
- 190 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:25:10 ]
- >>183
WM_KEYDOWNはSendMessageで送っては駄目。 PostMessageを使う必要がある。 詳しいことは、PostMessageとSendMessageの違いと TranslateMessageの働きを勉強してくれ。
- 191 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:41:47 ]
- >>189
出来る。ただしメッセージは受け取れない。
- 192 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:42:55 ]
- >>189
確かできると思うけど、非表示のウィンドウでいいから用意しとかないとイベントを受け取れんぞ。
- 193 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:44:05 ]
- >>189
非表示でウインドウを作ればいいだろ。 知恵が足りない。
- 194 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:52:21 ]
- かぶりすぎ
- 195 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:11:09 ]
- 98、Me、XPで動いて欲しいソフトを作っているんですけど、
始めにGetVersionExのdwMajorVersionが 10、90、1かであるかチェックすれば大丈夫でしょうか。 dwMajorVersionが同じでもdwPlatformIdが違うとかはないでしょうか。
- 196 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:18:50 ]
- OSVERSIONINFO
msdn2.microsoft.com/en-us/library/ms724834.aspx
- 197 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:19:33 ]
- > dwMajorVersionが
> 10、90、1かであるかチェックすれば大丈夫でしょうか Windows の Version 90 か… >>195は未来を進んでるなぁー それはそうと↓を良く見れ。 msdn2.microsoft.com/en-us/library/ms724834.aspx
- 198 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:20:50 ]
- リロードしたらほんとうにかぶりすぎてて吹いた
- 199 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:21:29 ]
- >>195
user32.dll,kernel32.dllあたりのリンクの仕方次第では、 そんなんチェックする前にDLLのバージョン不整合で落ちるぞ。
- 200 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:29:03 ]
- 別次元の話だけど、俺ならまずWINVERと_WIN32_WINDOWSを0x0410にする。
それはともかく、2003/Vista及びそれ以降で動かせるようにするつもりはないのか? まあ、そのつもりがなくても互換性モードをオンにすれば動かされるだろうが。
- 201 名前:195 mailto:sage [2007/04/22(日) 23:39:48 ]
- ありがとうございます。
>>196 日本語のは見ていたんですけど、さっぱりだったもので。 >>197 90の使い方間違っていますか?下位をチェックするとかですかね。 飛びぬけて数字が大きいので違和感はあったんですけど。 >>199 VC2005で作られたソフトを実行すると、始めに**dllが 見つからないとか出て、実行できないのがありますがそれですかね。 それなら危険がない?と思うので逆にいいんですけど。 >>200 PCを持っているなら、もちろん動かせるようにしたいんですけど、 98、Me、XPしかないので、チェックのしようがないです。
|

|