Win32API質問箱 Build121 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/08/04(火) 22:34:50.61ID:tKzV+rUu■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build120
http://peace.2ch.net/test/read.cgi/tech/1428570962/
0002デフォルトの名無しさん
2015/08/05(水) 14:10:04.50ID:OyFAH2W/0003デフォルトの名無しさん
2015/08/05(水) 14:26:46.22ID:e4gAPQI90004デフォルトの名無しさん
2015/08/05(水) 14:28:06.28ID:e4gAPQI9地域と言語は別だよね
0005デフォルトの名無しさん
2015/08/05(水) 15:37:41.50ID:MnmW9vnG,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0006デフォルトの名無しさん
2015/08/06(木) 15:23:29.70ID:c3bf75DVテストモードは未署名のドライバでも動かせるのではないのですか
未署名ドライバを署名無しのまま動作させるAPIを教えろください
0007デフォルトの名無しさん
2015/08/06(木) 16:54:34.81ID:/1pEP5C40009デフォルトの名無しさん
2015/08/06(木) 19:14:01.34ID:79+p9Mbthttps://msdn.microsoft.com/ja-jp/library/windows/desktop/ms632647(v=vs.85).aspx
このメッセージを受け取れば、lParamで変更しようとしているウィンドウサイズを取得できますが、
そのウィンドウサイズでのクライアントサイズを取得したい場合、
GetClientRectは使えず(ウィンドウサイズ変更はまだ完了していないため、現在のクライアント領域が返ってくる)、
現状はGetSystemMetricsでクライアント領域周りの枠などのサイズを取得して
変更しようとしているウィンドウサイズから引いて算出しています。
しかし、この方法だと、ウィンドウスタイルを変えたときに、併せて変更せねばならず、
保守性の点では好ましくありません。
ウィンドウスタイルごとに条件分岐すれば対応できるものの、あまり美しくありません。
これら以外の方法で、スマートに変更しようとしているウィンドウサイズにおけるクライアント領域を
取得する方法があればご教示ください。
よろしくお願いします。
0010デフォルトの名無しさん
2015/08/06(木) 19:23:52.88ID:YtIxgi9m2.AdjustWindowRectを呼んで、差分を計算する
そんで、WM_SIZINGのlParamから逆算するとかどうでしょうか
でも、スクロールバーがある場合は面倒なことになりそう
0011デフォルトの名無しさん
2015/08/06(木) 19:30:52.64ID:oUBwSLmn確かWindows98あたりでサイズ変更中に描画を更新するオプションができて
WM_SIZINGのように使えるようになった
0012デフォルトの名無しさん
2015/08/06(木) 21:35:17.53ID:SdwUOFG40013片山博文MZ ◆T6xkBnTXz7B0
2015/08/07(金) 15:57:03.53ID:UeH7dSGn↑何だこれ?
0014デフォルトの名無しさん
2015/08/07(金) 18:20:35.84ID:5Zt0WqrR00159
2015/08/07(金) 23:44:31.50ID:AvOHJMxeその方法でいけました!
これでウィンドウスタイルに依存せずにWM_SIZINGでクライアント領域を取得できるようになりました。
ありがとうございました!
>>11
やりたいことはクライアント領域のアスペクト比を固定する処理で、
最初はWM_SIZEでやってたんですが、
何だかぎこちない動きになってしまったので、調べていたらWM_SIZINGの存在を知り、
そちらでやると滑らかな動きになったのでWM_SIZINGで何とかしたいと思った次第です。
>>12
ご助言ありがとうございます。
今回は>>10さんの方法で対処できましたが、
教えていただいたWM_NCCALCSIZEを使う方法についても調べてみます。
0016デフォルトの名無しさん
2015/08/09(日) 21:51:12.54ID:nWjgkEEO8ビットをそれぞれ1論理コアに対応させて使う論理コアを指定しますが、
その時に1と2が1つの物理コアに対応してるのでしょうか?
それとも1と5が1つの物理コアに対応してるのでしょうか?
0017デフォルトの名無しさん
2015/08/09(日) 22:50:57.54ID:nd2w8Mp+ゲームで物理4コアのi5が好まれる理由もそれ
0018デフォルトの名無しさん
2015/08/09(日) 23:49:21.06ID:nWjgkEEOちょっと回答の意味がわからないです
どのビットがどの物理コアに割り当てられるかは変動的で決まってない、ということですか?
i7のスレッド2倍化は1つの物理コアの余ってる時間に割り込ませるものなので、
確実に1つの物理コアを空けたいんです。なので同じ2つの論理コアを不使用にさせるにしても、
8ビットあるうち例えば1|2を休ませるか、1|16を休ませるかの、どっちかが1つの物理コアを確実に休ませる指定になると思うんです
(ビット1と2がセットで1物理コア、またはビット1と5がセットで1物理コアとなっているかのどっちかだと想像してます)
その割り当てが知りたいんです
熱対策や故障コアのために1つの物理コアを確実に開けたいんだと読み替えてもらっても結構です
0019デフォルトの名無しさん
2015/08/10(月) 00:56:39.57ID:sjbJ+sY3(俺は>>17氏ではないが)
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms686223
のコメントには、以下の3通りの主張がされている(ように思われる)
1. >>16の後者だ(…と言う前提で書いてあるMSの記事がある)
2. いや全く当てにしてはならない
3. BIOSで事実上>>16の前者に設定されてる
ひとまずご自身で内容を吟味されたし。
0020デフォルトの名無しさん
2015/08/10(月) 01:25:26.47ID:Yz/DBb/rを ON にしたときどの仮想プロセッサがどの物理プロセッサに対応付けられているのか気になって調べた
ところ 1, 3 が一つの物理プロセッサ、2, 4 がもう一つの物理プロセッサに対応してました。
比較的重いプログラムを2つ走らせ、タスクマネージャでアフィニティーマスクの設定を変えながら
ファンコントローラーの温度計測値で物理プロセッサの温度を読み判断しました。
ただ、こういうのは >>19 の 2 のように、はっきり決められた事ではないんじゃないかなと思ってます。
0021デフォルトの名無しさん
2015/08/10(月) 05:14:15.39ID:joKVIITR0022デフォルトの名無しさん
2015/08/10(月) 12:40:35.44ID:a4ap/1LIAPEだから仕方ない
0023デフォルトの名無しさん
2015/08/10(月) 15:31:07.76ID:Vh7AZwN0親プロセスは自プロセスを呼び出したら即終了してしまいます。
なので、Process32First()などで情報を取得しようにもその時には列挙されません。
別の監視プロセスを用意するなりの対処法はあるでしょうが、自プロセス
だけで親プロセスを知る方法はありませんか?
0024デフォルトの名無しさん
2015/08/10(月) 15:55:46.59ID:5q1c3acf0025デフォルトの名無しさん
2015/08/10(月) 16:36:29.46ID:Vh7AZwN0前提条件として、親プロセスの修正は不可能です。
0026デフォルトの名無しさん
2015/08/10(月) 16:52:54.44ID:HDdiOC7r0027デフォルトの名無しさん
2015/08/10(月) 16:55:45.28ID:5q1c3acf親プロセスの定義は?
0028デフォルトの名無しさん
2015/08/10(月) 20:07:24.73ID:8ijckzev0029デフォルトの名無しさん
2015/08/10(月) 21:36:23.15ID:65tjAOy90030デフォルトの名無しさん
2015/08/10(月) 21:39:02.42ID:/eMcOwxL質問箱と尻拭い相談所はちげーぞ
てめえのケツはてめえで拭け
0031デフォルトの名無しさん
2015/08/10(月) 21:49:23.32ID:k4VnlTc/( ゚д゚ ) ガタッ
.r ヾ
__l_l / ̄ ̄ ̄/_
\/ /
0032デフォルトの名無しさん
2015/08/10(月) 21:57:46.69ID:joKVIITRウィンドウクラスで検索すれば特定できるかも知れない
0033デフォルトの名無しさん
2015/08/10(月) 22:35:38.71ID:Vh7AZwN0インストーラーから起動されたプロセスからインストーラーを特定したかったんです。
フルスキャンする訳にも行かないし。
Process32First()とか使ってフルパスを得るところまで作って、インストーラーが
終了していることに気付いた次第で代替案を探していました。
ここまで詳しい経緯は長すぎ産業でOKと思ったので省略してました。
無理そうですね。
どうもありがとうございました。
0034デフォルトの名無しさん
2015/08/10(月) 23:24:56.99ID:oSHGrBYaWindows VISTA環境で
「PEP K32GetProcessMemoryInfo が
DLL KERNEL32.dll から見つかりませんでした」と表示されました
いろいろ調べた結果、WIN7以降とは異なり
VISTAのkernel32.dll内部には、K32GetProcessMemoryInfoは存在せず
その代わり、旧来のpsapi.dll内部に、GetProcessMemoryInfoがあると分かりました
そこでpsapi.dllで代用するため、以下の式を追加したいのですが、その先が分かりません
#ifndef PSAPI_VERSION
#define PSAPI_VERSION 1
#pragma comment (lib, “PSAPI.Lib”)
#else
#pragma message (“defined PSAPI_VERSION *************”)
#endif
以上の式をexeファイルに追加するにはどうすればいいのでしょうか
単純にバイナリエディタで開いただけでは無意味な英数字が並んでいるだけでした
よろしくお願いします
0035デフォルトの名無しさん
2015/08/10(月) 23:34:24.57ID:5q1c3acf他人のプログラムなら改竄するな
0036デフォルトの名無しさん
2015/08/10(月) 23:44:38.23ID:AMzePwd70037デフォルトの名無しさん
2015/08/10(月) 23:52:40.03ID:4jBvfEp+0038デフォルトの名無しさん
2015/08/11(火) 07:35:15.78ID:LfA/skDIAPIフックは?
0039デフォルトの名無しさん
2015/08/11(火) 09:56:56.39ID:sbfi/bwK親プロセスが死んでいる前提なら無理。親プロセスIDしか情報が無い上にそのIDすら親の死亡時に付け替えられる。
0040デフォルトの名無しさん
2015/08/11(火) 14:59:02.28ID:dsDvvWMK実行アプリの履歴がレジストリかどこかに残ってないの?
0041デフォルトの名無しさん
2015/08/11(火) 15:36:53.18ID:HguuZcyiあれも理論上は回避可能ということか
解決策としては
�@exeにpsapi.dllのAPIを使用するよう指定ソースを組みこむ
�AVISTA用の拡張カーネルを作成して、kernel32.dllにK32GetProcessMemoryInfoを追加する
いつかXPやVISTAにも某黒翼猫氏のような救世主が現れて、拡張カーネルが用意されるのかしら
0042デフォルトの名無しさん
2015/08/12(水) 23:53:20.47ID:G8qcToBK0043デフォルトの名無しさん
2015/08/14(金) 07:54:19.40ID:vjnCwLdgただでさえインストーラは環境依存のクレーム地獄になりがちなのに
おかしなことをするんじゃない
>>34
きさまぷろぐらまじゃないな
帰れ
>>41
>救世主が現れて、拡張カーネルが用意されるのかしら
Windows Update サーバーを乗っ取ることが前提かな
よし全機撃墜
0044デフォルトの名無しさん
2015/08/14(金) 11:01:39.44ID:IL9iPg3p0045デフォルトの名無しさん
2015/08/14(金) 11:03:06.69ID:2p3m0KlY0046デフォルトの名無しさん
2015/08/14(金) 11:27:26.86ID:WAFSmjQt0047デフォルトの名無しさん
2015/08/14(金) 13:17:55.88ID:Q/AtP1Be0048片山博文MZ ◆T6xkBnTXz7B0
2015/08/14(金) 21:49:09.41ID:qMkXaiUF0049デフォルトの名無しさん
2015/08/14(金) 22:14:26.57ID:2p3m0KlY0050デフォルトの名無しさん
2015/08/14(金) 22:31:22.18ID:WAFSmjQt0051デフォルトの名無しさん
2015/08/14(金) 22:35:47.25ID:qMkXaiUFはい、減点。
0052デフォルトの名無しさん
2015/08/14(金) 23:04:18.82ID:2p3m0KlYはい、減点。つーか0点。
0053デフォルトの名無しさん
2015/08/15(土) 02:12:39.84ID:Krwjugvl0054デフォルトの名無しさん
2015/08/15(土) 04:44:29.63ID:Yk3bSSFSはい、減点。
0055デフォルトの名無しさん
2015/08/15(土) 07:15:55.06ID:7sJYyU2XAPIフックする過程でIAT云々はさわるだろうけど
実行ファイルを再構築なんてできたらSAOの世界じゃね
0056デフォルトの名無しさん
2015/08/15(土) 08:04:09.11ID:lGrRobx20057デフォルトの名無しさん
2015/08/15(土) 08:25:24.67ID:SxlpnIr40059デフォルトの名無しさん
2015/08/18(火) 19:00:36.45ID:eHhh5JxoMIT
.
0060デフォルトの名無しさん
2015/08/18(火) 21:51:06.26ID:LehTl7m4SetInputScope()でIME設定をして、IME問い合わせGetInputScope()?があってもいいと思いますが
Win8では見当たりません、
TF_GetInputScope()があったのですが使えるのか使えないのか…。
どなたか知っている方ヒントだけでも教えて下さい!
0061デフォルトの名無しさん
2015/08/21(金) 10:27:50.79ID:v385Kh+A0062デフォルトの名無しさん
2015/08/21(金) 10:45:39.38ID:c/THd06T0063デフォルトの名無しさん
2015/08/21(金) 17:48:25.85ID:NHu7az4Chttp://zahyou.6.ql.bz/cgame/
↑のサイトを参考に簡単なゲームをつくってみたのですが
効果音を鳴らすとそれまで流れていたBGMが少し止まってしまいます。
BGMと効果音を止まることなく流すにはどうすればいいでしょうか?
使用している関数はmciSendCommandです
0064デフォルトの名無しさん
2015/08/21(金) 18:03:56.39ID:106+9rwN0065デフォルトの名無しさん
2015/08/21(金) 18:11:32.53ID:c/THd06T同期・非同期
0066デフォルトの名無しさん
2015/08/21(金) 18:12:03.16ID:106+9rwN0067デフォルトの名無しさん
2015/08/21(金) 18:12:28.78ID:106+9rwN0068デフォルトの名無しさん
2015/08/21(金) 21:00:41.93ID:Tu1fJmAa0069デフォルトの名無しさん
2015/08/21(金) 21:04:35.93ID:x7vlwrmr0070デフォルトの名無しさん
2015/08/21(金) 21:15:40.67ID:AXgC1r2C0071デフォルトの名無しさん
2015/08/22(土) 03:43:30.96ID:R1h6gxCt0072デフォルトの名無しさん
2015/08/22(土) 08:20:07.85ID:cPJQ97tL小児用バファリン使え
0073デフォルトの名無しさん
2015/08/22(土) 09:44:24.66ID:OcPmzwVT0074デフォルトの名無しさん
2015/08/22(土) 10:06:15.94ID:fLuaARar効果音をwaveoutやmidioutにしたところBGMに支障なく流すことができました。
本当にありがとうございます。
0075デフォルトの名無しさん
2015/08/27(木) 12:14:42.27ID:RnCy/tzbwindowsAPIを覚えたいんですが、どういうアプリを作りながら覚えたらいいでしょうか?
0076デフォルトの名無しさん
2015/08/27(木) 12:21:31.54ID:Eaj+az2t0077デフォルトの名無しさん
2015/08/27(木) 13:10:33.61ID:0465F1pc使うならCくらいは読めて書けるようにならないと
0078デフォルトの名無しさん
2015/08/27(木) 13:35:56.67ID:RnCy/tzbCの読み書きはある程度はできます
windowsAPIを使えるようになるまですごい時間がかかりそうで・・・
何か作りながら覚えたいんですがむずかしいでしょうか?
0079デフォルトの名無しさん
2015/08/27(木) 13:43:02.13ID:Eaj+az2thttps://msdn.microsoft.com/ja-jp/library/windows/desktop/ff381409(v=vs.85).aspx
0080デフォルトの名無しさん
2015/08/27(木) 13:43:17.06ID:K9LHu2e1自分が過去につくったC#アプリをWinAPIだけで再現してみたら?
0081デフォルトの名無しさん
2015/08/27(木) 19:00:26.66ID:tpdP6kqy0083デフォルトの名無しさん
2015/08/29(土) 01:24:22.96ID:rZ+W6Zab作りながら覚えるなら簡単なアプリを作ればいいじゃん
ありきたりだけど例を挙げれば
・キッチンタイマー
・アラーム時計
・カレンダー
・電卓
・画像ビューア
・テキストエディタ
・音楽プレイヤー
上記の中で自分が作れそうな簡単そうなものを選んで作ればいい
最低限の機能を備えたものが出来たらリファクタリングやバージョンアップするといい
0084デフォルトの名無しさん
2015/09/06(日) 17:45:58.22ID:cLh5ZyHa鍛えればなんとかなるのかな?
0085デフォルトの名無しさん
2015/09/06(日) 17:50:23.11ID:3Oih9VSMWinAPI一筋だ。
0086デフォルトの名無しさん
2015/09/06(日) 18:20:23.46ID:vWlWpWilC#だってWinAPI使えるで
0087デフォルトの名無しさん
2015/09/06(日) 21:35:38.22ID:ANWjJC8Vメッセージループとか、未だにわからないです。
洋書でもいいので、おすすめ書籍ないですか?
0088デフォルトの名無しさん
2015/09/06(日) 21:45:59.52ID:GpoQks5mおすすめ書籍なら理解できるとか言われて本当かよ〜?って思うぜ
メッセージループすら理解できてない時点で
0089デフォルトの名無しさん
2015/09/06(日) 23:34:08.57ID:zJiA8SF0GUIアプリは、イベントドリブン(駆動)だから、
何かのイベントが起こるのを待つ、受け身の作り
イベントキューがあって、
そこにマウス操作やキーボードのイベントが投入されると、
そのキューから順番に、
イベントが取り出されて、処理される
自分で処理を書きたい、イベントの処理だけをOverrideする。
例えば、OnMouseClick()など。
Overrideしないイベントは、OSの既定の処理がされる
ただし、画面更新のイベントは、優先度が低いため、
一番最後に処理される
60フレームなら1秒間に60回、
30フレームなら1秒間に30回、画面が描かれる
0090デフォルトの名無しさん
2015/09/07(月) 09:55:01.12ID:ArTvcv08ウインドウに直にデータを突っ込んで設計のことをあまり考えなくて済むよ
ぐふふ
0091デフォルトの名無しさん
2015/09/07(月) 17:17:44.71ID:ifJ6MFQh「ぐふふ」が気になる
0092デフォルトの名無しさん
2015/09/07(月) 19:20:08.77ID:kLL2g65zダイアログ上に、"決定"ボタン、エディットコントロールを配置しています。
エディットコントロールで"Enter"キーを入力された場合に、
"決定"ボタンを押されたことにしたい。
やってみてダメだったこと:
ダイアログのウインドウプロシージャに
WM_KEYDOWN
を追加しVK_ENTERを処理するコードを書いた。
↓
どうやらダイアログのウインドウプロシージャにはWM_KEYDOWN自体がこない模様。
というところで困っています。
質問1
どのようにすれば目的の内容を実現できますか?
質問2
MFCのSubclassDlgItemの変わりになるようなものはありますか?
0093デフォルトの名無しさん
2015/09/07(月) 19:30:42.31ID:8kmrGT2gIsDialogMessage
それはエディットコントロールのウィンドウプロシージャで捕まえるもの
MFC は知らんが
GetWindowLong(hwndEdit, GWL_WNDPROC);
SetWindowLong(hwndEdit, GWL_WNDPROC, (LONG)callbackFunction);
でどうとでもなる,2〜3年に一回質問される FAQ だね
0095デフォルトの名無しさん
2015/09/07(月) 19:43:17.81ID:yWiuJpNl回答2
CWnd::SubclassDlgItem() のソースを参照すると、GetDlgItem(), SetWindowLongPtr() 等を
使って関数に仕上げているだけなコトがわかる。
0096デフォルトの名無しさん
2015/09/07(月) 20:02:17.05ID:8kmrGT2gそれと>>93の場合決定ボタンをBS_DEFPUSHBUTTONにしてBN_CLICKEDを処理ね
0097デフォルトの名無しさん
2015/09/07(月) 20:56:39.35ID:kLL2g65zすいません。
回答にたどり着けなくてコード貼りました。
見よう見まねでやっているので色々問題あるかもしれません。
http://codepad.org/QAk329mZ
上記コードのWinProc、DlgProcともWM_KEYDOWNがこない状況です。
どんな感じに直せばいいでしょう?
0098デフォルトの名無しさん
2015/09/07(月) 21:23:33.51ID:8kmrGT2gモーダルダイアログ、モードレスダイアログで調べて
0099デフォルトの名無しさん
2015/09/07(月) 21:36:48.33ID:P3iiIg+vアニメーションカーソルを自分でHDCに描画したい場合どうすればいいですか?
作ってみたんですが、アニメーションカーソルの総数がうまく取得できないのとカーソルの登録を選べません。
アニメーションカーソルのフォーマットは拡張?された48x48っぽいものです。
島風 マウスカーソル 通常.aniは、ニコニコのリンクにあった素材です。
HICON hIcon;SHFILEINFO sfi;IImageList *pImageList;
BOOL MyInit(){hIcon = 0;
if (!SHGetFileInfo(L"島風 マウスカーソル 通常.ani", 0, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX)) return false;
if (SHGetImageList(SHIL_EXTRALARGE, IID_IImageList, (void**)&pImageList) != S_OK) return false;
if (pImageList->GetIcon(sfi.iIcon, ILD_TRANSPARENT, &hIcon) != S_OK) {hIcon = 0;return false;}
pImageList->Release();return TRUE;}
void MyFree(){if (hIcon) DestroyIcon(hIcon);}
void myDraw(HDC hdc,int number){DrawIconEx(hdc, 0, 0, hIcon, 0, 0, number, NULL, DI_NORMAL);}
よろしくお願いします。
0100デフォルトの名無しさん
2015/09/07(月) 21:48:51.98ID:yWiuJpNlわからないから添削しろ、では芸がない。
そもそも、
>エディットコントロールで"Enter"キーを入力された場合に、
>"決定"ボタンを押されたことにしたい。
は、Windowsプログラムとして正しいのか考えてみよう。
ex) 漢字変換中に誤って2度 Enter キーを押したら誤動作する とかね。
0101デフォルトの名無しさん
2015/09/07(月) 21:57:06.07ID:yWiuJpNl書き忘れた。
if (!hPreInst) { if (!RegisterClass(&iWCls)) return FALSE; }
みたいなコトは今はやらない。Win16 プログラムでないかぎり、hPreInst は常に NULL。
010292
2015/09/07(月) 22:04:52.49ID:kLL2g65zすいません。↑これでいけました。
http://codepad.org/GK39S71J
↑最初WM_KEYDOWNの中でVK_RETURNを処理して確認していたのですが、
EDITTEXTではEnterKeyが効かないみたいで、
"上手くいかない"と判断してました。
VK_RETURNが効かない件は別問題なので、これから調査します。
とりあえず >>92 の質問は解決しました。どうもありがとう。
010399
2015/09/07(月) 22:58:10.86ID:P3iiIg+vやりたいこと。
・アニメーションカーソルの総数を取得したい。
・アニメーションカーソルの画像をhDCにイメージ番号を指定して描画したい。
先ほど記述したソースだと、イメージ番号0番のみが表示されるだけみたいです。
素材の場所は ttp://www1.axfc.net/u/3454899 DLパス⇒かんこれ
です。
ご教授お願いします。
010492
2015/09/07(月) 23:33:31.78ID:kLL2g65z>>102 のVK_RETURNが効かない件解決したので一応下記のソース報告します。
http://codepad.org/eniL7aC6
EDITTEXTのスタイルにES_MULTILINEを追加すればいいみたいです。
また >>92 の質問2ですが、意図としては上記のEditProc見たいな事をやりたかったので、
これも解決しました。
>>98
今回はモーダルの予定ですので必要ないですが、
今後のために調べときます。
>>100
> Windowsプログラムとして正しいのか
については少し考えて見ます。
0105片山博文MZ ◆T6xkBnTXz7B0
2015/09/07(月) 23:42:58.94ID:wiJUwYLf外部ライブラリ使う、RIFF形式ファイルとして解析する、以外に簡単な方法は無かったはず
0106片山博文MZ ◆T6xkBnTXz7B0
2015/09/07(月) 23:50:26.92ID:wiJUwYLfいろいろサポートしてるのにアニメカーソル抽出のサポートは貧弱
0107デフォルトの名無しさん
2015/09/08(火) 02:00:50.39ID:WpGjOpsu>エディットコントロールで、"Enter"キーを入力された場合に、
>"決定"ボタンを押されたことにしたい
この仕様自体が、おかしいような気がする
筋論で言うと、
1. エディットコントロールで、キーイベントを取る
2. エディットコントロールから、
その親であるダイアログにアクセスする
3. ダイアログから、その子である決定ボタンに、
ボタンを押すイベントを投入する
4. 決定ボタンで、既定のボタンが押されたイベントを処理する
親 ダイアログ
子 エディットコントロール
子 決定ボタン
こういう階層では、子1から子2へは(兄弟間では)、
直接アクセスできないので、
子1 → 親 → 子2 という経路でアクセスする
0108デフォルトの名無しさん
2015/09/08(火) 02:12:44.72ID:WpGjOpsuSHGetImageList で、連続するアニメの、
複数のイメージが取得できているの?
取得できないのなら、プロジェクトのアセットのパスに、
正しく取得できるように置く
また画像は、正しいファイル名の連番とするなど、
正しい形式で並べる
(もし連番としている場合の話です。
漏れはどういう形式か、よく知らないけど)
010999
2015/09/08(火) 08:39:26.20ID:M6zfIWdfアニメーションカーソルは複雑なんですね。
SHGetImageListそのものが使うの初めてだったのでよくわかってないです。
情報集めて、アニメーションカーソルの制御どうするか考えます。
外部ライブラリーとかで、組み込みフリー的な便利なものあればいいですが。。
あとは、MSDNあたり調べてみるかなぁ。。
0110デフォルトの名無しさん
2015/09/08(火) 08:50:14.73ID:uJSOxUGR0111デフォルトの名無しさん
2015/09/08(火) 09:17:02.10ID:S6LsUKWFそんな事しなくても
16行目 PUSHBUTTON → DEFPUSHBUTTON にするだけで
エンター押した時にWM_COMMAND IDC_SET BN_CLICKEDが発生するから
EditProcもGet/SetWindowLongも不要
0112デフォルトの名無しさん
2015/09/09(水) 11:52:53.38ID:zLKTZ6N+そもそも最終的に何がしたいの?
描画しただけで終わりじゃないんじゃないの?
条件後出しして嫌がられるパターンにみえる
0113デフォルトの名無しさん
2015/09/09(水) 14:46:05.94ID:UbDBGCr00114デフォルトの名無しさん
2015/09/09(水) 16:44:51.77ID:61epwTm+0115デフォルトの名無しさん
2015/09/09(水) 18:10:55.30ID:tEPd2G1m9条マンセー
0116デフォルトの名無しさん
2015/09/10(木) 10:35:49.99ID:pvKn3bkq誰か確実に知りませんか
0117デフォルトの名無しさん
2015/09/10(木) 10:40:17.77ID:DGBnp3I70118デフォルトの名無しさん
2015/09/10(木) 11:19:27.31ID:pvKn3bkq調べたらそうっぽいですね
っていうか普通に考えたらそうですよね
ありがとうございまいた
0119デフォルトの名無しさん
2015/09/10(木) 23:43:53.85ID:Lt3YsJ/ZBeginPaintを呼ばないとループするって話?
0120デフォルトの名無しさん
2015/09/10(木) 23:53:28.53ID:DGBnp3I7ウィンドウプロシージャでの処理が終了した時点で消える という話
0121デフォルトの名無しさん
2015/09/11(金) 10:56:33.16ID:IOXejlDXCPUコアの割り振りを明示的にしないとマルチコアに最適化されたアプリケーションとは言えない?
0122デフォルトの名無しさん
2015/09/11(金) 11:17:24.29ID:GHVwR1igそんなのやらなくてもosが勝手にやってくれるだろ
0123デフォルトの名無しさん
2015/09/11(金) 13:09:56.43ID:WE/d+c/8SendInput等のAPIによってマウスのボタンを上げられた状態であることを判定する方法ってありますか?
0124デフォルトの名無しさん
2015/09/11(金) 13:29:49.05ID:dcIIi90q「マウスボタンは物理的に押されている」
↓
「SendInput等によってマウスのボタンが離されているよう偽装している」
↓
「このたわけモノが! 実際には押されているだろ!?」←これを判定する方法でしょ?
0125デフォルトの名無しさん
2015/09/11(金) 13:37:43.79ID:WE/d+c/8自作アプリにマウス右ボタンを使った機能があるんですが
外部のマウスジェスチャー系の常駐アプリが右クリックを戻しているようなんです
GetKeyState/GetAsyncKeyState などでVK_RBUTTONの状態が取れません。
0126デフォルトの名無しさん
2015/09/12(土) 00:01:38.57ID:t9wfuOfkどっちかを無効にするもんだよ
無理になんとかしようとしても時間の無駄
0127デフォルトの名無しさん
2015/09/12(土) 08:59:57.32ID:lTmP7o65ってのは割りと当たり前のこと
だけど初心者にはその主張は通用しないので
自アプリの起動時に常駐アプリの有無をチェックして警告を出すのがスマート
0128デフォルトの名無しさん
2015/09/12(土) 09:15:16.54ID:bK+LJe1a右クリックのマウスジェスチャーにマウスを右クリックする機能を割り当てて解決
0129デフォルトの名無しさん
2015/09/12(土) 09:26:53.57ID:OKvTRLUvそうなんかありがとう
0130sage
2015/09/17(木) 15:36:32.51ID:rzmccn0Eアドバイスもらえないでしょうか?
以下ソースコードです。
=====ここから=====
int _tmain()
{
HANDLE hFile = NULL;
TCHAR *strFileName = 0;
TCHAR buff = 0;
DWORD byte_read = 0;
_tsetlocale(LC_ALL, TEXT("ja"));
// 読み込むファイルのフルパス。
strFileName = TEXT("D:/visualStudio/test/test3.txt");
0131sage
2015/09/17(木) 15:37:04.86ID:rzmccn0EhFile = CreateFile(
strFileName, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL
);
// ファイルハンドルのエラー処理。
if (hFile == INVALID_HANDLE_VALUE || hFile == NULL) {
_tprintf(TEXT("hFile error.\n"));
_gettchar();
return 0;
}
// ファイルから1文字読み込む。
ReadFile(hFile, &buff, (DWORD)sizeof(TCHAR), &byte_read, NULL);
// 読み込んだ1文字を表示。
_tprintf(TEXT("%c\n"), &buff);
CloseHandle(hFile);
_gettchar();
return 0;
}
=====ここまで=====
0132デフォルトの名無しさん
2015/09/17(木) 15:49:41.02ID:U6MHK03R○_tprintf(TEXT("%c\n"), buff);
0133デフォルトの名無しさん
2015/09/17(木) 15:53:01.19ID:b2VOzBjq0134デフォルトの名無しさん
2015/09/17(木) 15:53:11.74ID:9BEBkVT90135130
2015/09/17(木) 16:06:25.74ID:rzmccn0E>>132
>>133
&buff→buffに変更してもコマンドプロンプトには?しか表示されないままです。
test3.txtはサクラエディタを使って、Unicode、改行文字コードCRLFで保存しています。
test3.txtの内容は1行目にabcという文字列があります。
>>134
temp = ReadFile(hFile, &buff, (DWORD)sizeof(TCHAR), &byte_read, NULL);
// 読み込みのエラー処理。
if (temp == 0) {
_tprintf(TEXT("ReadFile error.\n"));
_gettchar();
return 0;
}
としてみましたが、特にエラーは出てないようです。
なぜできないのか、心当たりが無くなってしまって途方に暮れています。
ちなみに1文字ではなく、文字列全体を取得することならできました。
0136デフォルトの名無しさん
2015/09/17(木) 16:15:22.60ID:Nh2CPZLE0138デフォルトの名無しさん
2015/09/17(木) 16:50:41.97ID:b2VOzBjqまず%cじゃなく%02Xで値見てみる
0139130
2015/09/17(木) 17:23:07.39ID:rzmccn0Eつかめてきました!
ありがとうございます!
結局引っかかっていたのはUnicodeのBOMが大きな要因でした。
助かりましたorz
0140デフォルトの名無しさん
2015/09/18(金) 20:40:35.95ID:BAj7A7iYwin32APIでmidの音声を流そうと思い、
↓のサイトを見つけました。
http://eternalwindows.jp/winmm/midi/midi10.html
コンパイルしたところ何も起きませんでした。
調べたところ84行目の
midiOutOpen関数を使ったところで戻り値(mr)の値がMMSYSERR_ERRORになっていたためだと思われます。
どうすればうまく再生できますか?
0141デフォルトの名無しさん
2015/09/18(金) 20:51:59.51ID:5egfmsiHhttps://msdn.microsoft.com/ja-jp/library/windows/desktop/dd798476(v=vs.85).aspx
MIDIERR_NODEVICE
MMSYSERR_ALLOCATED
MMSYSERR_BADDEVICEID
MMSYSERR_INVALPARAM
MMSYSERR_NOMEM
のどれでもないの?
0142デフォルトの名無しさん
2015/09/18(金) 21:55:21.54ID:BAj7A7iY調べてみたら不明なエラーと書かれていました
0143デフォルトの名無しさん
2015/09/18(金) 21:57:15.78ID:5egfmsiHどこで調べるとそのMMSYSERR_ERRORのことが書かれているの?
あと MMSYSERR_ERROR であることはどうしてわかったの?
0144デフォルトの名無しさん
2015/09/18(金) 22:03:48.69ID:wagSxeCs0145デフォルトの名無しさん
2015/09/18(金) 22:05:51.25ID:wagSxeCsこれか
VC++2012でプログラミングをしています win32APIでmidの音声を流そうと思い、 ↓...
tukareteruhitoさん
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14150460584
0146デフォルトの名無しさん
2015/09/18(金) 22:17:00.89ID:44vNChaT0147デフォルトの名無しさん
2015/09/18(金) 22:25:24.12ID:BAj7A7iY以前たまたまコンパイラでMIDIERR_NODEVICE を右クリックして宣言へ移動をクリックしたところ
MMSystem.hにいろいろ載ってました
#define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */
>>144
1です
0148デフォルトの名無しさん
2015/09/18(金) 23:21:06.71ID:BAj7A7iY書き足すのを忘れていました。
win7のパソコンではうまくいったのですが、win10の方のパソコンだとうまくいきません。
midiを鳴らすのにはソフトを入れたり、設定を変えないといけないのですか?
0149デフォルトの名無しさん
2015/09/19(土) 00:44:50.98ID:njZddJ5Vアプリ・デバドラ・ハードウェアなどが、
簡単に動くと思ったの?
0150デフォルトの名無しさん
2015/09/19(土) 02:51:01.30ID:oxCTiUGxが足りないぞ。
しかし的外れ。
0151デフォルトの名無しさん
2015/09/19(土) 06:11:59.58ID:z4P1u9xKMSDN(>>141のリンク先)の一番下のコミュニティーの追加の所にも、
Windows10のmidiOutOpenは明らかに壊れてて常に1(MMSYSERR_ERROR)を返すって書かれてるな。
Windows10の不具合じゃないの。
0152デフォルトの名無しさん
2015/09/19(土) 06:33:58.45ID:rDYKlt+c0153デフォルトの名無しさん
2015/09/19(土) 07:10:53.65ID:UO4hLF9uAPIがそれのドキュメントに載ってない汎用的なエラーを返すなんてそんなに珍しいことでもないだろうに。
0154デフォルトの名無しさん
2015/09/19(土) 14:23:45.31ID:qGt1VSMn一部表示されない。どうすればいい?
0155デフォルトの名無しさん
2015/09/19(土) 15:41:27.60ID:qGt1VSMn0156デフォルトの名無しさん
2015/09/24(木) 07:26:25.75ID:1vbsv5/OWTL覚えた方が便利ですかね
0157デフォルトの名無しさん
2015/09/24(木) 20:42:58.82ID:wqNNiZah0158デフォルトの名無しさん
2015/09/24(木) 21:43:34.07ID:KIOkH3Y/C++を使えるなら便利
0159デフォルトの名無しさん
2015/09/25(金) 02:29:42.77ID:d9V+/CgLマジですか覚えてみるよ
>>157
空ウインドウ作るまでは無料でできたけど
お金かかるの?
0160デフォルトの名無しさん
2015/09/25(金) 07:48:00.36ID:femLeyq9WTLはExpressには入ってない。
でも、調べてみたら後から追加して使うことができるみたいだね。
>>159は有料版のVS?
0161デフォルトの名無しさん
2015/09/25(金) 08:47:49.18ID:d9V+/CgL無料のVS2013 Communityですん
WinDDK追加して使ってる
0162デフォルトの名無しさん
2015/09/25(金) 09:02:33.39ID:ISU02i/FおかげでWin32ゴリゴリ書きたい人には勧めやすくなった
NuGetにも登録されてるけど1年以上前の安定版だから2015のAppWizとかには対応してない
(レポジトリのは一応2015対応用の修正はされている)
0163デフォルトの名無しさん
2015/09/25(金) 13:02:22.26ID:x3Qy+zME32ビット色深度で,32ビットz深度(24 + 8ステンシル)の書き方は
これであっているんでしょうか?あるいはこれも等価でしょうか?
というのも,初心者講座みたいなサイトだと,コメントの->後の数値に
設定されているものが多いんです.
0だと自動判定なのかなとか思ったんですが,MSDNでは0設定で自動的に
判定してくれるとは書いてないので・・・.
あとcolor shiftの説明も文献が全然見当たらないので,
憶測でbit位置のことかと思って,24, 16, 8, 0(ARGB)で設定しました.
表記がRGBAなのにARGBと並べたのは,「8, 16, 8, 8, 8, 0, 0, 0」と
設定している記事があったからです.
32の方は多いというわけはないのですが,そう書いてあるサイトがあるので不安になりました.
MSDN見る限りは24, 8の方が正しそうだなという感想です.
PIXELFORMATDESCRIPTOR pfd =
{
24, // color bitplane depth
8, 16, // red -> 0, 0
8, 8, // green -> 0, 0
8, 0, // blue -> 0, 0
8, 24, // alpha -> 0, 0
24, // z buf depth.24bit.24bit + 8bit stencil. -> 32
8, // stencil buf.
};
0165デフォルトの名無しさん
2015/09/26(土) 21:57:31.31ID:wwGWY9blATL使ってWinプログラムってCommunityにはMFCは入ってないってこと?
0166デフォルトの名無しさん
2015/09/26(土) 22:09:02.67ID:vzGjXFWaインストール時に選択しないと入らないけど
0167デフォルトの名無しさん
2015/09/26(土) 22:09:29.60ID:7ELa66Bu(少なくとも2015は)ATLとMFCの両方無料で入れられる
0168デフォルトの名無しさん
2015/09/26(土) 22:10:27.46ID:Wtpb5D+v0169デフォルトの名無しさん
2015/09/26(土) 22:13:52.09ID:Tp58P9Fq宗教上の理由とかでMFCというフレームワークを使わずに
ATLベースの軽量コンポーネントを好むのが一定数居るというだけだ
0170デフォルトの名無しさん
2015/09/26(土) 22:21:24.87ID:0JcUeR/y0171デフォルトの名無しさん
2015/09/26(土) 22:31:39.68ID:6OIyVqiT0172デフォルトの名無しさん
2015/09/26(土) 23:30:37.68ID:rvfN9kdt0173デフォルトの名無しさん
2015/09/26(土) 23:43:11.75ID:f4irwjf7ゆえに戦争を肯定するものは神ではない
0174デフォルトの名無しさん
2015/09/26(土) 23:52:17.43ID:0JcUeR/y0175デフォルトの名無しさん
2015/09/27(日) 03:01:58.92ID:uC+Ymhd40176デフォルトの名無しさん
2015/09/27(日) 11:50:51.32ID:tDcA70Zp0177デフォルトの名無しさん
2015/09/27(日) 12:25:11.27ID:wOuxiHo1そういうモンなんですかね。
exit(0)で終わらせるとちゃんと消えるんだけど・・・
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) {
switch (msg){
case WM_DESTROY:
if (handle) usb_delete();
PostQuitMessage(0);
return 0;
case WM_LBUTTONUP:
MessageBox(hwnd, TEXT("終了"), TEXT("終了"), MB_ICONINFORMATION);
exit(0);
return 0;
case WM_COMMAND:
(省略)
case WM_TIMER:
(省略)
}
return DefWindowProc(hwnd, msg, wp, lp);
}
0178デフォルトの名無しさん
2015/09/27(日) 12:26:58.10ID:3ktkQrgJWM_CLOSEでDestroyWindowするのがお作法だけど、それだとどう?
use_delete()もWM_CLOSEですべきだと思う。
0179デフォルトの名無しさん
2015/09/27(日) 12:35:34.20ID:puEp1GjQusb usb
0180デフォルトの名無しさん
2015/09/27(日) 12:36:34.18ID:wOuxiHo1こう変えてみたんですが残りますねぇ・・・
謎すぐる
case WM_CLOSE:
if (handle) usb_delete();
DestroyWindow(hwnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
0181デフォルトの名無しさん
2015/09/27(日) 12:43:37.60ID:puEp1GjQuns_deleteに関連するのをコメントアウトしたらどうなる?
0182デフォルトの名無しさん
2015/09/27(日) 12:44:40.77ID:Oa1I2Bnn0183デフォルトの名無しさん
2015/09/27(日) 12:46:18.05ID:wOuxiHo1//if (handle) usb_delete();
にしたけど変わらないですねぇ・・・
中身もこんな感じなので影響はないはず・・
int usb_delete(){
if (!handle) return 2; //接続されてない
if (CloseHandle(handle)) return 1; //切断成功
else return 0; //切断失敗
}
0184デフォルトの名無しさん
2015/09/27(日) 12:48:34.90ID:wOuxiHo1こんな具合の入門サイトコピペです
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR lpCmdLine, int nCmdShow) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
(省略)
while (TRUE) {
GetMessage(&msg, NULL, 0, 0);
DispatchMessage(&msg);
}
return 0;
}
0185デフォルトの名無しさん
2015/09/27(日) 12:49:24.83ID:puEp1GjQブレイクポイントでどこで止まってるか見てみて
0186デフォルトの名無しさん
2015/09/27(日) 12:49:59.95ID:puEp1GjQおい・・・おい・・・
0187デフォルトの名無しさん
2015/09/27(日) 12:50:42.48ID:Oa1I2Bnnその入門サイトは処刑で
0188デフォルトの名無しさん
2015/09/27(日) 12:53:13.08ID:wOuxiHo1あああああああああこいつかwwwwwwwwww → while (TRUE) {
マジでごめんなさい吊ってくる
0189デフォルトの名無しさん
2015/09/27(日) 13:28:48.04ID:d0o/2Ok+http://wisdom.桜.ne.jp/system/winapi/win32/win10.html
(↑NGワードのためsakuraを桜に置き換え)
一応注意書きはしてるがこんなコード公開しちゃダメだろ。
0190デフォルトの名無しさん
2015/09/27(日) 13:32:38.26ID:zkeDatYvアーヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヽ(゚∀゚)ノ
酷いトラップスレにひっかったもんだな
悪意のある入門サイトに注意w
0191デフォルトの名無しさん
2015/09/27(日) 13:46:14.96ID:Oa1I2Bnn探せばありそうだ
0192デフォルトの名無しさん
2015/09/27(日) 13:53:33.43ID:puEp1GjQそれかw
そういう所はサブタイトルの内容以外は手抜きだしな
0193デフォルトの名無しさん
2015/09/27(日) 13:54:15.71ID:XMfaJ+0Chttp://wisdom.sak ura.ne.jp/system/winapi/win32/win10.html
0194デフォルトの名無しさん
2015/09/27(日) 13:55:33.30ID:Oa1I2Bnnよく見るとwin11.html以降のGetMessageループも
戻り値の-1を無視したコードで正しくない
糞翻訳でおなじみの日本語MSDNにすら避けろと書いてあるぞ
https://msdn.microsoft.com/ja-jp/library/cc364699.aspx
0195デフォルトの名無しさん
2015/09/27(日) 13:59:21.19ID:puEp1GjQ正しいアプリケーションの終了
ttp://wisdom.s akura.ne.jp/system/winapi/win32/win11.html
どこがだよっていう
0196デフォルトの名無しさん
2015/09/27(日) 14:04:05.46ID:XMfaJ+0C>GetMessage() 関数がそれを受け取り、戻り値に 0 を返します
>こうして、メッセージループを抜けてアプリケーションは終了します
なるほど
0197デフォルトの名無しさん
2015/09/27(日) 14:11:19.80ID:YZLivW0Iこれもまずいな。GetMessage() が -1 を返す場面を想定してない
0198デフォルトの名無しさん
2015/09/27(日) 14:17:29.27ID:sYzB7PIZ公式に避けろと書いてあるな
戻り値
WM_QUIT 以外のメッセージを取得した場合、0 以外の値が返ります。
WM_QUIT メッセージを取得した場合、0 が返ります。
エラーが発生した場合、-1 が返ります。たとえば、hWnd パラメータで無効なウィンドウハンドルを指定した場合や、lpMsg で無効なポインタを指定した場合は、エラーが発生します。拡張エラー情報を取得するには、 関数を使います。
警告 GetMessage 関数は、0 以外の値、0、-1 のいずれかを返します。したがって、次のようなコードは避けてください。
while (GetMessage(lpMsg, hWnd, 0, 0)) ...
このようなコードを作成すると、GetMessage 関数が失敗して -1(0xFFFFFFFF、つまり TRUE)が返った場合、ループが持続し、致命的なアプリケーションエラーを発生させる可能性があります。
0199デフォルトの名無しさん
2015/09/27(日) 14:19:43.14ID:Oa1I2Bnn確かね
0200デフォルトの名無しさん
2015/09/27(日) 14:26:15.80ID:YZLivW0Iすまん、>>194でもう指摘してたのね。読んでなかった。orz
0201デフォルトの名無しさん
2015/09/27(日) 14:31:10.49ID:9nB30GXC0202デフォルトの名無しさん
2015/09/27(日) 14:32:06.11ID:hEAZFQJb>0 以外の値、0、-1 のいずれかを返します。
これは酷い
0203デフォルトの名無しさん
2015/09/27(日) 14:34:59.89ID:YZLivW0I「BOOLは0か1だろ」
「いや、BOOLは0か0以外だ」
「-1は0以外だから正しい」
「じゃ、-1は真かよ」
「そもそもBOOLは…」
いつも平行線
0204デフォルトの名無しさん
2015/09/27(日) 14:36:46.98ID:zkeDatYvこれは酷い
0205デフォルトの名無しさん
2015/09/27(日) 14:37:43.17ID:us1PQXsq0206デフォルトの名無しさん
2015/09/27(日) 14:41:31.38ID:NRLqsz4Vそもそも int GetMessage() が正しいのにだれが返り値 BOOL といっているんだ?
0207デフォルトの名無しさん
2015/09/27(日) 14:41:59.45ID:jzpWzA1C0208デフォルトの名無しさん
2015/09/27(日) 14:44:03.48ID:sYzB7PIZ0209デフォルトの名無しさん
2015/09/27(日) 14:44:06.88ID:Oa1I2Bnnが適当
0210デフォルトの名無しさん
2015/09/27(日) 14:51:26.57ID:8A5jeRhu0211デフォルトの名無しさん
2015/09/27(日) 14:51:42.01ID:ENvts9qq0212デフォルトの名無しさん
2015/09/27(日) 14:53:24.53ID:ENvts9qq0213デフォルトの名無しさん
2015/09/27(日) 14:54:51.35ID:XMfaJ+0CGetMessage() の戻り値が -1 の場合はエラーなんだろ?
Windows アプリを終了するべきではなくエラー処理をするべきじゃないのか?
while を抜けるべきではない
0214デフォルトの名無しさん
2015/09/27(日) 14:55:25.97ID:zkeDatYvmsdnさん自身が
ttps://msdn.microsoft.com/ja-jp/library/cc364699.aspx
ちなみに↓では
ttps://msdn.microsoft.com/ja-jp/library/ms644936.aspx
Minimum supported client Windows 2000 Professional [desktop apps only]
となっているのでintだった時期も確かにあったんだろう
0215デフォルトの名無しさん
2015/09/27(日) 14:59:07.04ID:jzpWzA1CちゃんとGetLastErrorさんの話を聞かないとな
0216デフォルトの名無しさん
2015/09/27(日) 15:05:58.13ID:hEAZFQJbTRUEという独自マクロを定義したのもMSだから
MSはC言語の仕様とは関係なく常に
BOOLの真の値として1を使わなければならないし
(だって自分で勝手に決めたんだろ)
そうじゃなかったとしても
BOOLなのに真とも偽とも明言されてない
エラーを表現する-1を返すのは良くないね
0217デフォルトの名無しさん
2015/09/27(日) 15:34:06.02ID:nsZcbsgt>hWnd パラメータで無効なウィンドウハンドルを指定した場合や、lpMsg で無効なポインタを指定した場合は、エラーが発生します。
本人がポカしなけりゃ -1 は無視して良いな。
0218デフォルトの名無しさん
2015/09/27(日) 15:35:30.62ID:LjMVY2UBアッラーアクバル!
0219デフォルトの名無しさん
2015/09/27(日) 15:40:00.11ID:nsZcbsgt>エラーを表現する-1を返すのは良くないね
BOOL なら -1 は真だよ。
0220デフォルトの名無しさん
2015/09/27(日) 15:51:43.88ID:YZLivW0IWTLだと、エラーを返したときもループ継続
0221デフォルトの名無しさん
2015/09/27(日) 15:54:52.54ID:hEAZFQJbそれはC言語の仕様でしかない
MSDNにはただ単にエラーの時-1を返すとしか書いてない
ここでの-1の意味は真でも偽でもなくて、エラー
>BOOLなのに真とも偽とも明言されてない
>エラーを表現する-1を返すのは良くないね
しかしこの文章は誤解を生じるな
BOOLなのに真とも偽とも分類されないような
エラーの-1を定義して3値で返すのは良くないね
に訂正しておく
0222デフォルトの名無しさん
2015/09/27(日) 15:57:22.56ID:jzpWzA1CそのMSも-1はTRUEと明言しているよ
> -1(0xFFFFFFFF、つまり TRUE)が返った場合
~~~~~~
>>217
「例えば」だから、エラーの原因がそれだけという保証がない
0223デフォルトの名無しさん
2015/09/27(日) 17:13:27.56ID:9nB30GXChttps://msdn.microsoft.com/ja-jp/library/bb384843.aspx
0224デフォルトの名無しさん
2015/09/27(日) 17:27:24.32ID:hEAZFQJb整数の-1が真なのはC言語の仕様でしかなく
今言っているのは「意味の上で」の話だから
-1のときエラーと書いてあったのならそれ以上の意味はない
例えばメモリエラーのときに「2」を返す関数があったとして
「2」はC言語の仕様的には「2」でしかないが
意味の上ではメモリエラー
0225デフォルトの名無しさん
2015/09/27(日) 17:31:35.93ID:3ktkQrgJ久々にお茶フイタwww
0226デフォルトの名無しさん
2015/09/27(日) 18:23:00.63ID:UYzM99J30227デフォルトの名無しさん
2015/09/27(日) 18:24:33.95ID:jzpWzA1C何言っているのか(何を言いたいのか)分からん
>MSDNにはただ単にエラーの時-1を返すとしか書いてない
C言語の仕様という意味であっても、 -1 がTRUEであると書いている(MSが認めている)
で話を戻して、
>BOOLなのに真とも偽とも明言されてない
エラーの場合は-1を返す
MSDNで-1は「つまりはTRUE」と書いているんだから
エラーの場合も真を返すと明言しているわけだ
関数の仕様としておかしいとしても「意味の上で」なら真か偽かははっきりしているだろ
0228デフォルトの名無しさん
2015/09/27(日) 18:38:33.35ID:hEAZFQJbそれに俺は言い直している
>BOOLなのに真とも偽とも分類されないような
>エラーの-1を定義して3値で返すのは良くないね
0229デフォルトの名無しさん
2015/09/27(日) 19:08:43.46ID:8A5jeRhu糞仕様は糞仕様なんだから
0230デフォルトの名無しさん
2015/09/27(日) 19:28:41.21ID:hEAZFQJb>while (GetMessage(lpMsg, hWnd, 0, 0)) ...
>このようなコードを作成すると、
>GetMessage 関数が失敗して -1(0xFFFFFFFF、つまり TRUE)が返った場合、ループが持続し、
>致命的なアプリケーションエラーを発生させる可能性があります。
この警告の文における
「0xFFFFFFFF、つまり TRUE」が
・エラーだとー1が返るがC言語の仕様では-1は真になるからループの終了条件に使うと危険、と言う但し書きか、
・APIの戻り値として真の意味がある、と捉えるかは、人それぞれかもしれんが
そもそも大元の「戻り値」の説明には「真」とか「偽」とかは出てこなくて
エラーなら-1が返るとしか書いてなくて、ここに
-1(0xFFFFFFFF、つまり TRUE)という補足は書かれていないのだから、
例の補足は「警告」内のサンプルコードに対して、コードの動きの補足しているものだとわかるし
「警告」内の一文の、それも括弧の中に補足的に書いてあるだけだし
それもサンプルコードの終了条件に対する説明だし
0231デフォルトの名無しさん
2015/09/27(日) 19:34:53.06ID:YZLivW0I{
::MessageBox(NULL, _T("言い争いするところじゃないっスよー"),
_T("糞仕様は糞仕様なんだから"), MB_OK | MB_ICONEXCLAMATION);
}
0232デフォルトの名無しさん
2015/09/27(日) 20:02:19.00ID:jzpWzA1CMSがTRUEを1と定義しているかどうかに関係なく、式評価で0以外なら真、0なら偽と分かっているんだから
WM_QUIT 以外のメッセージ、もしくはエラーなら「真」で、WM_QUIT なら「偽」ってだけだろ
そもそも戻り値がBOOLと書かれているが、TRUEとして定義した1ではなく 「0 以外の値」 と言っている時点で
MSの定義したTRUE 1 ってのがただの便宜上のものだと分かると思うが
つまり関数としての戻り値は「WM_QUIT以外の『真』」か「WM_QUITの『偽』」の2値
あとは「WM_QUIT以外の『真』」にエラーも含ませるのはどうよって話ではあるが、
そもそも関数の戻り値からしてそれは成功失敗を表現しているわけではないのだから
エラーの-1は真として分類されている
0233デフォルトの名無しさん
2015/09/27(日) 21:34:28.74ID:x2H664Vf0234デフォルトの名無しさん
2015/09/27(日) 21:59:38.37ID:zkeDatYv文脈によって0以外の値が変動する戻り値にBOOL型を当てるのはやはりおかしい
TRUEがどんな値でもいいが常にその値でなければならない
しかしまあ何でこんなことになったんだろうねぇ
0235デフォルトの名無しさん
2015/09/27(日) 22:13:58.95ID:jzpWzA1Cその思考の結果が if(func()==TRUE) ... みたいなものじゃね?
>文脈によって0以外の値が変動する戻り値にBOOL型を当てるのはやはりおかしい
こっちは同意
0236デフォルトの名無しさん
2015/09/27(日) 22:17:21.80ID:us1PQXsqあーBOOLにしちゃったけど他の情報も戻り値に含めたいなぁみたいなぁみたいな
0237デフォルトの名無しさん
2015/09/27(日) 22:38:34.32ID:x2H664Vfできねーよ
戻り値の型を int にするなりするだろ
0238デフォルトの名無しさん
2015/09/27(日) 22:40:56.03ID:YZLivW0I0239デフォルトの名無しさん
2015/09/27(日) 23:06:54.37ID:LjMVY2UBアッラーアクバル
0240デフォルトの名無しさん
2015/09/27(日) 23:07:01.32ID:jzpWzA1C0241デフォルトの名無しさん
2015/09/28(月) 06:49:36.12ID:Rj5Nu0nMこう言うアホはどうしようもないな…
なんの為に BOOL を定義してるのかすら理解してないんだろうな w
0242デフォルトの名無しさん
2015/09/28(月) 07:07:15.77ID:oN5IJNc70243デフォルトの名無しさん
2015/09/28(月) 07:57:15.09ID:e7uUBDed0244デフォルトの名無しさん
2015/09/28(月) 08:25:36.70ID:gscNduJW0245デフォルトの名無しさん
2015/09/28(月) 08:37:54.88ID:4BqA6VyMGetMessageEx を作って GetMessage を 非推奨に変えていただろう
0246デフォルトの名無しさん
2015/09/28(月) 08:54:05.03ID:e7uUBDed0247デフォルトの名無しさん
2015/09/28(月) 13:18:19.09ID:YLupfTzg理解しようともしないドアホだな
typedefすら否定してそうだわ
0248デフォルトの名無しさん
2015/09/28(月) 13:34:04.05ID:JfTylyW80249デフォルトの名無しさん
2015/09/28(月) 16:47:13.24ID:Io5caW0J0250デフォルトの名無しさん
2015/09/28(月) 16:54:41.98ID:lTbRmqcc0251デフォルトの名無しさん
2015/09/28(月) 17:02:56.55ID:0jKDP4UE0252デフォルトの名無しさん
2015/09/28(月) 19:15:30.70ID:s/OnR4YsBut don't worry, the standard message pump is safe. If your parameters are exactly
•a valid pointer to a valid MSG structure,
•a null window handle,
•no starting message range filter,
•no ending message range filter,
then Get­Message will not fail with -1.
0253デフォルトの名無しさん
2015/09/28(月) 20:12:46.31ID:91/ACm3S0254デフォルトの名無しさん
2015/09/28(月) 20:44:33.42ID:FF3rjUqv0255デフォルトの名無しさん
2015/09/29(火) 06:51:33.28ID:RQ7ZrE+f0256デフォルトの名無しさん
2015/09/29(火) 19:30:39.39ID:714Z1PTP質問意図。
例1)
#ifndef bool
#define bool int
#define true (1)
#define false (0)
#endif
例1のようなことを下記で定義してあるものに対して行いたい。
typedef int bool;
enum{false,true};
0257デフォルトの名無しさん
2015/09/29(火) 19:35:28.79ID:TPU2zcec0258デフォルトの名無しさん
2015/10/01(木) 21:44:10.72ID:yzt9uPit簡単でしょ?
0259デフォルトの名無しさん
2015/10/05(月) 09:53:29.16ID:PVqgELRlSHLoadIndirectString みたいな感じで。
もしくはDLGTEMPLATEEX 構造体から簡単に(以下同文)
0260デフォルトの名無しさん
2015/10/05(月) 14:06:09.49ID:Xe1CseJq入力内容に応じて逐次、こちらが用意した候補を表示したいんだが
楽な実装方法ある?
便利さがあれと同程度であれば見た目はそっくりじゃなくてもいい。
0261デフォルトの名無しさん
2015/10/05(月) 14:31:48.50ID:Xe1CseJq0262デフォルトの名無しさん
2015/10/05(月) 15:36:54.33ID:PVqgELRlちくちくポインタ計算するしかないか……
0263デフォルトの名無しさん
2015/10/05(月) 15:41:12.48ID:Gxee2tr0そんな事せずにリソースファイルを新しく作りなさいよ
0264デフォルトの名無しさん
2015/10/05(月) 17:07:33.06ID:PVqgELRlもう作ったからいい
0265デフォルトの名無しさん
2015/10/05(月) 21:20:01.79ID:+kYnElcl0266デフォルトの名無しさん
2015/10/06(火) 07:07:57.43ID:+MMTk5e6例)
struct TEST{
int ID;//ユニーク
char name[16];
int age;
}test[64];
この中で、リストビューにはnameとageだけを表示したい。
名前 | 年齢
――――――――
山田 | 28
田中 | 25
ここで山田が選択されているときに、testの中の山田の要素に対応させたい。
リストビューの要素からアイテムを取得して自力でtestを検索しても、28歳の山田が2人いれば判別つかなくてアウト。
リストビューに見えないようにIDを仕込めれば解決するが、できないみたいだ。
0267デフォルトの名無しさん
2015/10/06(火) 08:10:35.92ID:RmS10x6f0268デフォルトの名無しさん
2015/10/06(火) 15:32:28.15ID:+MMTk5e6マジでありがとう!
そういう情報が欲しかった!
その情報を元に調べたら色々出てきた!
何とかできそうだ!
https://msdn.microsoft.com/en-us/library/windows/desktop/bb774760(v=vs.85).aspx
http://www.g-ishihara.com/mfc_lc_06.htm
0269デフォルトの名無しさん
2015/10/06(火) 15:50:07.83ID:uga0EVZsDirectWriteのサンプルだと文字を選択できないしエディットコントロールだとどこでDirectWriteを噛ませればいいか分かりません
0270デフォルトの名無しさん
2015/10/06(火) 19:44:04.77ID:RIAMP3y9reallocでハマらないようにね
0271デフォルトの名無しさん
2015/10/07(水) 20:43:54.09ID:olmGB7G8DirectWriteはDrawTextと比べて特別速いという印象はなく
ほぼ同じぐらいの速度だったように記憶しているので
普通にエディットコントロールを使えばいいと思う
どうしてもDirectWriteが使いたければWPFを使えば
勝手にDirectWriteを使ってくれるかもしれないね
ただしWPFはスレチなんでWPFを使うならスレを移動してね
0272デフォルトの名無しさん
2015/10/07(水) 20:45:06.18ID:5JMb1/3S0273デフォルトの名無しさん
2015/10/07(水) 20:50:51.43ID:olmGB7G8ウィンドウプロシージャの引数にインスタンスポインタが無いことだよな
初心者が必ず疑問に思う点だし
必ず必要と言っていいデータなのにウィンドウ作るたびに毎回
SetWindowSubclassとかSetWindowLongPtrとか
設計ミスだよね
でも本当の汚点はLOWORD、GET_X_LPARAM、など16bit幅のアレやコレかもしれない
0274デフォルトの名無しさん
2015/10/07(水) 21:02:21.93ID:gQOBln3k0275デフォルトの名無しさん
2015/10/07(水) 21:23:55.22ID:DDTC7KB4呼び出しひとつ程度で解決できるなら別にどうでも
0276デフォルトの名無しさん
2015/10/07(水) 21:35:42.36ID:6dKnmfm7ウインドウハンドルがあるじゃん
0277デフォルトの名無しさん
2015/10/07(水) 21:50:45.60ID:7k7eABWeそんな後出しジャンケンオナニーレスなんて自分の秘密鍵付きノートにでも書いとけよ
0278デフォルトの名無しさん
2015/10/07(水) 22:38:04.21ID:0FYyDCxK0279デフォルトの名無しさん
2015/10/07(水) 22:48:18.06ID:ItwNCUpp0280デフォルトの名無しさん
2015/10/07(水) 23:28:39.54ID:gQOBln3k0281デフォルトの名無しさん
2015/10/07(水) 23:41:15.18ID:diu86Nw70282デフォルトの名無しさん
2015/10/08(木) 00:54:08.31ID:08uRUrkNvimのソースコードを見てみたところ文字ごとに色を変えているようでした
なので、エディットコントロールのようなものも自分で実装したいと思います
0283デフォルトの名無しさん
2015/10/08(木) 13:22:45.90ID:jZEKLa+0や め て お け
リッチエディットコントロール的なものを使えばいいんじゃないかと
0284デフォルトの名無しさん
2015/10/08(木) 14:02:16.80ID:9yien46K一体どんな馬鹿が設計したらこんなヘンテコな仕様になるんだろうと今でも思うよWin32API
0285デフォルトの名無しさん
2015/10/08(木) 16:51:02.24ID:66tpBgx2日本語のラベルが改行されるのを抑制する方法ってわかります?
「Open」なら1行なんだけど、「開(改行)く」と縦書きみたいになっちゃう。
非アルファベットのワードブレーク処理が期待する動きではない感じ。
語末に全角スペースを追加する誤魔化しは使いたくないです。
0286デフォルトの名無しさん
2015/10/08(木) 20:49:08.25ID:9MeqRRt4Win32APIに限らず、Microsoftの提供するAPIは首を傾げるものが多いな。
本当に頭いいヤツが入社してるんだろうか・・・?
0287デフォルトの名無しさん
2015/10/08(木) 20:51:55.26ID:7AIOKY49VFAT、BMP、LINQ、等々
0288デフォルトの名無しさん
2015/10/08(木) 21:35:51.12ID:1TGlpU6G0289デフォルトの名無しさん
2015/10/09(金) 00:36:37.21ID:hQOu+a4Vどっかの糞OSなんてバージョンアップのたびに動かなくなるぞ。
0290デフォルトの名無しさん
2015/10/09(金) 01:02:33.88ID:m6l+7vgzその後の改築に頭を使い続けたという雰囲気だが
64bit化やDWMは頑張ったのでは
0291デフォルトの名無しさん
2015/10/09(金) 11:48:17.82ID:vp8UwouF開発側もその都度API仕様が変更されると死ぬし
0292デフォルトの名無しさん
2015/10/09(金) 12:41:13.75ID:yBCegUEL(システムで問題が起きた時にファイルを閉じることなく、事前に退避しておいたファイルに戻したいです。)
0293デフォルトの名無しさん
2015/10/09(金) 13:15:28.85ID:mu8Iv9Yiたぶん期待している動作にはならない
おそらくFILE_SHARE_DELETEについて調べると良いと思われる
0294デフォルトの名無しさん
2015/10/09(金) 13:32:02.08ID:qYdPFK/f0295デフォルトの名無しさん
2015/10/09(金) 13:48:37.07ID:oOXSiJnl0296デフォルトの名無しさん
2015/10/09(金) 14:01:37.94ID:SqKziDAZ最初に、元のファイルを、renameする。
次に、新しいファイルを、元のファイル名で作成する
最後に、元のファイルを削除する
0297デフォルトの名無しさん
2015/10/09(金) 14:22:05.37ID:qYdPFK/fタイミングがあるからお勧めできないと思う…
0298デフォルトの名無しさん
2015/10/09(金) 17:40:13.90ID:uuceUKZSたいていの疑問はthe old new thingに書いてる
0299デフォルトの名無しさん
2015/10/09(金) 18:50:43.73ID:mhM1aSp50301デフォルトの名無しさん
2015/10/09(金) 21:30:52.86ID:oggkbSfrold newの作者がヘンテコなwin32api作った犯人なのか?
0302デフォルトの名無しさん
2015/10/09(金) 22:30:53.93ID:McJpsKEcオリジナルはきちんと連番の隠し属性にして隠しとくべきですう
0303デフォルトの名無しさん
2015/10/10(土) 12:01:31.39ID:wZWPBuKiまずバレ無いよ
0304デフォルトの名無しさん
2015/10/10(土) 12:54:07.63ID:/egW/Cb10305デフォルトの名無しさん
2015/10/12(月) 02:12:30.20ID:Y1aqG/NX頭いいけど、ちょっと斜め上を行ってるだけなんだよきっと
0306デフォルトの名無しさん
2015/10/12(月) 10:30:51.96ID:dOqq0AtQ検索してもあんまり出てこない
Win32というよりもWindowsプログラミング自体の話題が減っている気もするけど……
0307デフォルトの名無しさん
2015/10/12(月) 11:58:32.65ID:GW+oKPBf子供プログラミング教室とかそんなのばっかり
そしてそこから踏み出すこともない
0308デフォルトの名無しさん
2015/10/12(月) 12:00:54.79ID:ntYAJ4A2何をやっかんでいる
0309デフォルトの名無しさん
2015/10/12(月) 13:42:42.03ID:0aVLwZvg0310デフォルトの名無しさん
2015/10/12(月) 14:11:22.42ID:QD0vOYojRTが受けなかったのでWin32世代の互換性を強化してるけど、いまだ諦めてないと思うね。
企業ユースが.NETに移行できるように、WEBサービス強化を優先的にやってるし
その時、ひょっとすると端末側のOSはLinuxということもありうるだろうし、場合によっては
OSをハードウェア化してHTML5が動作すればいい程度になってる可能性もある。
0311デフォルトの名無しさん
2015/10/12(月) 14:18:15.92ID:GN4/i3DY普通に8以降もWin32APIはどんどこ追加されてるよ
各カテゴリのWhat' Newなんちゃらとかにまとまってる時もあるけど
.NETやらWinRTやらの土台としての扱いなのかおざなりなドキュメントが多いな
0312デフォルトの名無しさん
2015/10/12(月) 15:52:31.97ID:DSHcQooM0313デフォルトの名無しさん
2015/10/12(月) 17:00:02.70ID:GAOSSbAR0314デフォルトの名無しさん
2015/10/12(月) 17:01:31.57ID:nie80ABu0315デフォルトの名無しさん
2015/10/12(月) 19:38:20.65ID:zL9czuyO他のアプリが重なっているか確認したいんですけど
EnumWindowsかGetWindowで列挙したウィンドウの矩形をいちいち取得し
自ウィンドウと重なっているか判定するといった手順より
簡単な方法があったりするでしょうか?
0316デフォルトの名無しさん
2015/10/13(火) 04:37:06.38ID:9NxpwIPdいずれかのウインドウでダイアログ(ファイルを選択するダイアログとか)を開くと、
ダイアログを開いたウインドウはダイアログが閉じられるまで前面にも来ず、ユーザーは操作もできなくなります。
しかし、ダイアログを開いたウインドウ以外のウインドウは操作できますし、クリックすればダイアログより前にも来ます。
ダイアログを開いたウインドウ同様に他のウインドウも操作を受け付けないようにしたいのですが、そういう設定はないのでしょうか。
ダイアログ表示前後に他ウインドウへの操作を無効にするコードをゴリゴリ書いてもいいのですが、何か設定ができるならそちらを使いたいです。
同じプログラム内で作られたウインドウなら何か設定がある気がします。
0317デフォルトの名無しさん
2015/10/13(火) 05:00:16.14ID:IpNepCXzそいつの WM_CREATE タイミングでコモンダイアログを呼べば?
0318デフォルトの名無しさん
2015/10/13(火) 07:26:53.27ID:WAwM6nXZいちいち取得し判定するしかないと思うよ。めったにない需要だし。
>>316
親ウィンドウ
├他のウィンドウ
└ダイアログ
という親子関係にすれば良いのでは?
0319デフォルトの名無しさん
2015/10/13(火) 08:13:32.00ID:L59Au/RrWin32もステラルヒが来るのだ
0320デフォルトの名無しさん
2015/10/13(火) 10:17:12.50ID:qKlLexPEWindowsはいきなりNTなんか作ってもユーザーが付いてこないから、
DOSユーザーにとって取っつきやすくexeにしたってだけ
実際、OS/2の出足の鈍さがすごかったろ
マルチタスクとプロテクトメモリは欲しかったけど
HDDをフォーマットする必要があったのが最大のネックで
0321デフォルトの名無しさん
2015/10/13(火) 11:20:20.25ID:oaoMXMKz相変わらず初心者が馴れ合ってるだけの程度の低いスレだな
ざっと見渡しても質問に対してピンポイントに正解を答えてるレス無いもんな
質問の意味すら理解できん馬鹿ばっかなんだろうな
質問するだけ時間の無駄だわ
0322デフォルトの名無しさん
2015/10/13(火) 11:33:32.82ID:WPI+iK8W自ウィンドウの全てのピクセルに対して、WindowFromPointを呼ぶの?
640x480のウィンドウだったとしても30万回もコールしなきゃならんわけだが
これが君の言うピンポイントの回答なの?
0323デフォルトの名無しさん
2015/10/13(火) 12:08:05.88ID:HOdVfJRd↓
"c:\\aaaa\\bbbb\\cc cc\\dddd"
というように、階層ごとに前後の空白を削除する方法は、
Path〜関数や、それらの組み合わせなどでありませんでしょうか。
0324デフォルトの名無しさん
2015/10/13(火) 12:17:02.30ID:WPI+iK8W0325デフォルトの名無しさん
2015/10/13(火) 12:44:50.23ID:9UjSekpe0326デフォルトの名無しさん
2015/10/13(火) 14:48:20.02ID:3EVIu19yところでListViewのワーキングエリアって使われてるのを見たことある?
0327デフォルトの名無しさん
2015/10/13(火) 14:53:08.71ID:e0HEbvMz0328デフォルトの名無しさん
2015/10/13(火) 14:56:14.54ID:1nentuZe0329デフォルトの名無しさん
2015/10/13(火) 15:17:05.76ID:DtroG4QRWS_HSCROLLスタイルを削除
0330デフォルトの名無しさん
2015/10/13(火) 15:28:45.54ID:gLNTLW9u0331デフォルトの名無しさん
2015/10/13(火) 15:32:00.28ID:1nentuZe0332デフォルトの名無しさん
2015/10/13(火) 15:38:19.73ID:1nentuZeWS_HSCROLLとTVS_EX_AUTOHSCROLLのビット落としてSetWindowLongしてもダメでした
やり方間違ったんかな全然違ったなかな
0333デフォルトの名無しさん
2015/10/13(火) 15:43:04.02ID:gLNTLW9u0334デフォルトの名無しさん
2015/10/13(火) 16:00:20.58ID:1nentuZeソースありがとうございます。
しかしやはりスクロールバー消えてくれないです。
C++BuilderXE8なのですが、自動(TreeViewの幅変更)で表示ON/OFFしちゃうから
そのアレで勝手に表示されちゃうんのかなあ
0335デフォルトの名無しさん
2015/10/13(火) 16:04:54.55ID:gLNTLW9u0336デフォルトの名無しさん
2015/10/13(火) 16:08:51.48ID:1nentuZe0337デフォルトの名無しさん
2015/10/13(火) 16:14:31.66ID:gLNTLW9u0338デフォルトの名無しさん
2015/10/14(水) 05:52:00.33ID:Z0PqNaXBいるよねー、文句言うだけで建設的な発言できない奴って
さすが初心者が簡単な質問に答えて俺スゲーするだけの程度の低いスレ民の意見だわ
君は1x1のウィンドウを想定して30万回コールすればいいやん
0339デフォルトの名無しさん
2015/10/14(水) 07:48:26.80ID:HVSBvHHmぜひ君の「建設的な発言」を聞かせて欲しい。
まぁそれには、1x1のウィンドウに対応できない不具合があるんだろうがな。
元の質問が「重なっているか確認」でなく「自分が最前面である保証」なら
色々とやり方もあるのかもしれないが、それはまた別の話。
0340デフォルトの名無しさん
2015/10/14(水) 08:19:36.28ID:UG0pkAng「全ウィンドウ列挙して矩形の重なりで判定するより簡単な方法はあるか?」だからなぁ。
0341デフォルトの名無しさん
2015/10/14(水) 09:14:39.32ID:OmtAhGc10342デフォルトの名無しさん
2015/10/14(水) 11:02:20.59ID:oRHV6ndY複数人から晒し上げにされたのに
のこのこ出てきて更に煽るとはね
0343デフォルトの名無しさん
2015/10/14(水) 11:35:51.39ID:EGTHNy+Hmd5とかで比較でも良いし
0344デフォルトの名無しさん
2015/10/14(水) 11:46:04.64ID:oRHV6ndY自分のウィンドウのクライアント領域のビットマップが
常に固定ならmd5を計算しておく意味も少しは出てくるが
普通は都度都度に刻々に変化するものなのではないかね
更にmd5を算出するには全てのピクセルを読まなきゃダメなんじゃないの?
普通に単純に頭からピクセル同士を比較していくやり方なら
違っていた時点で早期打ち切りが出来るわけだが
0345デフォルトの名無しさん
2015/10/14(水) 12:02:16.92ID:8Sy25YjX0346デフォルトの名無しさん
2015/10/14(水) 12:17:16.46ID:oRHV6ndY画面キャプチャのほうは毎回md5を計算するために
嘗め回さなければならないでしょう
早期打ち切りが出来ない分、不利では?
0347デフォルトの名無しさん
2015/10/14(水) 12:42:21.24ID:8Sy25YjX0348デフォルトの名無しさん
2015/10/14(水) 12:45:42.57ID:8Sy25YjX「簡単な方法」の定義があいまいだけど
目的が速度が速いのを目指したいなら
手順が簡単かどうかよりも
API呼ぶ回数が少ない方が有利だと思います
0349デフォルトの名無しさん
2015/10/14(水) 12:59:23.41ID:oRHV6ndY普通に自ウィンドウのクライアント画像と比較をすれば
よくね?
0350デフォルトの名無しさん
2015/10/14(水) 13:11:26.25ID:8Sy25YjXだれも否定はしていないはず
0351デフォルトの名無しさん
2015/10/14(水) 14:29:56.75ID:LplWxa350352デフォルトの名無しさん
2015/10/14(水) 15:11:41.07ID:PR+BbI9Oオプションの更新にWin10へのアップグレードに、レ点がデフォではいってるから
意図しないのにWin10にアップグレードしちゃった人いるんじゃないの
悪質だよなあ
124 名無し~3.EXE 2015/10/14(水) 02:05:05.54 G959FkfV
KB-3035583をアンインストールしたのに、
GWXConfigManager.exeが動いているのをなんとかしたい。
あと、それ以上に面倒なのが、
WindowsUpdateでの10への更新が、いちど非表示に入れたのにまた出ていること。
しかもデフォルトでインストールにチェックが入っているし。
さすがにここまで来ると悪質だ。
標準がオフで目につくというだけなら、ここまでいらだちはしないのだが…。
0353デフォルトの名無しさん
2015/10/14(水) 15:37:17.44ID:oRHV6ndY普通の会社ならとっくに見放されてる
VWはちょっと悪戯しただけで、あのざま
環境問題なんか消費者には関係ないし
燃費が伸びるのなら寧ろ良いと考える人も要るだろう
一方でソフトウェアは互換性という資産に守られているから
全くのやりたい放題だな
北の将軍様レベルで無茶苦茶されても
過去の資産を盾にされて、逃げる事ができないね
0354デフォルトの名無しさん
2015/10/14(水) 16:24:18.77ID:JRiou96q0355デフォルトの名無しさん
2015/10/14(水) 16:28:32.54ID:PR+BbI9O0356デフォルトの名無しさん
2015/10/14(水) 16:42:08.70ID:OmtAhGc1RECTの当たり判定くらい汎用ライブラリ化してねーやつはモグリってだけ
0357デフォルトの名無しさん
2015/10/14(水) 18:06:17.54ID:78XEzKH1DirectX?のほうがいい?
0358デフォルトの名無しさん
2015/10/14(水) 18:14:11.00ID:HVSBvHHmこのスレ的には IntersectRect を使うべきだろう
0359デフォルトの名無しさん
2015/10/14(水) 18:18:51.71ID:OmtAhGc10360デフォルトの名無しさん
2015/10/14(水) 18:21:28.05ID:j19XNlREOpenGL/WebGLおぬぬめ
0361デフォルトの名無しさん
2015/10/14(水) 18:41:37.35ID:78XEzKH1おぬぬめ言われてもそれ理解するのに果てしなく時間がかかりそう
0362デフォルトの名無しさん
2015/10/14(水) 18:51:35.80ID:JRiou96q…これだと良い方にも悪い方にも受け取れるな
0363316
2015/10/14(水) 19:12:32.49ID:kP0Tau7Mありがとうございます。
ちょっとよく分かりませんが、>>317氏のはその言葉通りにコード書けば期待通りの動作になるんでしょうか。
どういう原理で期待通りの動作をするのか分かりませんがやってみます。
>>318さんのはメインの親ウインドウ以外のウインドウにWS_CHILDを設定せよということでしょうか。
WS_CHILDを設定すると親ウインドウの領域からそのウインドウが出られないから外したのですが。
0364デフォルトの名無しさん
2015/10/14(水) 19:16:49.44ID:oRHV6ndY違うと思います
0365デフォルトの名無しさん
2015/10/15(木) 00:49:31.57ID:VpGjS7sWwin32+directx12でいいんでね?
最新だぞ最新
まあwin32部分はウィンドウ出すだけで残りのdirectxがほとんどだけどね
0366デフォルトの名無しさん
2015/10/15(木) 01:06:47.38ID:whFEoHyO0367デフォルトの名無しさん
2015/10/15(木) 11:03:19.33ID:bdlPZJI1http://www.itmedia.co.jp/enterprise/articles/1510/09/news054.html
Webサイトでの認証やデジタル署名に使われるハッシュ関数の「SHA-1」について、暗号解読の国際専門家チームが10月8日、廃止の時期を現在のスケジュールよりも前倒しする必要があると勧告した。
SHA-1がこれまで考えられていたよりも大幅に安いコストで破れることが分かり、犯罪集団に悪用される危険が迫ったと指摘している。
SHA-1は以前から脆弱性が指摘され、MicrosoftやGoogleなど主要ブラウザメーカーや電子証明書の発行機関が段階的な廃止に向けたスケジュールを公表している。
0368デフォルトの名無しさん
2015/10/15(木) 18:00:29.14ID:bdlPZJI10369デフォルトの名無しさん
2015/10/16(金) 14:29:12.49ID:IIEWzpZcR(Return)だけが観察されるというのはどういう状況が考えられますか?
普通はSendされるメッセージです。
0370デフォルトの名無しさん
2015/10/17(土) 17:36:45.64ID:HFus6TsSこれは当たり前でしたね……
0371デフォルトの名無しさん
2015/10/18(日) 11:00:40.65ID:vJDQVwJW0372デフォルトの名無しさん
2015/10/18(日) 17:30:31.18ID:hcyPsAl4SendMessage系のAPIをフックしてるのかな?
それとも
SetWindowsHookExでWH_CALLWNDPROC/WH_CALLWNDPROCRETでグローバルなフックをかけてるの?
Returnだけが観察されたことと関係してるかな?
0373デフォルトの名無しさん
2015/10/18(日) 17:58:11.54ID:fswpyLwB0374デフォルトの名無しさん
2015/10/18(日) 18:09:14.26ID:81sora9Q0375デフォルトの名無しさん
2015/10/18(日) 21:32:04.08ID:P1RRHvzY何気に有用な情報
0376デフォルトの名無しさん
2015/10/18(日) 21:40:15.64ID:1MrL9p77そーっすか?!
thx!
0377デフォルトの名無しさん
2015/10/19(月) 22:57:12.18ID:cIYsWzplセルの編集をする際、セルの位置にEditControlを作り、入力完了後に削除し
表に反映する手法をとっているのですが、この手法についてどう思いますか。
キャレットが出ていない状態(セルの選択状態)からの日本語入力の際
自分のマシンでは問題は起きないのですが、他のマシンでは予期せぬ入力が
される事があります。実装ミスだとは思うんですが、より良い設計があるのでは
と思っての質問です。
0378デフォルトの名無しさん
2015/10/20(火) 10:41:35.61ID:TzbTJ/Sf0379デフォルトの名無しさん
2015/10/20(火) 13:41:26.89ID:3vGCFixJGetModuleFileNameがC:\aaa\bbb\ccc\..\..\..\out見たいの吐くんだが
これに*.extを追加してFindFirstFile呼ぶとエラーになる。
どうすればいいんだ
0380デフォルトの名無しさん
2015/10/20(火) 13:42:54.85ID:xP4cg3Iy0381379
2015/10/20(火) 13:48:37.15ID:3vGCFixJ0382377
2015/10/20(火) 18:05:53.18ID:z+IONYCcレスありがとうございます。
ListViewが編集可能なのを何故か忘れてましたw
ちょっとサンプルを漁ってみたところ、EditBox表示後に
入力を受け付けるのばっかりで、ちょっと残念。
Excelみたいに子ウィンドウのない状態からでも入力を
受けたかったのですが、方向性は間違ってなかったぽいので
もうちょい頑張ってみます。
0383デフォルトの名無しさん
2015/10/21(水) 09:18:14.97ID:jQM6AnWxリストビューで列が多くあり表に収まりきらない場合は横スクロールとなりますが、
最左端の列のみ常時表示しつつ、2列目以降のみ横スクロールさせたい場合、
左端用のリストビューと横スクロールできるリストビューの2つを並べるしかないですよね?
過去、オーナードローで実現できないか試行錯誤して断念したことがあります。
0384片山博文MZ ◆T6xkBnTXz7B0
2015/10/23(金) 18:41:00.13ID:/zhY2mENstatic DWORD dw0 = 0;
DWORD dw1 = GetTickCount();
printf("\r%luHz ", 1000 / (dw1 - dw0));
dw0 = dw1;
...
このコード、どう思います?
0385デフォルトの名無しさん
2015/10/23(金) 18:56:09.27ID:3PXVM0Vu0386デフォルトの名無しさん
2015/10/23(金) 18:56:41.12ID:ogfwTZEM0387デフォルトの名無しさん
2015/10/23(金) 19:05:18.92ID:g6RvQfmz0388片山博文MZ ◆T6xkBnTXz7B0
2015/10/23(金) 19:25:03.75ID:/zhY2mENゼロ除算になりそうなときは非表示にすると行けそうですね。
0389デフォルトの名無しさん
2015/10/23(金) 19:26:43.65ID:h7v1F5gE0390デフォルトの名無しさん
2015/10/23(金) 20:21:07.65ID:ded5JV/sループにsleepもなくぶんまわすとかしなけりゃ起きない
逆にそういう場合には起きる
文脈による
0391デフォルトの名無しさん
2015/10/23(金) 20:29:44.41ID:E9Sd6aCqそうじゃなくても1000Hz以上の速度で動いたら0で割る事になるね
内容にもよるけど、1000Hzぐらいは普通にありえる範囲だよねぇ
0392デフォルトの名無しさん
2015/10/23(金) 21:30:58.46ID:CrI38Gq0> ループにsleepもなくぶんまわすとかしなけりゃ起きない
49日ちょいでラップするから、その考えは浅すぎる
0393デフォルトの名無しさん
2015/10/23(金) 21:37:01.60ID:ded5JV/s49日とか関係なしに連続で同じ値が出るなんてそれこそ1000Hzないとないだろ
0394デフォルトの名無しさん
2015/10/23(金) 21:40:53.46ID:ded5JV/s浅すぎて新島が誕生するレベルだったよ・・・
0395デフォルトの名無しさん
2015/10/23(金) 21:47:41.71ID:1FmkefyV0396デフォルトの名無しさん
2015/10/23(金) 21:53:44.01ID:ded5JV/sunsigned って1 - 2 = 0だったか?
0397デフォルトの名無しさん
2015/10/23(金) 21:58:07.21ID:h7v1F5gE初心者なんで、どの辺りが笑いどころかサッパリ分かりません
0398デフォルトの名無しさん
2015/10/23(金) 22:06:11.62ID:E9Sd6aCq0399片山博文MZ ◆T6xkBnTXz7B0
2015/10/23(金) 22:14:50.12ID:/zhY2mENちらつくので、1秒ごとにフレームレートの平均値を表示してくれ、
とのことです。できますか?
0400デフォルトの名無しさん
2015/10/23(金) 22:32:30.30ID:E9Sd6aCq一秒間の間に何回フレームが更新されたか数えて表示すればよいだけだろ
FPSの定義そのものだ
0401デフォルトの名無しさん
2015/10/23(金) 22:34:47.28ID:ded5JV/sstatic DWORD dw0 = 0;
DWORD dw;
DWORD dw1 = GetTickCount();
static int n = 0;
if( dw0 > dw1 ){
dw = ( 0xFFFFFFFF - dw1 ) + dw0;
}else{
dw = dw1 - dw0;
}
n++;
if( dw0 >= 1000 ){
printf("\r%luHz ", n);
n = 0;
dw0 = 0;
}
0402デフォルトの名無しさん
2015/10/23(金) 22:40:23.49ID:ded5JV/sif( dw >= 1000 ){
orz
}
0403デフォルトの名無しさん
2015/10/23(金) 22:50:29.05ID:ded5JV/sdw = ( 0xFFFFFFFF - dw0 ) + dw1;
>printf("\r%luHz ", n);
printf("\r%dHz ", n);
orz = 3;
憑かれているようだ吊ってくる・・・
0404デフォルトの名無しさん
2015/10/24(土) 04:06:02.84ID:7oDBCbbLdw = dw1 - dw0;
だけで十分。
ラップアラウンドしても問題無い。
0405デフォルトの名無しさん
2015/10/24(土) 06:14:20.31ID:1uTcqIZi0406片山博文MZ ◆T6xkBnTXz7B0
2015/10/24(土) 07:46:57.94ID:E5/Z8Xm5static DWORD count = 0;
static DWORD dw0 = 0;
DWORD dw1 = GetTickCount();
LONG span = dw1 - dw0;
if (span >= 1000) {
DWORD fps = count * 1000 / span;
DWORD dotzero = count * 10000 / span % 10;
wsprintfA(title, "%u.%u fps.", fps, dotzero);
SetWindowTitleA(hwnd, title);
dw0 = GetTickCount();
} else {
++count;
}
0407デフォルトの名無しさん
2015/10/24(土) 09:02:02.42ID:ddZkBitkなるほど〜
dw = ( 0xFFFFFFFF - dw0 ) + dw1;※
= 0xFFFFFFFF + dw1 - dw0;
= ( dw1 - dw0 ) + 0xFFFFFFFF;
1 + 0xFFFFFFFF = 0;
( dw1 - dw0 ) + 0xFFFFFFFF = ( dw1 - dw0 ) - 1;
dw = dw1 - dw0 - 1;???
※orz≡3;
dw = ( ( 0xFFFFFFFF - dw0 ) + dw1 ) + 1;
0xFFFFFFFF->0x100000000にしたいがはいんねーし・・・
結局dw = dw1 - dw0で覚えといたほうがいいな・・・
0408デフォルトの名無しさん
2015/10/24(土) 17:42:31.85ID:FPe1odjOだからといって timeGetTime 使っても大差無さそうだけど。
0409デフォルトの名無しさん
2015/10/24(土) 17:50:12.21ID:JWOZBggM0410デフォルトの名無しさん
2015/10/24(土) 17:50:36.95ID:VnqcBtM+>GetTickCountは分解能が悪い、QueryPerformanceCounterを使うべきである
0411デフォルトの名無しさん
2015/10/24(土) 17:53:41.55ID:VnqcBtM+0412デフォルトの名無しさん
2015/10/24(土) 18:33:54.83ID:niXzNvfmサンプリング定理では対象の2倍の周波数があればいいことになってるな
0413デフォルトの名無しさん
2015/10/24(土) 18:46:57.38ID:E5/Z8Xm50414デフォルトの名無しさん
2015/10/27(火) 21:51:46.93ID:aTkGcr+40415デフォルトの名無しさん
2015/10/27(火) 22:01:44.22ID:ksuKqf7O0416デフォルトの名無しさん
2015/10/27(火) 22:04:34.96ID:I14zLtiAそういうコードがあちこちにあると、どれか一つ考えぬけとかでバグが顕在化するから。
しかも再現率低くて問題箇所の発見が非常に困難になる場合があるし。
0417379
2015/10/27(火) 22:11:39.82ID:cfkfKsSkなかでごちゃごちゃやると遅くなる
0418デフォルトの名無しさん
2015/10/28(水) 13:41:57.74ID:9zUX3+weキサマは再帰でファイル削除するときに範囲外までぶっ壊すタイプだ
0419デフォルトの名無しさん
2015/10/28(水) 20:55:38.12ID:DIDF3JCGGetSystemDirectory(Path, MAX_PATH + 1);
この様に渡すと、アクセス違反が発生するんですが
何故アクセス違反になるのか原因がさっぱり分かりません。
C++のクラスを使ったプログラミングはこれが初めてです。
0420デフォルトの名無しさん
2015/10/28(水) 21:13:30.20ID:bZn9m5X1普通なら
TCHAR Path[MAX_PATH + 1];
…
GetSystemDirectory(Path, MAX_PATH);
じゃね?
0421デフォルトの名無しさん
2015/10/28(水) 21:31:49.85ID:DIDF3JCGTCHAR Path[MAX_PATH + 1];
こんな感じで宣言してあります。
その方法でやってみてもアクセス違反になりますね。
MSDNによるとGetSystemDirectoryの第2引数はMAX_PATH以上の値を指定しろとのことです。
通常の関数プログラミングではこんな問題に直面したことはないのですが。
ちなみにクラスのインスタンスはグローバルな領域に確保しています。
クラスの宣言はこんな感じです。実際のものと異なっていますが、質問の件のために割愛。
class AppBase
{
TCHAR Path[MAX_PATH + 1];
static LRESULT CALLBACK HookProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp);
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp);
};
プロシージャのクラス化を施しています。
GetSystemDirectoryはWndProc内のWM_CREATEメッセージをハンドルする際に実行しています。
0422片山博文MZ ◆T6xkBnTXz7B0
2015/10/28(水) 21:39:19.05ID:5FN/U/PsWndProcをstaticにするか、クラスの外に出せ。
0423デフォルトの名無しさん
2015/10/28(水) 21:39:24.41ID:UJXuJHMq0424デフォルトの名無しさん
2015/10/28(水) 21:46:47.48ID:DIDF3JCGWndProcはstaticではありません。
staticにするとメンバのアクセスに制限があるそうなのでstaticにしていませんでした。
試してみます。
0425デフォルトの名無しさん
2015/10/28(水) 21:51:39.30ID:gVmYV2etstatic LRESULT CALLBACK HookProc LRESULT CALLBACK HookProc
には何でstatic つけているの?
で、TCHAR Path[MAX_PATH + 1]; はにはなんでstaticないの?
0426デフォルトの名無しさん
2015/10/28(水) 21:52:32.96ID:DIDF3JCG>>422さんが仰るとおり、WndProcをクラスの外に出すしか方法がないようです。
折角クラス化してスマートに書けると思っていたのに
まどろっこしいですね・・・。
0427片山博文MZ ◆T6xkBnTXz7B0
2015/10/28(水) 21:53:01.80ID:5FN/U/Ps詳しくはWM_CREATEとCreateWindowを参照。
0428片山博文MZ ◆T6xkBnTXz7B0
2015/10/28(水) 21:57:08.81ID:5FN/U/PsSetWindowLongPtrでウィンドウハンドルと関連付けするか、
自前でハンドルマップを用意するか
0429デフォルトの名無しさん
2015/10/28(水) 21:57:42.68ID:gVmYV2etそして、クラス内のTCHAR Pathにアクセスすると
0430デフォルトの名無しさん
2015/10/28(水) 21:58:44.54ID:DIDF3JCGなんかウィンドウプロシージャをクラス内に内包して使うには
staticなフック用のプロシージャ関数と実際の処理内容を書くプロシージャのふたつが必要なみたいなんです。
この場合、HookProc内でWndProcを呼ぶ形になります。
TCHAR型の配列をstaticにしていないのはWndProc内から参照できるようにするためです。
って、これはどっちでも参照できますね・・・。
普段やり慣れていないことをするとどうも頭が回らなくなってしまう。
0431デフォルトの名無しさん
2015/10/28(水) 22:02:36.33ID:DIDF3JCGやってることがC言語で書いてた時と変わってない気がするけど。
0432片山博文MZ ◆T6xkBnTXz7B0
2015/10/28(水) 22:04:32.58ID:5FN/U/Ps0433デフォルトの名無しさん
2015/10/29(木) 05:31:45.36ID:BoW22xta0434デフォルトの名無しさん
2015/10/29(木) 09:01:57.91ID:IDJmDfji>なんかウィンドウプロシージャをクラス内に内包して使うには
>staticなフック用のプロシージャ関数と実際の処理内容を書くプロシージャのふたつが必要なみたいなんです。
LRESULT CALLBACK HookProc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp )
{
return Window.WndProc( hWnd, msg, wp, lp );
}
こういうこと?
それならWndProcにstaticは要らないよ
0435デフォルトの名無しさん
2015/10/29(木) 09:21:01.44ID:ytDduPxZstaticなWndProcからインスタンスごとのWndProc呼び出すためだろ
0436デフォルトの名無しさん
2015/10/29(木) 12:06:45.89ID:IDJmDfji0437デフォルトの名無しさん
2015/10/29(木) 12:07:41.20ID:IDJmDfjiSetWindowSubclass
を薦めるべき
何も考えずに済むから
0438デフォルトの名無しさん
2015/10/29(木) 15:43:47.89ID:NLVhxZ3Aインスタンスのメンバを渡そうとするとアクセス違反が発生するのは相変わらずです。
恐らくインスタンスのポインタが不正なアドレスを指し示しているからなのでしょうが
その原因が釈然としないんですよね。グローバル領域でインスタンスを生成しているので
どこからでもアクセス可能なはずなんですが・・・。
>>434
staticなのはHookProcのみでWndProcはstaticを付けていません。
>>435
WNDCLASSEXのlpfnWndProcにHookProcを指定し
CreateWindowExのlpParamにインスタンス自身のポインタを渡してから
コールバックでHookProcが呼び出された時にGetWindowLongでLPARAMに格納されている
インスタンス自身のポインタを受け取り、それからWndProcを呼び出しています。
>>437
将来的には子ウィンドウをサブクラス化してひとつのインスタンスからすべてのウィンドウを管理するつもりです。
0439デフォルトの名無しさん
2015/10/29(木) 15:53:33.92ID:RcFd5cz1>なんかウィンドウプロシージャをクラス内に内包して使うには
>staticなフック用のプロシージャ関数と実際の処理内容を書くプロシージャのふたつが必要なみたいなんです。
この根拠(出典)がわからん。
0440デフォルトの名無しさん
2015/10/29(木) 16:03:24.63ID:ytDduPxZCreateWindowExのlpParamはWM_CREATEでLPARAMとして受け取れるLPCREATESTRUCTのlpCreateParamsな
GetWindowLongPtrのGWLP_USERDATAを使いたいならWM_CREATE時に自分でSetWindowLongPtr使うなりしろ
>>439
名前がHookProcになってるだけで正体はstaticなWndProcなんだろ
0441デフォルトの名無しさん
2015/10/29(木) 16:07:34.46ID:RcFd5cz1それはわかっている。
質問者はもしかして「静的なウィンドウプロシージャと動的なウィンドウプロシージャの2つが
必要」と思っているのではないか、と思っての確認だ
0442デフォルトの名無しさん
2015/10/29(木) 16:45:51.79ID:IDJmDfjiこれの意味が良く分らないけど、一つのインスタンスですべてのウィンドウを管理したいんなら
>>434にも書いたけど、
LRESULT CALLBACK HookProc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp )
{
return Global_Window_Manager.WndProc( hWnd, msg, wp, lp );
}
↑こういうことがしたいの?
しかし、一つのインスタンスですべてのウィンドウを管理するってのは
ここにいる殆どの人にとっては、???だと思うし、適切な助言はもらえないかも
普通この手の話題はSetWindowSubclassが最適解なんだが・・・
0443デフォルトの名無しさん
2015/10/29(木) 17:15:19.02ID:NLVhxZ3A参照したページは下記以外にもありますが、一応の出典はこちらになります。
■■Programmer's Studio■■
http://members3.jcom.home.ne.jp/progstudio/win_tips1.html
■■Programmer's Studio■■
http://members3.jcom.home.ne.jp/progstudio/win_tips2.html
>>440
はい。CreateWindowExのlpParamに渡したインスタンス自身のポインタはGetWindowLongで受けとることができます。
勿論、lp->lpCreateParamsからも受け取ることができます。
>>441
コールバック関数からはインスタンスのアドレスが取れないそうです。
ですので、staticが付いているプロシージャとstaticが付いていないプロシージャがあるわけです。
この辺の理由について私にはよく分かりません。言語的な仕様なのかWindowsの仕様なのか。
0444デフォルトの名無しさん
2015/10/29(木) 17:26:21.42ID:NLVhxZ3Aベースとなる親ウィンドウについてはサブクラス化は必要なく
ウィンドウ内に配置するフォームやボタンなどの子ウィンドウについてはサブクラス化する必要がありますね。
そうしないと1つのプロシージャの中に全部のプロシージャを書かないといけなくなりますから。
ソースコードが読みづらくなりますし、そのことがバグの温床になりえるので。
1つのインスタンスでアプリケーション内のすべての子ウィンドウを管理するのは
一般的なアプリケーションで実装している方法ではないのかな?
0445デフォルトの名無しさん
2015/10/29(木) 17:26:43.70ID:IDJmDfjiXP以降から登場したSetWindowSubclassつかうか
GetWindowLongでインスタンス取得してinst->WndProcしろよ
>CreateWindowExのlpParamに渡したインスタンス自身のポインタはGetWindowLongで受けとることができます。
これは初耳だな
これで落ちてるだけじゃね?
0446デフォルトの名無しさん
2015/10/29(木) 17:33:07.82ID:IDJmDfji>1つのインスタンスでアプリケーション内のすべての子ウィンドウを管理するのは
>一般的なアプリケーションで実装している方法ではないのかな?
それなら同じクラスのボタンを複数個表示したい場合はどうするんだ?
auto *button = new button_class( parent, x, y, w, h );
とすればいくらでも生成出来たほうが良いだろう
0447デフォルトの名無しさん
2015/10/29(木) 17:44:38.19ID:IDJmDfjiオーバーラップのウィンドウクラスで子ウィンドウのサブクラスを管理しても良いんだが
その辺は自由といっちゃ自由なんだが・・・
既存のウィンドウクラスをサブクラス化するなら結局SetWindowSubclassを使うことになるから
どうせなら親のオーバーラップウィンドウのインスタンスの紐付けにもSetWindowSubclassを使えばよいだろう
そういうのの専用のAPIなのでまず間違いが無い
0448デフォルトの名無しさん
2015/10/29(木) 18:01:42.16ID:RcFd5cz1>CreateWindowExのlpParamに渡したインスタンス自身のポインタはGetWindowLongで受けとることができます。
これは君の誤解。WM_CREATE時にSetWindowLong()してるから受け取れるんだよ。参照しているページの
コードを正しく読みとかなきゃ。
たぶん基本的なことがわかっていないので、俺のコメントはここまで。あとは他の方にまかせる。
0449デフォルトの名無しさん
2015/10/29(木) 18:02:20.98ID:RcFd5cz10450デフォルトの名無しさん
2015/10/29(木) 19:59:21.22ID:lCX/HIGLと思ったがやはり
>>448 >>436
につきるな
0451デフォルトの名無しさん
2015/10/29(木) 23:14:44.05ID:NLVhxZ3A>>443の参照先のCBaseWnd::CallProc内の
//_thisポインタが取得できなかった場合...
if( ! thisPtr )
この部分に該当する私が作成しているソースコードがif(thisPtr = NULL)になっていたのが原因でした。
本来ならif(thisPtr == NULL)ですね。
以前ポインタを使ったプログラムでif(!〜)で書くとうまく動かないケースがあったので
if(〜 == NULL)と書こうとしたところを打ち間違えていただけでした。大変失礼しました。
なんでデバッガの自動変数のthisポインタがいつも0(NULL)なんだろうと不思議に思っていたら・・・ですね。
質問の件のアクセス違反の問題は自己解決しました。
>>445>>448
ううう、SetWindowLongをコメントアウトしたらウィンドウを閉じてもIDEがデバッグ中のままですね。
それじゃあ、CreateWindowExのlpParamにセットしたthisポインタは一体なんなんだろう・・・。
2回同じthisポインタをセットしてることになりませんか?
>>446
それはですね、ベースのインスタンス内のコンテナに入れようかと思っています。
その場合もプロシージャが二段構成になるのでしょうか、面倒ですね。
こんなことしなくちゃいけないならプロシージャは普通の関数にした方がいいかもしれないですね。
>>447>>450
SetWindowSubclassは使ったことはあります。同じことがSetWindowLongでもできますけど。
GetWindowLongPtrは32bitと64bit両方対応できる書き方のようですね。
はい、質問の件は解決しちゃったのでこの質問はこれで閉じます。
スレの流れが意味不明ですみません。みなさん、ありがとうございました。
0452デフォルトの名無しさん
2015/10/30(金) 01:24:20.19ID:9r6cQokq推奨されている理由を理解してるなら好きにすればいいと思うよ。
0453デフォルトの名無しさん
2015/10/30(金) 10:55:25.00ID:bGTI8z09if(thisPtr = NULL) 文法エラー出ない
if(NULL == thisPtr) 文法エラー出ない
if(NULL = thisPtr) 文法エラー出る
0454デフォルトの名無しさん
2015/10/30(金) 11:00:33.58ID:9r6cQokq0455デフォルトの名無しさん
2015/10/30(金) 12:57:44.73ID:FKezdCziそんな化石みたいなノウハウは忘れて、コンパイルオプションに /Wall 付けとけ
0456デフォルトの名無しさん
2015/10/30(金) 13:05:37.49ID:fK4ls09n0457デフォルトの名無しさん
2015/10/30(金) 14:36:20.28ID:d4FfMDoX「thisPtrがNULLのとき」と、thisPtrについて問いたいのを、
「NULLがthisPtrのとき」のように、NULLについて問う文面に変形したからって
はたして読みやすくなるのか、甚だ疑問だなあ
命題の逆という意味でも気持ち悪いし
0459デフォルトの名無しさん
2015/10/30(金) 16:35:01.19ID:fK4ls09nそういう風に読むからそう感じるだけで、詠み方は個人の自由だから本質的に関係なくね?
NULL==thisPtrなんだから、そのまま
「NULLと等しいthisPtrのとき」
って読んでも良いわけでさ
0460デフォルトの名無しさん
2015/10/30(金) 16:38:25.59ID:WKDnxxt/> if(thisPtr = NULL) 文法エラー出ない
お前らのコンパイラさんは警告出してくれないの?
0461デフォルトの名無しさん
2015/10/30(金) 16:46:58.80ID:d4FfMDoX「thisPtrがダメなら」をif(!thisPtr)と正直に書けばいいのにね
0462デフォルトの名無しさん
2015/10/30(金) 16:52:12.91ID:tBRMFkFs質問者のレベルもわかろうというもの。
文法の話題はその辺にしておこうや。
0463デフォルトの名無しさん
2015/10/30(金) 16:54:57.38ID:WKDnxxt/「ダメならNULLが入っている」というのは危険やろ
0xFFFFFFFF(-1)が入っていたらアウトやで
0464デフォルトの名無しさん
2015/10/30(金) 17:03:08.13ID:WKDnxxt/if(thisPtr) は良いとしても
if(!thisPtr) は使わないようにしている
! の存在が分かりづらいから
0465デフォルトの名無しさん
2015/10/30(金) 17:08:51.57ID:4lmsW84L0466デフォルトの名無しさん
2015/10/30(金) 17:14:41.49ID:d4FfMDoXダメか否かを0と非0で示すのはB言語の時代から続いてる慣習で
そこを今さらゴネる奴ぁ破門でおk
HRESULTみたいのはともかくINVALID_HANDLE_VALUEはクソ
0467デフォルトの名無しさん
2015/10/30(金) 17:58:47.68ID:EtgcZYvF警告が出ないとは書いてないな
エラーが出ないと書いてある
良く嫁
0468デフォルトの名無しさん
2015/10/30(金) 18:59:11.28ID:WKDnxxt/ミスしてても警告出るなら気づくし直せるんじゃね?そうしたら
>この部分に該当する私が作成しているソースコードがif(thisPtr = NULL)になっていたのが原因でした。
ということも無かったよな?と言っているわけではっきりそう書かないと分からないのか?
というかその点については>>455でも指摘されているんだが
お前はよく読んだ上でそういうこと言っているの?
0469デフォルトの名無しさん
2015/10/30(金) 19:05:07.31ID:BpwNkir2このスレ住人のプログラムは警告がいっぱい出すぎていやぽになるから、
出すのはエラーだけで警告は出ないようにしている奴がスレの大多数だよ
>>465
おっさん目・脳が原因だから、そんなことしても駄目なんだよ
0470デフォルトの名無しさん
2015/10/30(金) 19:33:22.34ID:GDTU3KP4単独事故はいくらでもしていいが他人を巻き込むなよ
0471デフォルトの名無しさん
2015/10/30(金) 21:32:15.65ID:7o442mgOあまりに落ちるのでchoromeにしようとしてたのに
0472デフォルトの名無しさん
2015/10/30(金) 21:59:26.07ID:XZwfZSuT合計いくらでしょう?
○ 120 * 5 = 600
× 5 * 120 = 600
最近の小学校ではこうなるしな
0473デフォルトの名無しさん
2015/10/30(金) 22:44:57.11ID:S9hryATs最近じゃない、大昔からや
朝日新聞社(1972年1月26日).
“正しい 答えの式: 4 × 6 = 24−これは間違い: 6 × 4 = 24−大阪府の小学校のテスト”.
朝日新聞(朝日新聞社): p. 17
0474デフォルトの名無しさん
2015/10/30(金) 22:53:29.75ID:GDTU3KP40475デフォルトの名無しさん
2015/10/30(金) 23:07:00.22ID:gPbmFrsE理解した
0476デフォルトの名無しさん
2015/10/30(金) 23:11:57.95ID:81BFIqC3ちょっとずれた話だけど、慣習というなら「0がダメ」「非0がダメ」両方存在するからややこしい。
整数と真偽値の区別がなくしたことで言語仕様を小さく抑えるのに役立ったけど、今となっては
やっかいな負の遺産だな。
0477デフォルトの名無しさん
2015/10/31(土) 00:27:54.26ID:VI585LHq40年が大昔なんか!
新聞に取り上げられる話なんかw
0478デフォルトの名無しさん
2015/10/31(土) 08:35:58.58ID:lwmwKgKI言語仕様だけの話じゃなくなってるぞ
いろんなライブラリの規約で0ターミネートが広く浸透してるからな
ところで、0ターミネートを0xffffffffターミネートにしたら
やっかいな負の遺産とやらが片付くのか?
0479デフォルトの名無しさん
2015/10/31(土) 09:29:08.11ID:/3zA5kgSこんなのが両方存在するからややこしい。
int err = func();
if ( ! err ) {
}
if ( func() ) {
}
さすがにboolだったら成功をfalseとするやつはいないだろう。
0480デフォルトの名無しさん
2015/10/31(土) 10:29:15.04ID:XOcT6ZqB0481デフォルトの名無しさん
2015/10/31(土) 11:32:55.48ID:NotpAYNaそれはネーミングがクソ
せめて errno とか err_code とかにしてくれ
0482デフォルトの名無しさん
2015/10/31(土) 12:01:05.96ID:eH4IcMDe0483デフォルトの名無しさん
2015/10/31(土) 12:29:13.90ID:/3zA5kgSよくあるひとつの「慣習」だな。0以外の値がエラーだからエラーの有無を表す真偽値として扱うという。
それ自体糞だが。
0484デフォルトの名無しさん
2015/10/31(土) 12:37:38.70ID:VI585LHq0485デフォルトの名無しさん
2015/10/31(土) 12:51:33.88ID:CR8bSv/nつまりINVALID_HANDLE_VALUEはクソ
0486デフォルトの名無しさん
2015/10/31(土) 12:57:44.74ID:tqUin/Tsこいつのせいで安全な終了処理がどれだけ煩雑になることか
0487デフォルトの名無しさん
2015/10/31(土) 13:00:30.50ID:/3zA5kgS「ネーミングがクソ」ってのはそっちのが的確だな。
0488デフォルトの名無しさん
2015/10/31(土) 13:13:43.82ID:tqUin/Tsまず
120 * 5 = 600
整数ないしは実数の四則演算は可換である
したがって
5 * 120 = 600
と書けば小学校でも正解にされる
0489デフォルトの名無しさん
2015/10/31(土) 13:16:19.32ID:VI585LHq掛け算の順序問題
0490デフォルトの名無しさん
2015/10/31(土) 15:44:33.25ID:RIZFllKe1 * 120 * 5 = 600
なんじゃないのー
最初の1を省略すんなよ
0個かもしれないだろう?
0491デフォルトの名無しさん
2015/10/31(土) 15:49:06.96ID:GVk0olpQ掛けられる数は答えと同じ単位になるんでしたね?
次からは気をつけましょう
0492デフォルトの名無しさん
2015/10/31(土) 15:54:53.79ID:eH4IcMDe5個*120(円/個)=600円
どっちも正解
0493デフォルトの名無しさん
2015/10/31(土) 15:59:20.41ID:IVNTd+mA>1つ120円のお菓子を5個買いました。
だから
120 / 1 * 5 = 600
か、もしくは5個=5セット、という意味なら単に
120 * 5 = 600
じゃね?
例えば「5つ120円のお菓子を5個買いました」だったとして
5 * 120 * 5 =
で値段を求める解釈は無理じゃね?
普通に考えて120円か600円のどっちかじゃね?
0494デフォルトの名無しさん
2015/10/31(土) 16:16:44.01ID:RIZFllKe左端のオペランドの型が式の型という考え方か
0495デフォルトの名無しさん
2015/10/31(土) 16:18:13.74ID:RIZFllKe0496デフォルトの名無しさん
2015/10/31(土) 17:30:40.43ID:jgYZGk3p0497デフォルトの名無しさん
2015/10/31(土) 18:40:14.44ID:VXrj8Wc8> BOOLと型指定してるくせに戻り値が3値だったりしなければどうでもいい
これは同意するけど
INVALID_HANDLE_VALUE になんの関係が?
0498デフォルトの名無しさん
2015/10/31(土) 19:10:00.57ID:IS0mfGaY0499デフォルトの名無しさん
2015/10/31(土) 19:24:23.76ID:qtS/NLO90500デフォルトの名無しさん
2015/10/31(土) 19:29:57.81ID:/3zA5kgSBOOLをTRUE/FALSEと比較する式を書くなという人がいるようだが、ここは明示的に比較するのが正しい。
0501デフォルトの名無しさん
2015/10/31(土) 20:31:10.80ID:IVNTd+mAhttps://msdn.microsoft.com/ja-jp/library/cc411211.aspx
BOOL ShowWindow(
戻り値
ウィンドウが以前から表示されていた場合は、0 以外の値が返ります。
↑ほら、TRUEを返すとは書いてないよ
0502デフォルトの名無しさん
2015/10/31(土) 20:38:53.32ID:GVk0olpQ0503デフォルトの名無しさん
2015/10/31(土) 21:30:23.02ID:BXlIMP23TRUEと比較するな
です
0504デフォルトの名無しさん
2015/10/31(土) 23:26:01.93ID:9zRzzHDy無効のとき0と規定されているものを真偽判定することの何が「暗黙に」なんだ?
まさかとは思うがif(some_func())よりもif(some_func() == TRUE)が正しいと言っているのか?
0505デフォルトの名無しさん
2015/10/31(土) 23:40:02.48ID:aOI+99BRif(XXX == TRUE ) いくない
if(XXX) いいよ
if(!XXX) いいよ
0506デフォルトの名無しさん
2015/10/31(土) 23:44:09.17ID:/3zA5kgSsome_func()がBOOLのときif(some_func())とするのが糞。
BOOLだがTRUEを返すとされていないならif(some_func() == TRUE)はそもそも仕様と合致していない。
0507デフォルトの名無しさん
2015/11/01(日) 00:00:44.95ID:a/KTrDXN0508デフォルトの名無しさん
2015/11/01(日) 00:16:05.43ID:SE20IW2P仲間を連れてくるか、一人二役にしないと続かないぜそれ
0509デフォルトの名無しさん
2015/11/01(日) 00:27:14.62ID:U4S4bby1BOOLを-1と比較しろと?
BOOLという命名を差し置いて何がクソなんだ?
TRUEを返さない関数の戻りをTRUEと比較する話はイミフすぎ
0510デフォルトの名無しさん
2015/11/01(日) 00:48:02.08ID:YfxO7Cob0511デフォルトの名無しさん
2015/11/01(日) 02:37:27.29ID:Ni/K5kZr0512デフォルトの名無しさん
2015/11/01(日) 03:22:19.74ID:l/1SHJPi0513デフォルトの名無しさん
2015/11/01(日) 07:56:42.08ID:CjOActT4C#はWindowsアプリケーションの雛型を強制的に使わせられるので、OS、システムに突っ込んだ自由なことはできない。
0514デフォルトの名無しさん
2015/11/01(日) 08:07:26.53ID:xZNvf6uKあと起動も遅い
0515デフォルトの名無しさん
2015/11/01(日) 10:35:59.99ID:iCjS0aFWコンソールアプリとかも作れますが…
0516デフォルトの名無しさん
2015/11/01(日) 11:23:37.35ID:jrBbxAacC#で別の意味で難しくなることが増える
同じ難しいならPCの仕組みに肉迫している方が勉強になる
0517デフォルトの名無しさん
2015/11/01(日) 12:21:02.83ID:xuiW6lxiC#からWin32APIを呼ぶことも出来るし、(推奨されてないが)必要に応じてポインターとかも使える。
デバイスドライバーを作るのでもなければ、自由度で困ることないんじゃないか。
リアルタイム処理をしようとするとGCが絡んできちゃうけど。
0518デフォルトの名無しさん
2015/11/01(日) 14:10:14.00ID:xuiW6lxivar form = new System.Windows.Form();
form.ShowDialog(); // モードレスなら、form.Show();
0519デフォルトの名無しさん
2015/11/01(日) 14:43:19.93ID:tjf5Il2M0520デフォルトの名無しさん
2015/11/01(日) 17:08:02.46ID:l/1SHJPi内部でWin32API呼ばれてたりしないん?
0521デフォルトの名無しさん
2015/11/01(日) 17:37:44.50ID:8eOJvOceおっさんはC#を覚えることが出来ないからだよ
(C++ Winの標準のMFCすらできなくて、Win32APIってのもあるだろう)
俺はいまから言語覚えてWinプログラムする奴にはC#を使えってアドバイスするよ
0522デフォルトの名無しさん
2015/11/01(日) 18:00:00.72ID:tjf5Il2M0523デフォルトの名無しさん
2015/11/01(日) 18:26:04.54ID:dVueqhOd何が何やらさっぱりピーマン。:-)
なので、シンプルな ATL/WTL を使い続けてる俺はおっさん。
0524デフォルトの名無しさん
2015/11/01(日) 20:38:06.85ID:iCjS0aFWそりゃ呼ばれまくってるよ
System.Windows.FormsはWin32の高度なラッパーだよ
つかなんで今の時代でそんな疑問が湧くのかが疑問だよ
0525デフォルトの名無しさん
2015/11/01(日) 21:42:12.60ID:9iW+1wjJ自作アプリのハンドルをとってWorkerWやSHELL_DefViewの子にして順序を入れ替えてみたりしたのですがうまくいきません。
winapiは今回初めて触ったレベルなのでウィンドウの仕組みをちゃんと理解できてないのですが構造的に無理なのでしょうか
osはwin8.1です。助言いただければ幸いです
0526デフォルトの名無しさん
2015/11/01(日) 21:45:10.78ID:VmCqG/zA0527デフォルトの名無しさん
2015/11/01(日) 21:52:08.17ID:lhwvxGV2ガジェット
0528デフォルトの名無しさん
2015/11/01(日) 22:15:37.95ID:IUMffqeLありがとうございます!
win7はほとんど触った事がなかったので盲点でした
その方向でまた調べてみます
0529デフォルトの名無しさん
2015/11/02(月) 00:56:48.05ID:B+3rH0MH開発効率が圧倒的に違うし。
0530デフォルトの名無しさん
2015/11/02(月) 01:30:43.87ID:idmQOjMoなら>>511もwin32使ってるよな?
0531デフォルトの名無しさん
2015/11/02(月) 01:48:14.22ID:SpPr0mCaわざわざC#とかでやる意味あるかな
0532デフォルトの名無しさん
2015/11/02(月) 01:59:02.76ID:YYtynqW4c#だと好きな位置に好きな部品を置けるからいい
0533デフォルトの名無しさん
2015/11/02(月) 06:59:59.05ID:6BSNMQg50534デフォルトの名無しさん
2015/11/02(月) 07:08:26.19ID:X4MwKL6E0535デフォルトの名無しさん
2015/11/02(月) 09:10:22.37ID:jypI/AIk縦を伸ばせ
タスクバーを横置きしてるが不自由
0536デフォルトの名無しさん
2015/11/02(月) 09:31:10.98ID:Oo4chQlF0537デフォルトの名無しさん
2015/11/02(月) 10:25:18.08ID:MWHqCb8w0538デフォルトの名無しさん
2015/11/02(月) 10:38:08.45ID:u1Xcwdjg0539デフォルトの名無しさん
2015/11/02(月) 21:36:03.71ID:X4MwKL6E0541デフォルトの名無しさん
2015/11/02(月) 23:09:49.75ID:YJ91Wm1Pマルチディスプレイの1つをそうやってる奴はいるよ
0542デフォルトの名無しさん
2015/11/03(火) 14:04:14.68ID:C0Kah9v/それこそDPI次第だろうに
0543デフォルトの名無しさん
2015/11/03(火) 16:09:42.06ID:p2mb8RLLこれがいい
0544デフォルトの名無しさん
2015/11/03(火) 19:09:00.75ID:IYCkVucX0545デフォルトの名無しさん
2015/11/05(木) 13:37:18.60ID:k1mCzttB個人情報が含まれてる気がしてくる
0546デフォルトの名無しさん
2015/11/05(木) 22:38:09.49ID:8vWqbQMQだからゴチャゴチャしたの消して、
そのURLで同じもの表示されるならそっち貼るように気をつけてるな。
0547デフォルトの名無しさん
2015/11/05(木) 22:53:38.21ID:q6SXWkeZ0548デフォルトの名無しさん
2015/11/06(金) 17:06:20.32ID:iMrwfLZD0549デフォルトの名無しさん
2015/11/06(金) 21:10:06.89ID:rwaJO4C4これを実行してドロップダウンリストをクリックすると、
http://wktk.vip2ch.com/vipper0097.png のようになってしまい、
他のコントロールをクリックしても反応しなくなってしまいます。
どうしたら正しく動作するようにできるのでしょうか?
int CALLBACK wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow){
WNDCLASSEXW mainWindow = { sizeof(WNDCLASSEXW) , CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW ,
DefWindowProcW, 0 , 0 , hInstance , LoadIconW(hInstance, IDI_APPLICATION) , LoadCursorW(hInstance, IDC_ARROW) ,
(HBRUSH)(COLOR_WINDOW + 1) , NULL , L"mainWindow" , NULL };
ATOM mainWindowClass = RegisterClassExW(&mainWindow);
HWND hMainWindow = CreateWindowExW(WS_EX_OVERLAPPEDWINDOW, (LPCWSTR)mainWindowClass, L"Window",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
ShowWindow(hMainWindow, nCmdShow);
/*中略*/
HWND hCombobox3 = CreateWindowExW(0, L"COMBOBOX", L"Combo Box", WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, 96 * 1, 30 * 5, 90, 24, hMainWindow, NULL, hInstance, NULL);
SendMessageW(hCombobox3, CB_ADDSTRING, 0, (LPARAM)L"(None)");
SendMessageW(hCombobox3, CB_ADDSTRING, 0, (LPARAM)L"text");
SendMessageW(hCombobox3, CB_ADDSTRING, 0, (LPARAM)L"Combo Box");
SendMessageW(hCombobox3, CB_ADDSTRING, 0, (LPARAM)L"Add String");
SendMessageW(hCombobox3, CB_SETCURSEL, 0, 0);
/*中略*/
MSG msg;
BOOL bRet;
while ((bRet = GetMessageW(&msg, hMainWindow, 0, 0)) != 0){
if (bRet == -1) break;
else{
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
}
return msg.wParam;}
0550デフォルトの名無しさん
2015/11/07(土) 01:47:54.37ID:57BfyfLk0551片山博文MZ ◆T6xkBnTXz7B0
2015/11/07(土) 05:43:01.33ID:b7KKpBJqDefWindowProcWじゃなくてちゃんとウィンドウプロシージャを指定しないとダメ。
0552デフォルトの名無しさん
2015/11/07(土) 08:59:28.58ID:RwXev/UR0553デフォルトの名無しさん
2015/11/07(土) 12:45:52.16ID:Lam93S6q0554デフォルトの名無しさん
2015/11/07(土) 15:04:10.72ID:RwXev/UR本当に謎仕様
0555デフォルトの名無しさん
2015/11/07(土) 21:34:04.52ID:AjJRvCBZ0556デフォルトの名無しさん
2015/11/07(土) 23:19:12.39ID:bQCknPED懐かしくてフイタw
0557デフォルトの名無しさん
2015/11/08(日) 02:04:59.85ID:w5WQ9GZh0558デフォルトの名無しさん
2015/11/10(火) 18:45:13.27ID:co6NjOXkRECTのポインタの引数をとるAPIなどに
func( &RECT{ 0, 0, w, h } )
のようにして引数を与えるとコンパイルは通るしwarningも出ないのに
インテリセンスに
>IntelliSense: 式は左辺値または関数指定子である必要があります
という風に怒られ、ソースコードに赤の波線がついて鬱陶しいです
エラー一覧にも同様の文章が列挙され、これも鬱陶しいです
どうやったら黙らせる事が出来ますでしょうか
0559デフォルトの名無しさん
2015/11/10(火) 20:06:38.54ID:ll/jQOrE0560デフォルトの名無しさん
2015/11/10(火) 23:09:15.72ID:elivAdat確かに、アドレス演算子のオペランドが
左辺値でも関数指定子でもないね
純右辺値だぞこれ
&1つってんのと同じ
警告が聞きたくなければ吊るしか・・・
0561uy ◆Qawu9.2l1E
2015/11/11(水) 06:03:51.37ID:uYSp+fPE何故そんな初歩的なバグが放置されてるか?
A : 誰も使ってないから
0562デフォルトの名無しさん
2015/11/11(水) 06:56:06.60ID:86F6q36J0563デフォルトの名無しさん
2015/11/11(水) 08:32:07.52ID:rzj2E3ocこんなのも同じ警告出る?
0564デフォルトの名無しさん
2015/11/11(水) 12:07:01.93ID:WDtG518Pそれがコンパイラの警告は出ないんですよ
VSは大昔からこの書き方に対応していて
DirectXなんかでは良くfunc( &D3DXVECTOR3( x, y, z ) );
とか便利なんでよく使っていました
コンパイラは警告も出さないしコンパイルも通るし
動作も期待通りなのに
インテリセンスだけが文句言ってくるんです
コンパイラとインテリセンスで動作がチグハグなんです
0565デフォルトの名無しさん
2015/11/11(水) 12:48:49.97ID:yiYjUqQwバグじゃね?
2010 の頃にも class enum でインテリセンスとコンパイラがちぐはぐだったし
0566デフォルトの名無しさん
2015/11/11(水) 13:56:12.23ID:WDtG518Pstruct test2{ int x; test2(){} }; //コンストラクタ有り
void func( test1 *t ){}
void func( test2 *t ){}
func( &test1{} ); //インテリセンスが警告
func( &test2{} ); //OK
func( &test1() ); //デフォルトのコンストラクタを呼び出すスタイルならOK
色々試してみたんだけど、コンストラクタが有る構造体ならインテリセンスの警告は出ません
コンストラクタがない構造体の場合のみインテリセンスが文句を言ってきます
しかし、コンストラクタが無い構造体でも、&test1()という風に
デフォルトのコンストラクタを呼び出すスタイルだとインテリセンスのエラーは消えます
(しかし、コンストラクタの無い構造体を初期化リストで初期化した物のポインタをAPIに渡したい
というのが元々の悩みだったので、デフォルトのコンストラクタでは役にただず、意味がありません)
いずれの場合でも、コンパイラは警告もエラーも出さず、コンパイルは通ります
C++0xの細部は複雑すぎてよく分りませんわ
0567デフォルトの名無しさん
2015/11/11(水) 16:57:49.05ID:1hY3wyl+0568デフォルトの名無しさん
2015/11/11(水) 19:38:27.44ID:YDOXgbvn0569デフォルトの名無しさん
2015/11/14(土) 12:05:04.37ID:kYx4kaK6short flush
long flush
bottom spray
0570デフォルトの名無しさん
2015/11/15(日) 16:50:10.08ID:PpDrlMq1sendを1回コールして送られたパケットは、
recvを1回コールして全て受け取れることは保証されてるんでしょうか?
例えば、sendは1回で送ったけど、recvは2回かけて受け取るケースがあったりするんでしょうか?
0571デフォルトの名無しさん
2015/11/15(日) 17:09:21.28ID:PV6fOtMt>recvを1回コールして全て受け取れることは保証されてるんでしょうか?
いいえ
>例えば、sendは1回で送ったけど、recvは2回かけて受け取るケースがあったりするんでしょうか?
はい
0572デフォルトの名無しさん
2015/11/15(日) 18:43:50.08ID:Vi+EqW0vストリームは保証されてない
0573571
2015/11/15(日) 19:24:09.72ID:PpDrlMq1ありがとうございます。
分かりました。
>>572
失礼しました。
TCP/IP通信が前提です。
UDPの場合はパケットが届かずに捨てられる可能性を考慮しないといけませんよね。
0574デフォルトの名無しさん
2015/11/15(日) 23:26:37.86ID:bwAQtTVZ有効であるかどうかテストする関数または方法を教えてください
宜しくお願いします
0575デフォルトの名無しさん
2015/11/15(日) 23:31:55.73ID:DVr3HCs90576デフォルトの名無しさん
2015/11/15(日) 23:44:58.72ID:SwaoEtt5失敗したら無効なハンドルなんじゃね?
しらんが
0577デフォルトの名無しさん
2015/11/15(日) 23:48:38.46ID:bwAQtTVZ質問の仕方が悪かったです、すみません
過去に取得したHDCが、現在でも有効というか利用可能であるかどうかを確認する関数はありませんか?
例えばHWNDの場合だとIsWindow関数を使うことで有効であるかどうかを見極めることができます
それと同じようなものが無いかという質問です
宜しくお願いします
0578デフォルトの名無しさん
2015/11/15(日) 23:49:21.25ID:bwAQtTVZ有難う御座います
もう少しスマートな方法でお願いします
0579デフォルトの名無しさん
2015/11/16(月) 00:39:27.67ID:QnJE0SEPじゃぁGetNearestColorはどう?
コスト低そうだよ
0580デフォルトの名無しさん
2015/11/16(月) 00:47:49.59ID:QnJE0SEPHDCに関係なく引数そのまま返す可能性も有るな
まーでもGet系のAPIはほかにも沢山有るから
好きなの使えば?HDCが無効なら失敗しそうな奴
0581デフォルトの名無しさん
2015/11/16(月) 00:49:37.84ID:QnJE0SEPその後何かに使うつもりなんだろうから
実際に何かしようとして失敗したら無効だったってことでよいんじゃね?
0582デフォルトの名無しさん
2015/11/16(月) 04:57:13.17ID:hnRSxFKX好きにしろと突き放すのが吉かと
0583デフォルトの名無しさん
2015/11/16(月) 05:07:17.50ID:WTn2umFu結局、こういう人が出てくるんですよね
まあWindowsプログラミングに則してるかどうかを理解できないことに起因する発言だと思いますけど
そういうこと言うなら
WindowFromDC単独、または、WindowFromDCからのIsWindowで判断しろ位の回答出してから言ったらどうですか?
ID:QnJE0SEPの提案は、彼にしてはよく考えてくれたと思ってるし感謝もしてますよ
0584デフォルトの名無しさん
2015/11/16(月) 06:25:34.35ID:xp46TE2K宜しくお願いします
0585片山博文MZ ◆T6xkBnTXz7B0
2015/11/16(月) 06:54:01.40ID:FxCdLFu/0586デフォルトの名無しさん
2015/11/16(月) 09:54:33.55ID:HIZPDz5u0587デフォルトの名無しさん
2015/11/16(月) 10:03:19.32ID:6H4dK92G使ってみればいいんじゃないか?
0588デフォルトの名無しさん
2015/11/16(月) 10:31:47.38ID:QnJE0SEPそれお前、後付じゃねーか
WindowsFromDCはメモリDCでは失敗するんだぞ
調べたい対象のDCは必ずウィンドウのDCってのは、俺は知らなかった情報だぞ
0589デフォルトの名無しさん
2015/11/16(月) 13:39:16.61ID:SczSLJRd0590デフォルトの名無しさん
2015/11/16(月) 18:24:25.92ID:l2x/CNAR0591デフォルトの名無しさん
2015/11/16(月) 20:06:37.73ID:sBUCKle7これだ
0592デフォルトの名無しさん
2015/11/16(月) 21:06:03.20ID:nSSKBNI/mallocのラッパーを作っとく
全てをmymalloc経由で呼び出してテストで問題がなかったら
#defeine mymalloc mallocする
おれはやらないけどね
0593デフォルトの名無しさん
2015/11/16(月) 21:30:12.35ID:QnJE0SEP適当にアクセスしてみて例外が出たら捕まえれば?
例外はC++のじゃなくてMS独自の構文の方な
でも例外でなくても他に再利用されている状態かもしれないから
結局安全性は確保できないと思うがやってみれば、知らんが
0594デフォルトの名無しさん
2015/11/16(月) 21:30:47.06ID:QnJE0SEP0595デフォルトの名無しさん
2015/11/16(月) 21:32:11.63ID:c+JfJrRBそもそものプログラムの組み方がマズいんでないかい?
0596デフォルトの名無しさん
2015/11/16(月) 22:40:09.48ID:KqlZhPmbttp://www1.axfc.net/uploader/so/2729229.zip
0597デフォルトの名無しさん
2015/11/16(月) 22:50:08.47ID:KqlZhPmb0598デフォルトの名無しさん
2015/11/16(月) 23:08:54.03ID:fdnGG03D自分の書いたプログラムが有効であるか確認する関数または方法を教えてください
宜しくお願いします
って感じか
0599デフォルトの名無しさん
2015/11/16(月) 23:36:03.19ID:rgt/lt++DC X'83
0600デフォルトの名無しさん
2015/11/18(水) 11:10:46.15ID:Amh1/iYOhttp://www.sankei.com/west/news/151117/wst1511170067-n1.html
0601デフォルトの名無しさん
2015/11/20(金) 17:05:25.15ID:pS4guF6V0602デフォルトの名無しさん
2015/11/20(金) 21:28:57.87ID:ph+B6Bvv0603デフォルトの名無しさん
2015/11/20(金) 21:30:30.96ID:mWax20BT0604デフォルトの名無しさん
2015/11/20(金) 21:49:23.14ID:97LExnIKマルチスレッドコンパイルの速さ、尋常じゃないよねw
タスクマネージャ見たら、全コア100%で貼りついてるw
これまで見た中で、最もCPUの能力を引き出しきったプログラムだよ、VC++2015はw
0605デフォルトの名無しさん
2015/11/20(金) 22:02:52.88ID:pS4guF6Vいや、シングルスレッドのほうが速いんです…
LHa for UNIXのデコーダーをWin32向けに書き換えてビルドしたやつなんですが
グローバル変数だらけでそれに頻繁にアクセスする構造になってるのでそれが影響しているような気もするんですがね
0606デフォルトの名無しさん
2015/11/20(金) 23:01:27.23ID:97LExnIKえぇ!?びっくりぽんや・・・
原理的には、ソースファイルをオブジェクトファイルにコンパイルする作業は
翻訳単位(.cpp)で独立している=並列化できるはずだし、
遅くなるようなことがあるとは考えにくいなぁ。
0607デフォルトの名無しさん
2015/11/20(金) 23:03:28.43ID:tEYsBkPr0608デフォルトの名無しさん
2015/11/20(金) 23:14:24.26ID:5Nrp/FGL0609デフォルトの名無しさん
2015/11/20(金) 23:20:04.30ID:pS4guF6Vシングルスレッドアプリケーションなんてとてもじゃないけど使い物にならないですから
デコーダーだけシングルスレッドビルドのDllにしてスレッドから呼び出せば速度も速いままいい感じにはなるんですが
このやりかたは推奨されないみたいですし
どちらにしろスレッドセーフではないので同時にデコーダーを呼び出すことは事は無いのですが、それでもやっぱり問題あるのかな
この辺が何ともわからない…
0610デフォルトの名無しさん
2015/11/20(金) 23:20:34.29ID:97LExnIKスレッド切り替えのオーバーヘッド?
Microsoftが、それが露呈するような間抜けな組み方をするとは思え・・・ いや、あるかw
>>608
あー、I/Oがボトルネックになるとキツいね。
んでも、その場合でも最悪時間はシングルスレッドと同じくらいになりそうなものだけどね。
0611デフォルトの名無しさん
2015/11/20(金) 23:29:58.12ID:lixacdxh0612デフォルトの名無しさん
2015/11/20(金) 23:33:27.15ID:pS4guF6V/MTの方です…
0613デフォルトの名無しさん
2015/11/20(金) 23:33:56.29ID:5Nrp/FGL> シングルスレッドビルドとマルチスレッドビルド
これはマルチスレッド対応のライブラリのことだったんだな。
マルチスレッド対応するということは同じメモリ領域等に同時にアクセスしない仕組みが
増えてるから、その分遅くなる。
> グローバル変数だらけでそれに頻繁にアクセスする構造
最適化しにくくなるし書き込みは排他処理になるので遅くなる
0614デフォルトの名無しさん
2015/11/20(金) 23:39:04.30ID:97LExnIK失礼したw
>>613
たしかにそれはあるだろうけど、それでも3倍の差になるだろうか?
スレッド生成や終了のオーバーヘッドでもないとそこまでの差にはならないんじゃないかなぁ?
もっとデカいペナルティってある?
0615デフォルトの名無しさん
2015/11/20(金) 23:52:14.27ID:t7TDAkzV0616デフォルトの名無しさん
2015/11/20(金) 23:58:00.82ID:5Nrp/FGLなんたらかんたらとかあったな
0617デフォルトの名無しさん
2015/11/20(金) 23:58:27.12ID:pS4guF6Vそのような気がしてたのですが
全てローカル変数にすれば少しはましになるのかな…
>>615
具体的には、300MBほどのlh7圧縮ファイルの展開速度で、/MLでは6秒ぐらい、/MTだと16秒ぐらいですね
かなりの差が出ます
0618デフォルトの名無しさん
2015/11/21(土) 05:24:33.16ID:TBiDBsF1MSDNに残ってる最古の2005でさえ、
The single-threaded CRT is no longer available.
と、書かれてたので使おうとすら思わなかったわ。
その記事の中に↓とも書かれている。今回のケースでは有効そうだが。
Defining _CRT_DISABLE_PERFCRIT_LOCKS forces all I/O operations to assume a single-threaded I/O model and use the _nolock forms of the functions.This allows highly I/O-based single-threaded applications to get better performance.
Exposure of the CRT heap handle allows you to enable the Windows Low Fragmentation Heap (LFH) for the CRT heap, which can substantially improve performance in highly scaled scenarios.
0619デフォルトの名無しさん
2015/11/21(土) 05:36:41.11ID:TBiDBsF1/MP (Build with Multiple Processes)
なので、マルチスレッドでなくてマルチプロセスな。
コンパイルをマルチプロセスで高速化するのはMITのpmakeが最初で、pmakrのオプション-jはいろんなmakeに取り入れられてる。
googleによると1970年代から存在する。
0620デフォルトの名無しさん
2015/11/21(土) 08:40:08.83ID:H2tpzR2c参考になります
どうやらCのシングルスレッドライブラリが使われることでパフォーマンスが悪くなるようですね
確かにそれらのC関数が至る所で頻繁に呼び出されています;
これならいくらでも回避方法がありそうです
原因がわかって助かりました ノシ
0621549
2015/11/21(土) 10:10:41.74ID:JyKECnY5リスト部分は正しく表示されるようになりましたが、
リストボックスを含め、マウスからの操作を受け付けない状態になってしまいます。
どうしたら正しく動作するようにできるのでしょうか?
0622デフォルトの名無しさん
2015/11/21(土) 13:58:19.88ID:EEYvP2NjCopyright (C) Microsoft Corporation 1984-2002. All rights reserved.
/MD link with MSVCRT.LIB
/ML link with LIBC.LIB
/MT link with LIBCMT.LIB
/MPなんてありませんがな。
0623デフォルトの名無しさん
2015/11/21(土) 14:25:17.12ID:6HcvIKizhttps://msdn.microsoft.com/ja-jp/library/bb385193.aspx
0624デフォルトの名無しさん
2015/11/21(土) 14:32:51.56ID:+qmJr5EIコード見ないと確実なことは言えないけど、排他の多いコードはシングルスレッドの方が速いよ
マルチスレッドで速くなるのは、スレッド生成や排他コストに比べて、並列に処理する区間が多い場合のみね(当たり前だけど)
0625デフォルトの名無しさん
2015/11/21(土) 14:38:23.97ID:JXjswKeV0626デフォルトの名無しさん
2015/11/21(土) 15:04:49.37ID:H2tpzR2chttps://msdn.microsoft.com/ja-jp/library/ms235505%28v=vs.90%29.aspx
この辺ですね、シングルスレッドライブラリはマルチスレッドライブラリより速いようですが
/MTでビルドすると頻繁にロックが発生してとても遅くなるようです
あえてロックを外してスレッドセーフでない事を理解して扱うことでマルチスレッドライブラリの関数よりさらに高いパフォーマンスを得ることができるという事のようですね
0627デフォルトの名無しさん
2015/11/21(土) 15:14:51.80ID:sbaJbg4X「一歩引いた冷静な視点で状況を俯瞰する俺」気取りの割には、
自分のレスの推敲すらできない精神状態なんですね。
ご立派です。
0628デフォルトの名無しさん
2015/11/21(土) 15:27:03.86ID:779MWCli論点ずらしブーメラン乙
そもそも驚きの表現として「ななんだって」とかあるだろ
0629デフォルトの名無しさん
2015/11/21(土) 16:29:02.36ID:JXjswKeVどこが間違っているの?
0630デフォルトの名無しさん
2015/11/21(土) 17:32:41.77ID:TBiDBsF1| Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
って、VisualStudioのバージョンは幾つだよ? VS6位? 動体保存されてるとはビックリだよ。
VS2013は
C:\>cl -? |findstr /C:/M
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.31101 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
/MP[n] use up to 'n' processes for compilation
/link [linker options and libraries] /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib
0631デフォルトの名無しさん
2015/11/21(土) 20:11:08.78ID:lo2qe4EWVC++ 1.52 持ってて仮想環境ではあるが動かせるよ w
0632デフォルトの名無しさん
2015/11/21(土) 21:53:43.77ID:rACYfPqDプログラムはどんな動作になるんだ? ちゃんとマルチスレッドしてくれるのか
0633デフォルトの名無しさん
2015/11/21(土) 22:00:37.16ID:o0TZz0/Lだからnewなんかするときも自分で排他処理しなければならなくなるよ
もちろんその他の関数呼び出すときも自前で排他処理が必要だよ
面倒だね
0634デフォルトの名無しさん
2015/11/21(土) 22:01:21.59ID:574qcmikビルドをマルチスレッドでするのとビルドしたプログラムがマルチスレッドで動くのは違うぞ
0635デフォルトの名無しさん
2015/11/21(土) 22:02:29.34ID:lYZv+i2L0636デフォルトの名無しさん
2015/11/21(土) 22:04:41.16ID:o0TZz0/Lいつもと逆のパターンで斬新だわ
0637デフォルトの名無しさん
2015/11/21(土) 22:10:03.68ID:rACYfPqDシングルスレでマルチスレランタイム使うと遅くなるからなのかな
Cはスピードが大事だからな
STLもシングルスレ用、マルチ用ってあるのかな
0638デフォルトの名無しさん
2015/11/21(土) 22:31:22.02ID:TBiDBsF1ビルドはマルチスレッドじゃなくてマルチプロセスだと言ってるだろうが。馬鹿者。
0639デフォルトの名無しさん
2015/11/21(土) 22:43:21.52ID:lYZv+i2L0640デフォルトの名無しさん
2015/11/22(日) 14:57:54.38ID:d6PbDxmSじゃ、知った上で何かまともな回答を書いてみろよ
結局、知っていても知らなくても、まともな回答ないんだろ?
言い訳見苦しいわ
0641デフォルトの名無しさん
2015/11/22(日) 15:01:12.80ID:d6PbDxmSこれだね、一番いい
0642デフォルトの名無しさん
2015/11/22(日) 15:08:13.14ID:d6PbDxmS>そもそものプログラムの組み方がマズいんでないかい?
他プロセスが作成したウィンドウのHDCを操作してる場合ってのがあるし
とりあえずHDCに関しては、そうでもない
0643デフォルトの名無しさん
2015/11/22(日) 15:37:24.13ID:vggKhYqJいちいちDCが有効かどうか判断しなくても
対象のDCに対して一番最後に呼び出したAPIが成功していたら
それ以前のAPIも成功しているだろうし、それで十分だろ
0644デフォルトの名無しさん
2015/11/22(日) 15:49:02.18ID:rXOpUu6mmerci beaucoup
0645デフォルトの名無しさん
2015/11/22(日) 17:32:36.93ID:NW0PnoYA0646デフォルトの名無しさん
2015/11/22(日) 17:39:08.81ID:msJD2Q/gmsdn
いまは本などない。
0647デフォルトの名無しさん
2015/11/22(日) 17:57:37.70ID:WMp4allawin32の中身ならヘルプとかmsdnじゃね?
0648デフォルトの名無しさん
2015/11/22(日) 18:07:03.05ID:j30Wwuuw0649デフォルトの名無しさん
2015/11/22(日) 18:10:41.71ID:YBzI3bTBボケはもう少し面白い奴を頼む
0650デフォルトの名無しさん
2015/11/22(日) 18:34:26.14ID:1TN3WChPhttp://www.amazon.co.jp/product-reviews/4797347597/ref=cm_cr_dp_see_all_btm?ie=UTF8&showViewpoints=1&sortBy=bySubmissionDateDescending
0651デフォルトの名無しさん
2015/11/22(日) 18:48:44.74ID:NW0PnoYA面白そうなので買いました
>>646
MSDNをまだまともに読めるレベルじゃないので本がいいんですよ
最近ようやく読めるようになってきたけど、ある程度知識のまとまりと目的意識がほしいので
0652デフォルトの名無しさん
2015/11/22(日) 21:11:50.80ID:Zdp83ecDVC++ 6 (SPなし)は
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
13.10.3077は
Microsoft Visual C++ Toolkit 2003 (or VC .NET 2003)
0653デフォルトの名無しさん
2015/11/22(日) 21:36:55.00ID:Zdp83ecDWindows 3.1・・・
0654デフォルトの名無しさん
2015/11/22(日) 22:20:38.47ID:PowSWGiN猫でもわかるゲームプログラミング 第2版、2009
グラフィックス描画からアニメーション、
マルチスレッドまで、C言語でWin32APIを用いて、
ゲームプログラミングに必要な基本テクを解説
各サンプルプログラムにリファインを加えるなどした第2版
0655デフォルトの名無しさん
2015/11/22(日) 22:22:12.31ID:rVLRuBGq0656デフォルトの名無しさん
2015/11/23(月) 00:26:49.20ID:1m62BNI10657デフォルトの名無しさん
2015/11/23(月) 01:37:06.45ID:KbsdUeA8> ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
ってあるけどAPIフックすらググればできるし
0658デフォルトの名無しさん
2015/11/23(月) 10:20:21.95ID:LhpXJjp9Win32APエ も古すぎーるからちょうどいい
0659デフォルトの名無しさん
2015/11/23(月) 10:27:35.49ID:Pq9DNQfd0660デフォルトの名無しさん
2015/11/23(月) 13:49:18.46ID:JWzW06M60661デフォルトの名無しさん
2015/11/23(月) 14:05:35.98ID:qqa6ydJwオンラインでなんでもググれる時代だから本より便利なんだよな
0662デフォルトの名無しさん
2015/11/23(月) 14:26:22.15ID:+Ddm91720663デフォルトの名無しさん
2015/11/23(月) 14:44:00.43ID:5yZmzCJ8オンラインの方が改訂も早ければ有利なんだけどね
0664デフォルトの名無しさん
2015/11/23(月) 16:57:02.17ID:PZ2Lz8BK0665デフォルトの名無しさん
2015/11/23(月) 22:09:47.41ID:tQcIQ+xWいまペゾルドはC#なのか
WinでプログラムするならC#だよってことか
0666デフォルトの名無しさん
2015/11/23(月) 22:18:21.01ID:lEPcq6AgMSの意向だろうけど、WinForm〜WPF世代がすっ飛ばされたのは痛い。
0667デフォルトの名無しさん
2015/11/24(火) 09:52:12.84ID:Ujv1VvaPまぁ分かりやすいけど
0668デフォルトの名無しさん
2015/11/24(火) 10:02:31.82ID:nrP7706V0669デフォルトの名無しさん
2015/11/24(火) 12:24:13.31ID:/bCK1VnE667じゃないけど、言葉遊びでしかないしょーもないレスすんなよ
お前みたいな奴が身の回りにいたらうぜえな〜完全に時間の無駄
正味の話って概念をいい加減覚えろ
0670デフォルトの名無しさん
2015/11/24(火) 12:51:56.91ID:aCNlMk5p>>668は言葉遊びじゃない、態度の問題を提起してるだけじゃないか。
0671デフォルトの名無しさん
2015/11/24(火) 12:56:47.01ID:R6RYUl/wお前はプログラミングすんの止めろ
0672デフォルトの名無しさん
2015/11/24(火) 13:13:04.35ID:cksHvZaS0673デフォルトの名無しさん
2015/11/24(火) 20:06:15.03ID:Xp7UCn3hhttp://wisdom.s akura.ne.jp/system/winapi/
ここを一通り読んだら、後は検索で補ってくだけでいける。
0674デフォルトの名無しさん
2015/11/24(火) 20:50:22.41ID:ml2gyU90あーだこーだの奴はプログラミングには向いていないから
誰かの作ったプログラムを使うだけの方が良いよね。
でも、それに対しても気に入らん、で、あーだこーだ文句言うんだろうが
0675デフォルトの名無しさん
2015/11/24(火) 20:52:54.72ID:7QWzGJiI0676デフォルトの名無しさん
2015/11/24(火) 21:12:36.36ID:rGZu8hHb0677デフォルトの名無しさん
2015/11/24(火) 21:17:37.84ID:j8x8w3e70678デフォルトの名無しさん
2015/11/25(水) 00:18:18.81ID:Vd1+RMMI金缶とかチャオほたてなど飼い主がうらやむわけで
0679デフォルトの名無しさん
2015/11/25(水) 01:33:16.23ID:l9uWvmmWイコール >>650
0680デフォルトの名無しさん
2015/11/25(水) 07:15:51.46ID:zr1GKtWh>網羅性が低い
何十ものすべての項目を、
一覧表にして載せている著者がいるけど、
何が重要なのかわからない
やたらと勉強時間がかかる割に、効果が低い。
そういう情報はインターネットで十分
50項目50時間かかって、70点しか取れない。
それより、10項目10時間で、60点取れた方がよい
著者がどの項目を選んで、説明したのかが重要。
そこがプロたるゆえんで、読者がお金を払う価値がある
TACなどの専門学校では、必ず言われる。
最も少ない情報で、短時間の勉強で、60点ギリギリで合格
0681デフォルトの名無しさん
2015/11/25(水) 07:17:15.19ID:rJmLSs5J0682デフォルトの名無しさん
2015/11/25(水) 10:17:46.18ID:5wB+dJF60683デフォルトの名無しさん
2015/11/25(水) 10:38:32.86ID:v92ZxAJWもうわかりましたよね?
理解するのは読書なんだからこういう書き方は極力控えるべき
0684デフォルトの名無しさん
2015/11/25(水) 11:09:39.93ID:5wB+dJF60685デフォルトの名無しさん
2015/11/25(水) 11:18:56.05ID:reKtKMrl0686デフォルトの名無しさん
2015/11/25(水) 19:23:04.55ID:Ya2W2nCX煙に巻いてるのはどっち?
言葉あそびしたと言われている方?言っている方?
0687デフォルトの名無しさん
2015/11/25(水) 19:31:29.10ID:Sra0FKsR0688デフォルトの名無しさん
2015/11/25(水) 21:57:18.87ID:VTzlMLYq0689デフォルトの名無しさん
2015/11/25(水) 23:15:16.00ID:G/n44URvそんな奴らが集う板・スレはこれが普通
0690デフォルトの名無しさん
2015/11/26(木) 00:01:46.98ID:wLo/SUaP0691デフォルトの名無しさん
2015/11/26(木) 17:01:22.34ID:yeqvnwwH72C24DD5-D70A-438B-8A42-98424B88AFB8
F935DC22-1CF0-11D0-ADB9-00C04FD58A0B
の二つ見つかるのですが
どっちが本物ですか?
両方本物なら何がどう違うんですか?
0692デフォルトの名無しさん
2015/11/26(木) 17:02:55.99ID:yeqvnwwH72C24DD5-D70A-438B-8A42-98424B88AFB8
F935DC22-1CF0-11D0-ADB9-00C04FD58A0B
の二つ見つかるのですが
どっちが本物ですか?
両方本物なら何がどう違うんですか?
0693デフォルトの名無しさん
2015/11/26(木) 18:40:52.40ID:uhVdTG0gたぶん異なるCLSIDで登録してたオブジェクトを統合したとかの結果じゃねーの?
互換性的な話で
0694デフォルトの名無しさん
2015/11/28(土) 22:36:17.56ID:Fi4wDTmyWS_POPUPで作ったふちなしウィンドウの親ウィンドウをSetParent()で変更しました
すると、まるでスタイルをWS_CHILDに変更したかのような挙動になります
具体的には親ウィンドウを動かすと一緒に動きますし、描画もクリップします
SetParentで親ウィンドウを設定すると自動でWS_CHILDが設定されるのかと思い
SetWindowLongでWS_POPUPを設定しなおしてもうまくいきません
どうすればよいでしょうか
0695デフォルトの名無しさん
2015/11/29(日) 02:28:30.33ID:xCgxYFc2変更したいのは前者だろ?
0696デフォルトの名無しさん
2015/11/29(日) 05:59:54.18ID:Wjtvnm/I>どうすればよいでしょうか
どうしたいのか
書け
0697デフォルトの名無しさん
2015/11/29(日) 06:13:22.46ID:fTNkyNl80698デフォルトの名無しさん
2015/11/29(日) 11:23:43.23ID:U49gaUJj0699694
2015/11/29(日) 12:46:39.72ID:c+9MHjtmふしなしのWS_POPUPを使って、いわゆるツールウィンドウを作りました
ツールウィンドウなので親ウィンドウより手前に表示される必要があり
ツールウィンドウのCreateWindowで親ウィンドウを設定して作成しました
この時点では期待通りの動作をします
しかし、後からツールウィンドウの親ウィンドウを変更する必要が出てきました
そこでSetParentでツールウィンドウの親を変更すると
WS_POPUPの所謂オーバーラップ的な独立したウィンドウではなくなり
WS_CHILD風の、親ウィンドウのクライアント内だけで表示されるウィンドウになります
WS_POPUPスタイルのオーバーラップ的な動作を維持したまま
親ウィンドウを変更するにはどうしたらよいでしょうか
0700デフォルトの名無しさん
2015/11/29(日) 14:12:41.71ID:Cm5aRK3Uこのあたりの設計を見直す
0701デフォルトの名無しさん
2015/11/29(日) 14:34:03.32ID:c+9MHjtm・あらかじめツールウィンドウに配置したいものを一つのWS_CHILDなウインドウ内に収めておく
・それをWS_POPUPなウィンドウに納める
・親を変更する場合は新たにWS_POPUPなウィンドウを作って中身を移し変える
一応動いてはいるんですが、あまりスマートとは言えませんね
0702デフォルトの名無しさん
2015/11/29(日) 17:59:59.36ID:k+2nqD55だから、親ウインドウじゃなくてオーナーウインドウだろ?
勘違いしてると思うから、そこを調べろ
0703デフォルトの名無しさん
2015/11/29(日) 18:31:28.56ID:eJ1soHzz0704デフォルトの名無しさん
2015/11/29(日) 19:13:06.03ID:xFlU/aUF面倒ならその方法でいいんじゃない?
ツールウィンドウの親はデスクトップなので、SetParentするとそのウィンドウの子になる(デスクトップの子ではなくなる)ので
699の動作は正しい。
やりたいことはオーナーウィンドウを変更することだろうけど、そのような方法はないのでそのようなAPIもない。
まっとうな方法でやるのであれば、ダミーのウィンドウを作ってそれをオーナーウィンドウにしてツールウィンドウを作る。
0705デフォルトの名無しさん
2015/11/29(日) 20:55:51.31ID:Wjtvnm/Iオーナーウィンドウ関連で困った記憶は無いから
0706デフォルトの名無しさん
2015/11/29(日) 21:03:09.00ID:c+9MHjtmWS_CHILDでないとき、CreateWindowの引数で渡す親ウィンドウのパラメータは
親ウィンドウではなくオーナーウィンドウとして扱われる
(たしかにCreateWindowのMSDNに親ウィンドウまたはオーナーウィンドウって書いてありましたわ)
そして後からオーナーウィンドウを変更するAPIは用意されていない
ってことですね
失礼しました
0707デフォルトの名無しさん
2015/11/30(月) 22:15:26.81ID:xNC+/SUX0708デフォルトの名無しさん
2015/12/05(土) 00:24:02.73ID:eGerJrSR#include <windows.h>
int WINAPI wWinMain( HINSTANCE inst, HINSTANCE prev, wchar_t *cmdline, int show_cmd )
{
HWND window, editor;
WNDCLASS winc = {0};
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = ::DefWindowProc;
winc.hInstance = ::GetModuleHandle( NULL );
winc.hIcon = ::LoadIcon( NULL , IDI_APPLICATION );
winc.hCursor = ::LoadCursor( NULL , IDC_ARROW );
winc.hbrBackground = (HBRUSH)GetStockObject( NULL_BRUSH );
winc.lpszClassName = L"window";
::RegisterClass( &winc );
window = ::CreateWindow( L"window", L"test", WS_OVERLAPPED|WS_VISIBLE, 0, 0, 100, 100,
nullptr, nullptr, ::GetModuleHandle( nullptr ), nullptr );
editor = ::CreateWindow( L"EDIT", L"", WS_CHILD|WS_VISIBLE|ES_LEFT|ES_AUTOHSCROLL,
0, 0, 300, 100, window, nullptr, ::GetModuleHandle( nullptr ), nullptr );
MSG msg;
for( ; ::GetMessage( &msg, nullptr, 0, 0 ); ){
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
return 0L;
}
↑のバグの混入しようのないシンプルなコードで、エディットボックスに日本語を入力しようとすると
VisualStudio2015が固まります 巻き添えでエスクプローらも固まります その他もいろいろ固まります
VisualStudio2015を強制終了すると回復します デバッグでもリリースでも固まります
おまかん、ですか?
0709デフォルトの名無しさん
2015/12/05(土) 00:30:56.85ID:eGerJrSR0710デフォルトの名無しさん
2015/12/05(土) 00:33:16.52ID:oCbOGloR正しいウィンドウプロシージャーを正しく指定しろ
0711デフォルトの名無しさん
2015/12/05(土) 00:37:52.97ID:eGerJrSRDefWindowProcなのは再現する最小のコードにしたからです
問題になった実際のプログラムではメインウィンドウもエディットボックスも
SetWindowSubclassでサブクラス化しています
しかし同じように固まります
0712デフォルトの名無しさん
2015/12/05(土) 00:40:21.12ID:oCbOGloRメインウィンドウはサブクラス化する必要はない。
0713デフォルトの名無しさん
2015/12/05(土) 00:43:51.66ID:eGerJrSRウインドウプロシージャにインスタンスポインタを渡すためです
他の方法もありますが、SetWindowSubclassが一番シンプルだと思うので
しかし、質問内容とまったく関係のないことです
0714デフォルトの名無しさん
2015/12/05(土) 00:47:20.07ID:oCbOGloRメッセージの流れがループしてないか?
一つ古いプロシージャーはどうしてる?
0715デフォルトの名無しさん
2015/12/05(土) 00:50:54.89ID:eGerJrSRしかし、関係ありません
なぜなら、私の環境では>>708のコードでフリーズするからです
ちなみにフリーズするのはVisualStudio上で実行したときだけです
普通にエクスプローラからプログラムを起動すれば日本語入力をしてもフリーズしません
VSのデバッガとIME周りで何か問題が起こっているみたいです
私のおまかんかとおもい書き込みました
0716デフォルトの名無しさん
2015/12/05(土) 00:55:02.57ID:oCbOGloR0717デフォルトの名無しさん
2015/12/05(土) 00:59:11.55ID:eGerJrSRVS2015 Update1 というのが出ていたみたいなので
アップデートしてみます
ちなみにVS2013では上記のフリーズ現象は発生しませんでした
私のOS自体アップデートにアップデートを重ねたつぎはぎ状態なので
おまかんの可能性が高いですが
0718デフォルトの名無しさん
2015/12/05(土) 01:18:58.12ID:99U7SxwK0719デフォルトの名無しさん
2015/12/05(土) 01:52:34.90ID:eGerJrSRこれ以上カオスな環境になるのはいやなので、あまりインストールしたくないんですが
お勧めのIMEあります?GoogleIMEは開発終了したとか聞いたんですが
0720デフォルトの名無しさん
2015/12/05(土) 10:12:01.01ID:VYsm12i0bookliveがうんこなプロテクションコード仕込んでた時も似たような現象起きてたな
可能な限りシンプルな仮想実行環境作って試してみなよ
0721デフォルトの名無しさん
2015/12/05(土) 10:24:16.91ID:Rw/ONJyS自由にできるなら、いろいろ試せばいいじゃないか?
0722デフォルトの名無しさん
2015/12/05(土) 11:44:36.25ID:pK0sc289そうでもないですね
0723デフォルトの名無しさん
2015/12/05(土) 15:07:59.42ID:Pkwdo9n8このスレで質問にまともに答えてるの見たこと無いわw
>>722
つまらん揚げ足取らなくていいんじゃない?
そうでもないってんなら、どこに混入する可能性があるのか具体的に言ってみろよ
言えない? あ、そうw わかってたw
>>708
こんなとこで質問しても、まともに解決できるスキル持ったやつなんて居ないって
見当違いの回答するか、センスの悪い解決策示してドヤ顔するか
どーでもいいところに着目して話しをぐちゃぐちゃにする奴ばっかなんだからw
スレにざっと目を通せばわかるだろw
0724デフォルトの名無しさん
2015/12/05(土) 15:23:12.76ID:ckYMWiJu確かにこれが一番多い
0725デフォルトの名無しさん
2015/12/05(土) 15:23:30.20ID:CbmC10/1CreateWindowするとき、子ウィンドウのIDをNULLではなく
任意の数値を明確に指定したらどうなるのかは興味あるけどな
まあ、IME変えてみたら?みたいな馬鹿の提案よりはマシだろw
0726デフォルトの名無しさん
2015/12/05(土) 15:30:43.14ID:ckYMWiJu0727デフォルトの名無しさん
2015/12/05(土) 15:45:37.31ID:kb12RFmqほんまやなw
MSDNに書かれている警告と同じ問題が発生するコードになってるな
この問題如何にかかわらず避けるべきコードだな
0728デフォルトの名無しさん
2015/12/05(土) 15:49:13.98ID:ckYMWiJu0729デフォルトの名無しさん
2015/12/05(土) 15:51:40.28ID:eGerJrSR問題が発生する最小限のコードにしただけだから
2chは行数制限あるでしょ
0730デフォルトの名無しさん
2015/12/05(土) 15:53:27.88ID:uW+W8BUzwhile (GetMessage(&msg, NULL, 0, 0))
を堂々と使用してるというMSの矛盾
0731デフォルトの名無しさん
2015/12/05(土) 15:57:52.29ID:ckYMWiJu子ウィンドウのIDがNULLだとGetMessageの戻り値が-1になるのかもなー
0732デフォルトの名無しさん
2015/12/05(土) 15:57:52.45ID:J/Ic1PvJいや、別にいいんだよ
だけど、もしあなたが質問者ならその言い草はおかしいよね
だって、>>726は、それが問題かもしれないよね?って話しをしてるわけだからw
あなたが質問者なら、懸念を払拭するコードで試してみたけど
そこの部分は問題じゃなかったって言うのが筋じゃないの?w
0733デフォルトの名無しさん
2015/12/05(土) 15:58:59.28ID:J/Ic1PvJだけど、単独では固まることなく普通に動作するってことなんで
ちょっと、よくわからんよね
0734デフォルトの名無しさん
2015/12/05(土) 16:00:39.72ID:gzrRtkEalpMsg で無効なポインタを指定した場合は、エラーが発生します
だから
0735デフォルトの名無しさん
2015/12/05(土) 16:18:05.48ID:eGerJrSRVS2013ではデバッガ上で実行しても問題ないですし、問題になるのはVS2015だけみたいです
エクスプローラからデバッガ無しで実行しても問題ないです
普通プログラムにミスが有っても、プログラムがクラッシュするのは当たり前としても
VSを巻き添えにしてフリーズするのは何か変なわけです
ついでにエクスプローラも固まりますし、タスクマネージャもクリックできなくなり
VSを強制終了するしか復帰の方法がなくなります
通常の状況ではないです
潜在的にデバッガに不具合があって、同じことで困っている人が居ないかとおもい書き込みました
しかし、私だけみたいなので、完全に おまかん です
これ以上、私のおまかん、について話し合ってもスレの無駄なので、やめましょう
0736デフォルトの名無しさん
2015/12/05(土) 16:18:07.73ID:q1rcdCIy質問者:いやまー、問題が発生する最小限のコードにしただけだから
スレ民:念のため修正して先に進めよ
質問者:しかし、関係ありません。なぜなら、私の環境では>>708のコードでフリーズするからです
スレ民:(白目)
0737デフォルトの名無しさん
2015/12/05(土) 16:20:06.00ID:q1rcdCIyその経験が無いってことは、初心者だってことを意味するので
もう少し頭をやわらかくした方がいいよ
0738デフォルトの名無しさん
2015/12/05(土) 16:30:31.36ID:ckYMWiJu>VSを巻き添えにしてフリーズするのは何か変なわけです
昔ネットワークドライブ上にプロジェクト作っててそうなったことはある
0739デフォルトの名無しさん
2015/12/05(土) 16:39:03.00ID:uFLCx2kQPCキョウセイサイキドウトカフツウニアルカラナ
ソノテイドデツウジョウノジョウキョウジャナイデスッテイイキルノハ
アタマガヨワインダロウナッテオモワレルダケ
0740デフォルトの名無しさん
2015/12/05(土) 16:44:43.34ID:HGRqjVZT0741デフォルトの名無しさん
2015/12/05(土) 16:46:13.61ID:oc+U1/Vu「スレの無駄なので、やめましょう」と捨て台詞吐いてどっか行ったマナーの悪さに草不可避www
マルチポストする奴が嫌われる理由ってこういうことだったんだなっていう見本www
0742デフォルトの名無しさん
2015/12/05(土) 16:47:56.69ID:zuUud8BL0743デフォルトの名無しさん
2015/12/05(土) 16:49:21.41ID:zuUud8BL0744デフォルトの名無しさん
2015/12/05(土) 16:49:58.74ID:ifqUzVNW0745デフォルトの名無しさん
2015/12/05(土) 17:03:59.94ID:pK0sc2890746デフォルトの名無しさん
2015/12/05(土) 17:09:41.94ID:NlJfEAqaたまに、最新ソースも巻き添えとか
0747デフォルトの名無しさん
2015/12/05(土) 17:29:46.75ID:ckYMWiJu0748デフォルトの名無しさん
2015/12/05(土) 17:33:12.23ID:M4JOBDA+0749デフォルトの名無しさん
2015/12/05(土) 18:07:17.82ID:6eYmgp/jWindows95時代を思い出すような現象だなぁw
0750デフォルトの名無しさん
2015/12/05(土) 19:33:31.50ID:HGRqjVZT0751デフォルトの名無しさん
2015/12/05(土) 20:03:24.98ID:ySecgDBd0752デフォルトの名無しさん
2015/12/05(土) 20:05:20.94ID:eGerJrSR「デバッグ時」が何を指しているのかわかりませんが
VS2015のデバッガ上で実行した上で、プログラムのエディトに日本語入力をしようとするとVSがフリーズします
エクスプローラから普通に実行すれば普通に動きます
「デバッグ時」がステップ実行という意味でしたら
VSでステップ実行しながらプログラムに日本語入力をするのは困難なので試せません
フリーズするタイミングは、変換窓が出た直後です
何度やっても100%フリーズします
>>749
昔のVSはマルチスレッドプログラムをブレークポイントでとめると良く固まってました
あんな感じです
しかも日本語入力をするだけで100%フリーズするので、だましだましに使うことも出来ません
とりあえずVS2015を最新版にしてみます
0753デフォルトの名無しさん
2015/12/05(土) 20:06:49.59ID:ySecgDBd舌の根も乾かない内に再降臨フイタw
0754デフォルトの名無しさん
2015/12/05(土) 20:28:35.36ID:wt9GdtlOデバッガの仕組み理解してる?
ブレークポイントにしろステップ実行にしろ本来実行するべき命令をソフトウェア割り込みで乗っ取って別の処理走らせてるんだぞ
OSのカーネルレベルでデバッガ(VSのIDEだったか?)と何かが競合すればフリーズもするだろ
昔DRM絡みで何かのシステムファイルが問題起こしてただろ
0755デフォルトの名無しさん
2015/12/05(土) 20:36:35.47ID:37l+kYy9同じマシン上でVS2013なら起こらないって言ってるから
質問者の環境+VS2015固有の問題なんだろう
本人もそう思ってるみたいだし
もっと優しく言ってあげなきゃ
また、「スレの無駄なので、やめましょう」ってすねちゃうぞw
0756デフォルトの名無しさん
2015/12/05(土) 20:43:55.87ID:b6zXTnH8検索してもわからんかったわ
0757デフォルトの名無しさん
2015/12/05(土) 20:45:33.64ID:zW/Ol4xt0758デフォルトの名無しさん
2015/12/05(土) 21:48:12.44ID:wharPYQRどこで検索したんだよ…
Google で おまかん って入れたら おま環 意味 って表示されるんだが
0759デフォルトの名無しさん
2015/12/05(土) 22:26:09.42ID:ls1Kp+wnEIPが特定の値になるのをトラップするマイクロ診断的なものでないと
0760デフォルトの名無しさん
2015/12/05(土) 22:30:21.01ID:3cIIMMg0さあ? どこで検索したんやろwww
つか、解決したわw 俺天才www
#include <windows.h>
WNDPROC wndproc;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lr = wndproc(hWnd, message, wParam, lParam);
if( message == WM_CLOSE ) { wndproc = NULL; }
return lr;
}
int WINAPI wWinMain( HINSTANCE inst, HINSTANCE prev, wchar_t *cmdline, int show_cmd )
{
HWND editor;
editor = ::CreateWindow(L"EDIT", L"", WS_OVERLAPPEDWINDOW|WS_VISIBLE, 0, 0, 300, 100, NULL, NULL, inst, NULL);
wndproc = (WNDPROC)(LONG_PTR)::SetWindowLongPtr(editor, GWLP_WNDPROC, (__int3264)(LONG_PTR)WndProc);
MSG msg;
while( wndproc )
{
::GetMessage( &msg, NULL, 0, 0 );
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
return 0;
}
0761デフォルトの名無しさん
2015/12/05(土) 22:49:16.19ID:9yCwvOA5#include <windows.h>
WNDPROC wndproc;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lr = wndproc(hWnd, message, wParam, lParam);
if( message == WM_CLOSE ) { PostQuitMessage(0); }
return lr;
}
int WINAPI wWinMain( HINSTANCE inst, HINSTANCE prev, wchar_t *cmdline, int show_cmd )
{
HWND editor;
editor = ::CreateWindow(L"EDIT", L"", WS_OVERLAPPEDWINDOW|WS_VISIBLE, 0, 0, 300, 100, NULL, NULL, inst, NULL);
wndproc = (WNDPROC)(LONG_PTR)::SetWindowLongPtr(editor, GWLP_WNDPROC, (__int3264)(LONG_PTR)WndProc);
MSG msg;
while( ::GetMessage( &msg, NULL, 0, 0 ) )
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
return 0;
}
0762デフォルトの名無しさん
2015/12/06(日) 03:33:10.31ID:RpqIStl80763デフォルトの名無しさん
2015/12/06(日) 03:34:15.74ID:1bjsyoJRIME起動時点で物理メモリいっぱいになっちゃうとか
0764デフォルトの名無しさん
2015/12/06(日) 06:34:10.49ID:1f6kb9ui0765デフォルトの名無しさん
2015/12/06(日) 08:32:26.41ID:kqzpr8OR物理メモリが足りないだけじゃないですか?
>>763
ですから、完全に自分の環境のVS2015のデバッガとIMEで何か問題が起こっている臭いと
前スレで申し上げたのが目に入らないのでしょうか?
私は、このスレ民が誰も持ってないVS2015を購入する財力があるんですよ?
物理メモリなんていつでも大人買いしてます
そのことを公表してしまうと、そんなに財力があるくせに、なぜ検証用のセカンドマシンを持ってないの?
という疑問を持たれるかと思いますが、その点について話し合ってもスレの無駄使いなので、やめましょう
また、この時代、IME起動した程度で物理メモリが足りなくなるなんてことありえません
アイデアを出して頂くのは歓迎ですが、幼稚すぎて話しになりません
>>762
当たり前じゃないですか
IME変換窓を表示する → 親であるエディットにメッセージをSendしようとする → エディットにコントロールIDが無いので
メインウィンドウであると勘違いしてトップレベルウィンドウのHWNDを取得し結果としてメインウィンドウ宛てに送る →
誤配で郵便局員と揉める → その間Sendしたメッセージが返ってこないのでIMEが固まる →
IMEを利用している全てのプログラムが固まる
ですよね? そんな当たり前のことも分からないのですか?
>>761
再三に渡り申し上げていますように、私のコードにはバグが入り込む余地など皆無ですから
勝手に修正するのはお止め下さい
コードに変更が加えられてバグが直っても何の意味もありません
しかしながら、これ以上の議論はスレの無駄使いなので、もうやめましょう
0766デフォルトの名無しさん
2015/12/06(日) 08:58:43.45ID:PCxLF6KNおまえのおかんがでべそ
の略
0767デフォルトの名無しさん
2015/12/06(日) 09:02:27.54ID:wDKmKefWおまえかんぺき
0768デフォルトの名無しさん
2015/12/06(日) 13:48:49.22ID:o47VB080> >>743
> 「デバッグ時」が何を指しているのかわかりませんが
> VS2015のデバッガ上で実行した上で、プログラムのエディトに日本語入力をしようとするとVSがフリーズします
> エクスプローラから普通に実行すれば普通に動きます
> 「デバッグ時」がステップ実行という意味でしたら
> VSでステップ実行しながらプログラムに日本語入力をするのは困難なので試せません
> フリーズするタイミングは、変換窓が出た直後です
> 何度やっても100%フリーズします
ステップ実行なりブレークポイントを置くなり何でもいいけど、財力あるなら
マルチモニタでも複数台PCでリモートデバッグでも何でもして問題箇所を絞ってよ。
財力あるけど能(脳)力はありません?
0769デフォルトの名無しさん
2015/12/06(日) 14:24:04.68ID:OHUYOsyJ0770デフォルトの名無しさん
2015/12/06(日) 16:51:18.20ID:kqzpr8ORまともな解決策の一つも示すことのできなかったスレ民に
私の能力云々について、とやかく言われる筋合いはありません
ただ、能力があるかないかということであれば、私の提示したサンプルコードが
バグの入り込む隙のまったくない洗練されたものであることから、その能力を疑う余地は無いでしょう
その点はあなたと対極にあると言って過言でないと思います
端的に言って頭が良い上に金も持ってるということを知られてしまうと
あなたのように嫉妬に駆られて噛み付いてくる輩が沸くのが分かっていたので
財力のことを公表することは差し控えさせて頂いておりました
>>769
いえいえ、その程度のことは私にとっては何の障害にもなりません
実際、スレ民の力を借りるまでも無く、即座に問題を解決できたことがその証拠です
また自慢と受け取られると心苦しいのですが一言付け加えさせて頂きますと
私のレベルに到達すればプレイクポイントはアセンブリレベルで設定しますので
どこで何が起こってるのかなど一目瞭然なのであります
今回は、あなたたち無能なスレ民が無い知恵を絞り右往左往してる滑稽な姿を見て楽しんでいただけです
しかしながら、これ以上の議論はスレの無駄使いなので、もうやめましょう
0771デフォルトの名無しさん
2015/12/06(日) 17:25:27.91ID:fphXThfEみんな適当にレスしてるのにそれに対して真面目に長文で返すあなたは相当暇なんですね
0772デフォルトの名無しさん
2015/12/06(日) 17:38:35.94ID:kqzpr8OR>みんな適当にレスしてる
実生活においても何をしても中途半端な人たちですから
本気出しても中身が伴わずに適当にレスしてるように見えますよ
>相当暇なんですね
態々そんなことを言うために書き込みしたんですか?
どちらが暇なんでしょうね
ただの負け惜しみじゃないですか
0773デフォルトの名無しさん
2015/12/06(日) 17:47:37.42ID:fphXThfEあれ?もう解決したんじゃないの?
0774デフォルトの名無しさん
2015/12/06(日) 18:21:39.03ID:al/vyHCsくれくれ君じゃないなら。
0775デフォルトの名無しさん
2015/12/06(日) 18:23:36.29ID:Z7509Thm>普通プログラムにミスが有っても、プログラムがクラッシュするのは当たり前としても
>VSを巻き添えにしてフリーズするのは何か変なわけです
そうでもない
バグがあっても強引に通っていたコードがデバッガのコードが割り込むことで動かなくなる事は普通にある
>>762
バックドロップの仲間か?
>>765
>再三に渡り申し上げていますように、私のコードにはバグが入り込む余地など皆無ですから
>勝手に修正するのはお止め下さい
>コードに変更が加えられてバグが直っても何の意味もありません
「バグが入り込む余地など皆無」というのが間違いだとは思わないのか?
修正されたコードならデバッグ実行してもフリーズしないなら
修正された部分(の前のコード)がおかしいってことでしょ
0776デフォルトの名無しさん
2015/12/06(日) 18:57:11.42ID:F0HE3LOZ> バグがあっても強引に通っていたコードがデバッガのコードが割り込むことで動かなくなる事は普通にある
それとVS巻き込んでフリーズするのは全然違うと思うが
0777デフォルトの名無しさん
2015/12/06(日) 19:54:33.33ID:XJADMoL5別スレッドの子ウインドウのメッセージはHookに来るのか
それともライブラリの仕様が変わったのか
0778デフォルトの名無しさん
2015/12/06(日) 20:50:17.67ID:o47VB080いや、俺前から真面目にレスしてるよ。
財力あるってアピールしてるんなら、財力使って解決する努力しろよ
って最後の行で皮肉書いてるだけだけど?
何にもやる気なく、あなたのソースが完璧と主張するだけならしかたないね。
ここで書くよりMSに言うべきでしょ?
言えないの?
なんで言えないの?
0779デフォルトの名無しさん
2015/12/06(日) 21:22:57.43ID:NAZd77H+VS2015をアップデートしてもフリーズは直りませんでした
しかしIMEをgoogle日本語入力にしたところ、フリーズしなくなりました
私の環境のMS-IMEとVS2015のデバッガの間でなにか不都合が起こっていたようです
お騒がせしました
ちなみに ID:kqzpr8OR は別人ですので気を悪くしないでください
ソースコードを貼り付けた意味ですが
他の人の環境でも同じことが発生するか同一コードで確かめて欲しかっただけでした
最初からおまかん、なのかどうかが知りたかっただけでした
その辺の認識の違いで食い違いが発生したみたいです
始めからそのように述べておけば良かったと反省しています
0780デフォルトの名無しさん
2015/12/06(日) 22:02:20.58ID:MC+a0W150781デフォルトの名無しさん
2015/12/06(日) 23:40:56.47ID:CmQ2QDBG0782デフォルトの名無しさん
2015/12/07(月) 03:45:47.41ID:8iat4Fp6デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーロー、シャーマン・キングなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。
↑
下位版の改造および商用利用には、別途で当社との契約が必要。
さ〜て、製作ベンダー見つけよっと!ww(クス
http://wc2014.2ch.net/test/read.cgi/entrance2/1449039272/-18
0783デフォルトの名無しさん
2015/12/07(月) 07:57:18.98ID:WaL6xLeX高度情報サイト調べたら書いてあるの?
0784デフォルトの名無しさん
2015/12/07(月) 08:42:00.94ID:rUHyUO/0「同一コードで同じ現象が発生するのか確かめて欲しかっただけ」という発言の真意は
あなたたち低脳スレ民に解決策を求めても、解決することなんて100%無いだろうから無駄という意味です
そのあたりは、普通に社会生活を営んでいれば推し量れそうなものですが
解決策になってない提案を自信満々で書き込んでくる愚か者の多さに唖然としました
図らずもここのスレ民が、プログラミング能力以前に、人間としての能力の低さが
浮き彫りになる形となり、関わりを持たないことが最善であると認識することができました
あと、横レス恐縮ですが、>>778さんはスレ民の方ですよね?
何故、安価が>>770なんでしょうか?
真面目にレスしてないって主張してるのは>>771さんで、
真面目にレスしてる(けど能力が低いから適当に見える)って言ってるのが>>770,>>772さんですよね?
知能指数が低すぎて話しの流れが読めないのか、あるいはそもそも言葉を理解する能力が無いのか
または、真性の馬鹿で安価すらまともに打てないのか
何れにしても、またここにスレ民が馬鹿という根拠が記されたことにより
逆説的に私の言い分が100%正しい事が証明されたわけです
0785デフォルトの名無しさん
2015/12/07(月) 09:03:43.48ID:3PFXwSng0786デフォルトの名無しさん
2015/12/07(月) 09:04:19.05ID:0+/WYlAQそれが質問者の態度かよ!
そう思ってるならなんで質問するの?馬鹿なの?
0787デフォルトの名無しさん
2015/12/07(月) 09:16:32.61ID:sbn50vDXいやいや、あんたも大概低脳だろ
MS-IMEとVS2015のデバッガの間で何か不具合が起こってることなんて
VS2013で問題ないってことからして最初から明白なのに
VS2015をアプデしてGoogleIMEをインストールして、それで初めてその結論に達するとか
低脳丸出しじゃん
ご主人様が低脳で、使われてるVS2015が真価発揮できなくて可哀相だわ
0788デフォルトの名無しさん
2015/12/07(月) 09:24:18.11ID:2WXCWQW+0789デフォルトの名無しさん
2015/12/07(月) 10:26:18.94ID:n4BtPw1p偽質問者のプロフ
VS2015を購入できる財力がある、でもPCは1台しか持ってない
アセンブリレベルでブレークポイントが設定できる高度な技術力、でもたどり着いた解決方法はVSとIMEの入れ替え
0790デフォルトの名無しさん
2015/12/07(月) 10:31:39.04ID:tO/J50M7興味ないからどうでもいいけど
0791デフォルトの名無しさん
2015/12/07(月) 10:50:33.78ID:GwFr+5pM0792デフォルトの名無しさん
2015/12/07(月) 11:05:16.82ID:V+HVpMUU0793デフォルトの名無しさん
2015/12/07(月) 11:19:34.93ID:V+HVpMUU0794デフォルトの名無しさん
2015/12/07(月) 12:27:54.19ID:6rSJBSiXID:rUHyUO/0 は私ではないので気を悪くしないでください
アラシです
反応しないでください
0795デフォルトの名無しさん
2015/12/07(月) 12:29:33.19ID:0b9CinAj0796デフォルトの名無しさん
2015/12/07(月) 12:38:36.81ID:erlzR1YA「ID:eGerJrSRですが」くらいは俺でも言えるのでアッピールする方が怪しい
そんなにアッピールしたきゃ名前欄に「fusianasan」って書け
できないのなら黙ってろ
0797デフォルトの名無しさん
2015/12/07(月) 13:00:11.78ID:PFJ6xruc0798デフォルトの名無しさん
2015/12/07(月) 13:01:09.37ID:HgOqd3RD少なくともID:eGerJrSRが
自分のやってることや考えに間違いは絶対にないと思い込んでる勘違い野郎だってことと
スレで暴れて他人に迷惑をかけても何とも思ってない痛々しい馬鹿だってことわはっきりしてる
0799デフォルトの名無しさん
2015/12/07(月) 13:34:02.13ID:KuRdWB2cまで読んだ
0800デフォルトの名無しさん
2015/12/07(月) 23:20:25.64ID:4dGrKabkまったくピント外れの書き込みで何の役にも立ってないのに偉そうにしてる奴らもどうかと思う
0801デフォルトの名無しさん
2015/12/07(月) 23:26:56.96ID:4dGrKabk問題とは関係ないけど、
mainの最後、return 0L; なのは何か意味があるの?
0802デフォルトの名無しさん
2015/12/08(火) 00:31:00.02ID:zsH7v/oqどういうこと?
「L」の意味合いについての質問か?
0803デフォルトの名無しさん
2015/12/08(火) 01:10:17.18ID:smcxnEg4>>708様のバグのないコードだぞ?
0804デフォルトの名無しさん
2015/12/08(火) 01:18:39.29ID:BN6+7Zbbこのまま無かったことにするのはスレを見てる方に対して失礼だと思いましたので
引き続き、皆様のお知恵を拝借してフリーズを解決できるコードを募りたいと思います
宜しくお願いします
#include <windows.h>
int WINAPI wWinMain( HINSTANCE inst, HINSTANCE prev, wchar_t *cmdline, int show_cmd )
{
HWND window, editor;
WNDCLASS winc = {0};
winc.style= CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc= ::DefWindowProc;
winc.hInstance= inst;
winc.hIcon= ::LoadIcon( NULL , IDI_APPLICATION );
winc.hCursor= ::LoadCursor( NULL , IDC_ARROW );
winc.hbrBackground= (HBRUSH)GetStockObject( NULL_BRUSH );
winc.lpszClassName= L"window";
::RegisterClass( &winc );
window = ::CreateWindow( L"window", L"test", WS_OVERLAPPED|WS_VISIBLE,
0, 0, 300, 100, NULL, NULL, inst, NULL );
editor = ::CreateWindow( L"EDIT", L"", WS_CHILD|WS_VISIBLE,
0, 0, 300, 100, window, 0x03e8, inst, NULL );
MSG msg = {0};
while( ::GetMessage( &msg, NULL, 0, 0 ) > 0)
{
::TranslateMessage( &msg );
::DispatchMessage( &msg );
}
return 0;
}
0805デフォルトの名無しさん
2015/12/08(火) 02:58:19.81ID:2roaNsUx仮想でもなんでもいいからクリーンなOS環境を確保する方が先決
その上で再現したらもう一度書き込みしなさい
0806デフォルトの名無しさん
2015/12/08(火) 09:54:47.36ID:A7OO03sBどうなってんだよ
0807デフォルトの名無しさん
2015/12/08(火) 10:37:48.74ID:vWX5dYCl最小コードよりも、動くコード書くのが先じゃないの?
ビジュアルスタジオのWIN32プロジェクトで自動生成されるテンプレを元に下記の文を追加してみたらどうだい?
HWND hEditor; // エディタ
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message){
case WM_CREATE: hEditor = CreateWindow(L
0808デフォルトの名無しさん
2015/12/08(火) 10:40:19.16ID:vWX5dYClcase WM_CREATE:
hEditor=CreateWindow(L"EDIT",L"",WS_CHILD|WS_VISIBLE,0,0,300,100,hWnd,NULL,hInst,NULL);break;
case WM_DESTROY:DestroyWindow(hEditor);PostQuitMessage(0);break;
default:return DefWindowProc(hWnd, message, wParam, lParam);}
return 0;}
0809デフォルトの名無しさん
2015/12/08(火) 11:44:51.55ID:rtJmb9vL動作環境 : Windows10Pro(build10586.17), Microsoft IME
ビルド環境 : VisualStudioEnt2015Update1(Ver14.0.24720.00)
0810デフォルトの名無しさん
2015/12/08(火) 12:37:52.55ID:zjJIjn6V別人がなりすましで書き込んでいるだけだからね
IMEをグーグル日本語入力に変えてフリーズしなくなったから
本人的にはもう解決している話
0811デフォルトの名無しさん
2015/12/08(火) 12:47:54.43ID:WQt5IVqj構ってちゃんでしょ
スルーしようよ
0812デフォルトの名無しさん
2015/12/08(火) 17:36:04.71ID:eJubGLpdそう
戻り値がintなのになんでわざわざLを付けたのかってこと
0813デフォルトの名無しさん
2015/12/08(火) 17:37:05.84ID:eJubGLpd0814デフォルトの名無しさん
2015/12/08(火) 19:57:13.33ID:9OJSSokt------------
開発環境 XP SP3 VC++2008EE
Win32 コンソール アプリケーション
MFC=標準Windowsライブラリを使用
ATL=使用しない
文字セット=マルチバイト
実行環境 Windows NT系OS
この環境で以下のような改造したファイルオープンダイアログを
実装しようと思ってるのですが、
http://i.imgur.com/lgk1ApU.jpg
どのようにしたらいいのでしょうか?
検索してもうまく探せませんでした。
0815デフォルトの名無しさん
2015/12/08(火) 20:05:24.43ID:V92FzyIAlpfnHookで探してみて
0816デフォルトの名無しさん
2015/12/08(火) 20:47:49.78ID:9OJSSoktありがとうございます
0817デフォルトの名無しさん
2015/12/08(火) 20:56:35.07ID:pU1qoPPCあとテンプレートもだな
0818デフォルトの名無しさん
2015/12/09(水) 16:00:41.28ID:Z+x1QnkM意味については分からん
本人が独自に決めたコーディング規約だろうくらいに思っておけばいいんじゃないの
0819デフォルトの名無しさん
2015/12/10(木) 16:40:50.35ID:xYVEMhSBこの症状は10586から出始めたから、10240で出ないなら10586そのものか、10586付属IMEの問題だったりして
財力あるなら、MSの有償テクニカルサポートに問い合わせれば真面目に対応してもらえると思う
バグならカネはかからないはず
0820デフォルトの名無しさん
2015/12/11(金) 21:01:12.91ID:7hEsJRkD0821デフォルトの名無しさん
2015/12/12(土) 10:28:00.67ID:npRd3MLZ0822デフォルトの名無しさん
2015/12/12(土) 11:20:47.34ID:MmL5lxhk整数リテラルの後部には"L"を付ければおkって
意味も分からずに覚えたからでしょ
0823デフォルトの名無しさん
2015/12/13(日) 04:54:19.11ID:GpCTMsCJ0824デフォルトの名無しさん
2015/12/13(日) 07:31:56.73ID:eaDqvpLQstd::locale::global( "japanese" ); // ユーザ変換によりstd::locale( "japanese" ,locale::category cat=LC_ALL )が渡される
std::wstring str( L"こんにちは" );
0825デフォルトの名無しさん
2015/12/13(日) 12:59:24.78ID:wmJ8ONejこの時代にL(_T)知らん奴が居ることに驚いた
0826デフォルトの名無しさん
2015/12/13(日) 13:11:12.55ID:2pFFNjWZ0827デフォルトの名無しさん
2015/12/13(日) 13:26:16.21ID:wmJ8ONej既存コードとの互換性を考えたら”L無し=ワイド文字”ってのはやばいでしょ
プロジェクトのプロパティやpragmaディレクティブで、Lついてない文字列を
一括でワイド文字と認識させるようにするって案ならあってもいいかなって思う
0828デフォルトの名無しさん
2015/12/13(日) 14:55:28.61ID:S5USnmm8やばいとか知らねー。
0829デフォルトの名無しさん
2015/12/13(日) 21:27:00.40ID:ScgB15D70830デフォルトの名無しさん
2015/12/13(日) 21:38:50.72ID:2pFFNjWZからGUIと組み合わせる場合にめんどくさいんだよな
あと古い上に代わりがないタイプのAPIがchar*しか対応なかったり
0831名無しさん@そうだ選挙に行こう
2015/12/14(月) 12:11:01.23ID:hRRo1CCV0832名無しさん@そうだ選挙に行こう
2015/12/14(月) 14:23:41.55ID:baKxaSGvwchar(UTF-16) と char(UTF-8) をどっちも
wchar(UTF-8) と char(UTF-8) だと思ってる人が結構いる
0833名無しさん@そうだ選挙に行こう
2015/12/14(月) 14:56:24.64ID:K7v/F4Ajいねーよそんな奴w
0834名無しさん@そうだ選挙に行こう
2015/12/14(月) 15:29:30.45ID:hRRo1CCVまー確かに0x00ffまではUTF-8といえないことも・・・、いやいや、いねーわそんな奴w
0835名無しさん@そうだ選挙に行こう
2015/12/14(月) 15:38:58.09ID:DSJzQQ/Ewcharのwは何のwなんだよw
0836名無しさん@そうだ選挙に行こう
2015/12/14(月) 16:37:25.30ID:hRRo1CCV「なんだよw」のwは何のwなんだよw
0837名無しさん@そうだ選挙に行こう
2015/12/14(月) 18:00:55.66ID:Ag+6b4jq「なんだよw」のwは何のwなんだよw
0838名無しさん@そうだ選挙に行こう
2015/12/14(月) 18:11:14.75ID:reTGASBb0839名無しさん@そうだ選挙に行こう
2015/12/14(月) 18:29:10.36ID:W0/Eg9YL符号化方式は一つじゃないから
0840デフォルトの名無しさん
2015/12/14(月) 20:57:07.79ID:mQKSdQ1D0841デフォルトの名無しさん
2015/12/15(火) 07:39:41.73ID:9P3I1wS2昔ネトゲでは半角しか入力できませんでした・・・
て続けたらいいのかw
0842デフォルトの名無しさん
2015/12/15(火) 09:40:51.53ID:GmzcEDm20843デフォルトの名無しさん
2015/12/15(火) 21:36:27.75ID:PseeQbpS0844デフォルトの名無しさん
2015/12/15(火) 22:44:46.92ID:o5vxE/KH0845デフォルトの名無しさん
2015/12/16(水) 04:38:00.32ID:JxdBAlmfガッ
旧サロゲートだなー
0846デフォルトの名無しさん
2015/12/16(水) 14:14:35.28ID:EEnl9+chほんこれ
16bit(65,536通り)じゃ、世界中の文字を表現するのに最初から足りないんだよな
日本の絵文字も一億個くらい入れたいから
LCHAR=32bit char を作って、文字コード統一してくれ
0847デフォルトの名無しさん
2015/12/16(水) 21:34:08.98ID:YGwjiYwh0848デフォルトの名無しさん
2015/12/17(木) 00:48:21.74ID:Vfp48Rrj0849デフォルトの名無しさん
2015/12/17(木) 12:09:01.46ID:Szn4FINI0850デフォルトの名無しさん
2015/12/17(木) 19:15:30.59ID:Szn4FINI0851デフォルトの名無しさん
2015/12/17(木) 20:00:08.82ID:MUNBX9mT世界中の文字を入れる必要なんかない
ある程度メジャーな言語が表現できれば十分
0852デフォルトの名無しさん
2015/12/17(木) 21:33:30.91ID:o7OE0QW2君みたいな奴がウニコードの仕様を決めたんだろうな
0853デフォルトの名無しさん
2015/12/17(木) 22:37:13.62ID:O/TlL5Ei拡張可能な可変長コードでやってりゃよかったんだよ。
今のゴミ溜めみたいになったUnicodeみてると、オリジナルのUnicodeは妥協も多いが
そのぶん現実的、実用的だったと思うわ。
0854デフォルトの名無しさん
2015/12/18(金) 23:29:03.09ID:Pd1EZ5aihttp://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
0855デフォルトの名無しさん
2015/12/19(土) 06:36:23.57ID:JTS0FgkK0856デフォルトの名無しさん
2015/12/19(土) 13:09:27.46ID:EW8XrhCB0857デフォルトの名無しさん
2015/12/19(土) 13:13:29.63ID:omg72g7V0858デフォルトの名無しさん
2015/12/19(土) 13:29:57.81ID:2CKHjxE+文字を画像で取得するならCOPYRECT
0859デフォルトの名無しさん
2015/12/19(土) 13:39:36.64ID:nLbzSKo0fontの画像と比較するとか?
0860デフォルトの名無しさん
2015/12/19(土) 15:20:19.93ID:cnr2UN2D0861デフォルトの名無しさん
2015/12/19(土) 15:22:50.20ID:iG82T79N0862デフォルトの名無しさん
2015/12/19(土) 17:07:21.92ID:JTS0FgkKテキストVRAMを読むんですよ。
0863デフォルトの名無しさん
2015/12/19(土) 23:02:33.63ID:NrSgV7LXhttps://msdn.microsoft.com/ja-jp/library/cc429673.aspx
https://msdn.microsoft.com/ja-jp/library/cc429664.aspx
0864デフォルトの名無しさん
2015/12/19(土) 23:06:47.65ID:nLbzSKo0どう言う原理か30文字で要約してくれ
0865デフォルトの名無しさん
2015/12/19(土) 23:48:08.03ID:NHtd1Eg10866デフォルトの名無しさん
2015/12/19(土) 23:52:15.16ID:nLbzSKo0文字数オーバー
答えになっていない
20点
やり直し
0867デフォルトの名無しさん
2015/12/20(日) 02:06:05.56ID:56xMgfm60868デフォルトの名無しさん
2015/12/20(日) 07:18:46.95ID:37nsyMmyMSがそのように作ったからだよ。ばか。
0869デフォルトの名無しさん
2015/12/20(日) 07:46:34.97ID:uuZPbj7S馬鹿はエラが張ってるだろ
0870デフォルトの名無しさん
2015/12/20(日) 11:00:10.04ID:8RLYRFXT画面の位置のを読むのは時間の無駄
0871デフォルトの名無しさん
2015/12/20(日) 12:27:47.08ID:zAzsvh370872デフォルトの名無しさん
2015/12/20(日) 13:48:28.72ID:8RLYRFXT何が問題?
0873デフォルトの名無しさん
2015/12/20(日) 15:46:54.52ID:hmqFHT/tということでCOORD構造体の配列じゃなくてふざけんなってことかね。
0874片山博文MZ ◆T6xkBnTXz7B0
2015/12/20(日) 15:50:10.13ID:DvVXmBam0875デフォルトの名無しさん
2015/12/20(日) 16:18:02.21ID:8RLYRFXT32768以上のサイズのウィンドウだったら隠しきれないな
0876デフォルトの名無しさん
2015/12/20(日) 17:11:38.42ID:KkGGgVF0世界のどこかで試したことのある愛すべきバカはいないのだろうか?
0877デフォルトの名無しさん
2015/12/20(日) 17:30:51.78ID:MKBZtdD0ピクセル単位とコンソール文字単位じゃまるで意味が違う
0878デフォルトの名無しさん
2015/12/20(日) 17:33:13.91ID:MKBZtdD00879デフォルトの名無しさん
2015/12/21(月) 22:35:49.69ID:FHH9nXMkこれの4倍くらいなら、そんな凄いバカでなくてもやらかすだろ
0880デフォルトの名無しさん
2015/12/22(火) 10:14:24.66ID:rqbDbnyc0881片山博文MZ ◆T6xkBnTXz7B0
2015/12/22(火) 10:38:01.21ID:Ho+K44elSetTextColor
TextOut
DrawText
DrawTextEx
0882デフォルトの名無しさん
2015/12/22(火) 13:03:35.05ID:rqbDbnyc対応できました。ありがとうございます。
0883デフォルトの名無しさん
2015/12/22(火) 20:30:17.58ID:0q8I2qvC0884デフォルトの名無しさん
2015/12/22(火) 23:54:02.55ID:cFhaBXKcそんなアホみたいにデカイ液晶有るのか?
何に使っている?
0885デフォルトの名無しさん
2015/12/23(水) 00:13:35.04ID:IHjjwtj50886デフォルトの名無しさん
2015/12/23(水) 02:57:17.09ID:/wOBmLFi何も知らないゴミは書き込むなよ。
幅1920pxのディスプレイでクアッドディスプレイやれば7680になるだろうが。
グラボ2枚刺にディスプレイ4枚程度なら今時どんな貧乏人でもできる。
お前みたいに知識もなく調べもせずに書き込んでスレを消費するゴミクズは目障りなんだよ。
知識もない調べない知恵送れのゴミクズがまともな人間の会話に混ざろうとするな、身の程を知れ。
アホはお前だろ。と言いたいところだがお前はアホ未満のゴミだから言えないな。
出ていけ。
0887デフォルトの名無しさん
2015/12/23(水) 03:38:24.63ID:h+VA4S6f自慢したいのなら知識だけにしとけ
0888デフォルトの名無しさん
2015/12/23(水) 06:12:37.31ID:Bay2doKJなぜそんなにイライラしているのですか?
君みたいな童貞は余裕が無いのは分かりますが…
0889デフォルトの名無しさん
2015/12/23(水) 08:50:14.87ID:2F8TsTF+第一象限に現れてくることってあるの?
どんなでかいディスプレイ用意しても無駄じゃね?
0890デフォルトの名無しさん
2015/12/23(水) 14:02:06.27ID:v0nEZQ5O煽っているところ申し訳ないんだが
「1920pxディスプレイを4枚並べて」という場合、32768を超えるためには18枚必要なんだが
2560pxディスプレイでも13枚必要
シャープあたりが1600万円の7,680×4,320pxディスプレイを出すらしいがそれでも5枚必要だ
>>879は「うちの環境の4倍」と言っている
仮にすでに何枚か並べているとして全部で12枚とか16枚以上のディスプレイを使うというのは「普通にやらかす」ことなのだろうか
値段的なことはおいておいても1枚から追加して4枚というのはありえることと思うが
4枚の人が16枚にするというのは「凄いバカ」ではないだろうか
そういう点から>>884は物理的に7,680×4,320pxディスプレイと解釈したんだと思う
ちなみにアスキーさんの記事
http://weekly.ascii.jp/elem/000/000/285/285487/
>>889
ディスプレイの配置によるんじゃないだろうか
プライマリディスプレイが基準になるはずでセカンダリ以降をプライマリの左に配置するとマイナス座標になる
プライマリが下で上にセカンダリを配置するとこれももマイナス座標になる
0891デフォルトの名無しさん
2015/12/24(木) 02:23:52.41ID:h3JTIwaNどこの誤爆か知らんが
環境の自慢厨とやらがいるスレでやれ発達障害
0892デフォルトの名無しさん
2015/12/24(木) 03:31:04.38ID:5C+hR8020893デフォルトの名無しさん
2015/12/24(木) 03:51:07.60ID:cfkhT3OL>>879>>886>>891
は同一人物か?
0894デフォルトの名無しさん
2015/12/24(木) 05:47:25.79ID:h3JTIwaN追い詰められると関係ない話をこじつけて保身しようとするのは発達障害の典型
0895デフォルトの名無しさん
2015/12/24(木) 06:28:11.13ID:jvPsYvZG自己主張したいなら余所でやれ
0896デフォルトの名無しさん
2015/12/24(木) 11:10:35.00ID:h3JTIwaN0897デフォルトの名無しさん
2015/12/24(木) 11:44:25.08ID:+OAEjoT0>は同一人物か?
そうだろう。かつ童貞で頭も悪い。
0898デフォルトの名無しさん
2015/12/24(木) 17:31:01.76ID:MjLZfEC/お前が話ずらしてんじゃねーかw
0899デフォルトの名無しさん
2015/12/24(木) 17:39:29.34ID:dt2VllYo0900デフォルトの名無しさん
2015/12/24(木) 18:14:59.25ID:4YM2CMve0901デフォルトの名無しさん
2015/12/24(木) 20:03:32.93ID:edQDesEY0902デフォルトの名無しさん
2015/12/24(木) 20:38:50.32ID:mFTVVltghttps://www.youtube.com/watch?v=m1RJASQT5i8
0903デフォルトの名無しさん
2015/12/24(木) 21:23:19.78ID:DECH3WsR-32768〜32767までしか座標を扱えないんだよな
0904デフォルトの名無しさん
2015/12/25(金) 12:25:35.03ID:ISLz7uba0905デフォルトの名無しさん
2015/12/25(金) 15:54:07.14ID:jK/x+z8S0906デフォルトの名無しさん
2015/12/25(金) 18:28:59.25ID:AIOAKki40907デフォルトの名無しさん
2015/12/26(土) 14:09:13.88ID:E3MIEZFa実行するのに長い時間のかかる関数があります
呼び出すと処理が終わるまで帰ってこず、途中で中断するような仕組みも用意されていません
この関数はソースがない外部のものなので修正はできません
この関数を呼び出すとUIが長い間固まるので、当然ワーカースレッドで実行します
ここまでは良いです
しかしユーザが中断ボタンを押した時は処理を中断させたいです
TerminateThreadでワーカースレッドを無理やり終了することは出来ます
若干メモリリークするでしょうが、頻度は多くないので諦めることすら検討しています
問題はクリティカルセクションです
マルチスレッドなのでクリティカルセクションを使っているわけですが
EnterしたままLeaveせずにスレッドが終了するとクリティカルセクションは未定義な状態になると書いてあります
https://msdn.microsoft.com/ja-jp/library/cc429095.aspx
最低でもクリティカルセクションだけはLeaveしてから終了しなければなりません
一つ考えたのは、長い時間のかかる関数を別プロセスで実行することです
キャンセルする場合はプロセスごと殺します
もっとうまい方法はないですか?
http://www.codeproject.com/Articles/71529/Exception-Injection-Throwing-an-Exception-in-Other
一応ここに答えのようなものが載っているのですが
0908デフォルトの名無しさん
2015/12/26(土) 14:17:19.97ID:E3MIEZFahttp://www.codeproject.com/Articles/71529/Exception-Injection-Throwing-an-Exception-in-Other
に書いてある方法でワーカースレッドに外から無理やり例外を発生させたとしても
今対象の長い時間のかかる関数の中がどうなっているかわかからないので難しいと思いました
長い時間のかかる関数が、C++の例外機構を使ってRAIIでクリティカルセクションを管理していれば
無理やり例外を発生させることでLeaveさせることが出来るかもしれませんが
そうじゃなかった場合、Leaveせずに関数を抜けることになります
もちろんメモリリークもしますでしょう
別プロセスで実行するしか他にやりようがないように思えてきましたが
何か良い案はありますでしょうか
0909デフォルトの名無しさん
2015/12/26(土) 14:21:43.20ID:E3MIEZFaこの日本語はちょっとおかしいですね
例外機構を使うか、もしくはRAIIで
に訂正しておきます
0910デフォルトの名無しさん
2015/12/26(土) 14:29:31.38ID:E3MIEZFaそれらが外部のライブラリで修正不可能な事も一般的なことだと思います
加えて、長く時間のかかる処理は、ユーザーは何時でもキャンセルできるのも普通なことと思います
皆さん一体どうしているんですか?
実はキャンセルしているように見えて、キャンセルしておらず、最後まで走っており
キャンセルした場合は、結果データを捨てているだけ、とかですか?
0911デフォルトの名無しさん
2015/12/26(土) 14:35:54.26ID:PvF8tuZ2延々と時間が経った後に
結果を表示せず「中断しました(キリっ)」
って出て
どうせ最後まで実行するなら結果表示しろってむかついたのは良い思い出
0912デフォルトの名無しさん
2015/12/26(土) 14:40:32.69ID:MqeDNb2X自分のコードからEnterしてるんじゃねぇの?そんだったら、
TerminateThreadを呼び出すとともに、クリティカルセクションLeaveすれば
いいだけじゃねぇのか??
まぁ、クリティカルセクションは特定のスレッドにアタッチされると思ったから、カウント1の
バイナリセマフォ使えばいいんじゃねぇのかな。
使って。
0913デフォルトの名無しさん
2015/12/26(土) 14:45:55.06ID:Sgv0r5+y簡単なことさ
0914デフォルトの名無しさん
2015/12/26(土) 14:49:45.60ID:MqeDNb2Xスレッドが終了するタイミングが重なったりするから、もっと制御必要か。
0915デフォルトの名無しさん
2015/12/26(土) 15:07:23.22ID:Igcba1qr> 別プロセスで実行するしか他にやりようがないように思えてきましたが
これだね。長い処理ならプロセス生成のペナルティなんてゴミでしょ。
0916デフォルトの名無しさん
2015/12/26(土) 15:52:38.79ID:MqeDNb2X関係なくなすすべなしだわ。ごめん。別プロセスがいいね。
0917デフォルトの名無しさん
2015/12/26(土) 17:22:27.23ID:E3MIEZFaどっちと言われても両方だと思います
自分のプログラム側も自分を守るためにクリティカルセクションは使っていますが
こっちは自分のコードなので好きにできるので
>>908の方法でメインスレッドからワーカースレッドに無理やり例外を発生させる方法でも
なんとかなるので構わないんですけども
呼びだされ側の、時間のかかる関数側も、そっちはそっちで自分を守るために
クリティカルセクションなどを使っている可能性がありまして
ソースコードがないので実際にどういう実装になっているかは定かではないのですが・・・
勝手に想定外の例外を発生させて関数を巻き戻して上手く開放処理が走る
保証はないといった感じです
もし関数側が例外機構もRAIIも使わずにCスタイルでEnter/Leaveしていたら
>>908の方法で無理やり外から例外を発生させても意味無いですから
別プロセスで走らすしかなさそうですね
0918デフォルトの名無しさん
2015/12/26(土) 23:51:05.38ID:7vqLpcYG馬鹿には無理
身の程を知れ
ここはお前みたいな奴がヴァカアピールするスレではない
0919デフォルトの名無しさん
2015/12/27(日) 03:07:52.61ID:vtL+jd1t0920デフォルトの名無しさん
2015/12/27(日) 03:21:59.70ID:uDQp4eWs0921デフォルトの名無しさん
2015/12/27(日) 05:06:34.16ID:n35dT9A9アセンブルのはソースだべ?
0922デフォルトの名無しさん
2015/12/27(日) 09:46:06.79ID:W/VOfYcN0923デフォルトの名無しさん
2015/12/27(日) 14:33:06.55ID:Acfv8QHx下らんことで詰んでもうた
0924デフォルトの名無しさん
2015/12/27(日) 14:40:36.28ID:IeXywcCLScreenToClient()で変換すりゃ良いんじゃない?
0925デフォルトの名無しさん
2015/12/27(日) 14:51:26.69ID:Acfv8QHxそれでやります。あざます
0926デフォルトの名無しさん
2015/12/27(日) 18:05:29.28ID:zGVY6mFV0927デフォルトの名無しさん
2015/12/27(日) 23:11:12.75ID:wEcqjPTL0928デフォルトの名無しさん
2015/12/28(月) 12:22:33.02ID:Y4DeX8w+タイトルバーとかウィンドウ枠の分ずれてるのはなんでなん?
0929デフォルトの名無しさん
2015/12/28(月) 12:56:04.56ID:dgI6+oKo> MSDNに書いてる事をドヤ顔で・・・
語れなくて悔しいのはわかった
0930デフォルトの名無しさん
2015/12/28(月) 12:59:54.19ID:b3qQlUF/クライアントじゃないから
0931デフォルトの名無しさん
2015/12/28(月) 16:20:50.20ID:i875NmCwツールバーとかステータスバーの分はズレなかったように思うけど
メニューバーとスクロールバーだけ特別扱いなのは何で?
あとから拡張したからってのは分かってることだけどまるで一貫性がないよね
メニューバーもただのWS_CHILDだった方が後々都合が良かったのにね
0932デフォルトの名無しさん
2015/12/28(月) 16:45:13.81ID:EuCUuVkCWM_PAINTに対してWM_NCPAINTって。
まぁ、ただの呼び名の問題だからな。そんなこだわっても。
0933デフォルトの名無しさん
2015/12/28(月) 18:19:55.77ID:Y4DeX8w+クライアント領域が全部ずれたりするよね
0934デフォルトの名無しさん
2015/12/28(月) 18:39:36.94ID:By8jd1bH0935デフォルトの名無しさん
2015/12/29(火) 00:36:46.96ID:NmwzIy5H自己紹介はしなくていい
0936デフォルトの名無しさん
2015/12/29(火) 00:50:08.25ID:ngajy4jA単発w
0937デフォルトの名無しさん
2015/12/29(火) 01:08:23.57ID:NmwzIy5HID変わるタイミング知らんのかw
0938デフォルトの名無しさん
2015/12/29(火) 06:43:26.45ID:x2QuPiOhってことだろ
0939デフォルトの名無しさん
2015/12/29(火) 11:39:54.40ID:6CCbAlEQ0940デフォルトの名無しさん
2015/12/29(火) 18:26:58.60ID:a9NNa9Ep0941デフォルトの名無しさん
2015/12/30(水) 00:32:40.72ID:6CJqV1bM30分しか経ってないのに「単発w」とか単発って言いたいだけだろw
0942デフォルトの名無しさん
2015/12/30(水) 01:41:46.09ID:eZTJN+3O0943デフォルトの名無しさん
2015/12/30(水) 02:11:12.54ID:Ov2mfylL0944デフォルトの名無しさん
2015/12/30(水) 02:22:22.51ID:tlmx9qoRウザイだけです。
時代とどっちがいい?
0945デフォルトの名無しさん
2015/12/30(水) 07:54:15.63ID:IhDAQ//hID導入されてからだよ。
まともな回答も全く返ってこなくなった。
恐らくまともな回答者と悪質な荒らし両方が消えて、
そのどちらでもない中途半端な層だけが残ったんだろう。
少なくとも問題を解決するために質問する場所ではなくなった。
回答の質と回答がくるまでにかかる時間を考えるとここは効率悪すぎる。
そして効率の悪すぎる選択肢を選ぶプログラマに成長はない。
0946デフォルトの名無しさん
2015/12/30(水) 08:31:48.19ID:ceGJ3m+f0947デフォルトの名無しさん
2015/12/30(水) 09:21:12.55ID:WpIjR9s5>>947も中途半端な層
0948デフォルトの名無しさん
2015/12/30(水) 09:23:21.08ID:WpIjR9s5>>946への誤安価
0949デフォルトの名無しさん
2015/12/30(水) 09:39:25.78ID:Jq3rckJ50950デフォルトの名無しさん
2015/12/30(水) 10:08:42.12ID:z3VqKnG6なにこの年末カミングアウト
0951デフォルトの名無しさん
2015/12/30(水) 11:16:54.04ID:DYiybrjz中途半端な層
0952デフォルトの名無しさん
2015/12/30(水) 12:58:58.92ID:t7rYBktz中途半端な唇
0953デフォルトの名無しさん
2015/12/30(水) 13:45:28.41ID:uafjeGLa0954デフォルトの名無しさん
2015/12/30(水) 13:47:12.22ID:Q+ZAoAOe「一歩引いた目線で事態を俯瞰できる冷静な俺」を演出しようとする中途半端な層
0955デフォルトの名無しさん
2015/12/30(水) 13:52:42.30ID:1eDT/VUE止めねえと殺すぞ
0956デフォルトの名無しさん
2015/12/30(水) 14:20:38.06ID:/HMKIoW3厨二臭い層
0957デフォルトの名無しさん
2015/12/30(水) 22:14:25.35ID:z3VqKnG60958デフォルトの名無しさん
2015/12/31(木) 10:28:39.23ID:KKAqg1l12ちゃんはとっくにオワコン
0959デフォルトの名無しさん
2015/12/31(木) 17:08:02.56ID:0eyIQ7zd0960デフォルトの名無しさん
2015/12/31(木) 17:17:59.10ID:gJy9w4AYID導入の前は荒しの巣窟と化していた
ID導入で落ち着いたやり取りが続くようになった
>>945 はたぶん昔の荒し野郎
0961デフォルトの名無しさん
2015/12/31(木) 17:56:06.76ID:2PlDRXcT紅白見る→録画したガキ使見る→お前らのレポ見る→寝る
0962デフォルトの名無しさん
2015/12/31(木) 18:50:58.09ID:0eyIQ7zd情報価値のない雑談レベルのやり取りばっか
そして何よりいきなりレッテル貼ってる辺り
>>960がID出る前に荒らし回ってた奴だろうな
前に荒らしてた奴もいきなりレッテル貼ったり罵倒したりするパターンだったしな
自演で荒らす→ID導入→回答者流出により情報価値がなくなる、という完璧なコンボを決めた>>960
0963デフォルトの名無しさん
2015/12/31(木) 20:10:34.60ID:NXxyivrJ> そして何よりいきなりレッテル貼ってる辺り
なにこのでかいブーメラン w
0964デフォルトの名無しさん
2015/12/31(木) 21:50:22.63ID:nJLqX/zt0965デフォルトの名無しさん
2015/12/31(木) 22:12:55.21ID:F75alAnQ0966デフォルトの名無しさん
2015/12/31(木) 22:21:11.76ID:KP9fkYAQ0967デフォルトの名無しさん
2016/01/01(金) 00:51:59.47ID:Robe7ssmウザい。
ここは出題スレじゃないがそれも分からないほど知能が低いのか?
消えろゴミクズ。
0968デフォルトの名無しさん
2016/01/01(金) 02:07:38.70ID:Y4ZB9vSq0969デフォルトの名無しさん
2016/01/02(土) 15:04:41.20ID:dDeNCcj50970デフォルトの名無しさん
2016/01/02(土) 18:12:53.46ID:wHwB68HU0971デフォルトの名無しさん
2016/01/02(土) 23:23:35.90ID:EH4JctI/0972デフォルトの名無しさん
2016/01/03(日) 00:02:41.64ID:qiKwbZ3e送受信タイムアウトは無しですかい?
0973デフォルトの名無しさん
2016/01/03(日) 07:45:08.78ID:WvZ6ZWofアウト
0974デフォルトの名無しさん
2016/01/03(日) 14:32:54.55ID:wr72odRt0975デフォルトの名無しさん
2016/01/03(日) 17:49:43.90ID:7mAtatH90976デフォルトの名無しさん
2016/01/03(日) 20:05:36.34ID:buM4hFpe0977デフォルトの名無しさん
2016/01/03(日) 20:18:59.08ID:dC+f8AkW0978デフォルトの名無しさん
2016/01/03(日) 22:59:52.74ID:cm6nEbxV0979デフォルトの名無しさん
2016/01/03(日) 23:17:05.65ID:qiKwbZ3e0980デフォルトの名無しさん
2016/01/03(日) 23:17:58.29ID:qiKwbZ3e0981デフォルトの名無しさん
2016/01/04(月) 04:46:02.89ID:xj/2f+ZR0982デフォルトの名無しさん
2016/01/04(月) 11:01:30.01ID:AAcHANMO0983デフォルトの名無しさん
2016/01/04(月) 19:00:39.97ID:uh/Y4MEwN81X
0984デフォルトの名無しさん
2016/01/05(火) 07:23:36.17ID:4YKOrwwk実際、キーボードをフックするまでは出来たのですが、実際にドラクエXを実行しても
キーボードが入力されたことになりません。原因は何が考えられますでしょうか
キーボードのフックはメモ帳などに実際に出てきているので問題ないです
0985デフォルトの名無しさん
2016/01/05(火) 08:19:19.23ID:7Q2tXWc2ドラクエXのプロテクトどんなのか知らんけど
・管理者として起動
・起動のタイミング
いろいろ試した?
0986デフォルトの名無しさん
2016/01/05(火) 08:34:02.91ID:QQENqvYE家に帰ってから試してみます。
0987デフォルトの名無しさん
2016/01/05(火) 13:45:12.72ID:lhyUPbMU0988デフォルトの名無しさん
2016/01/05(火) 15:50:55.71ID:Woj1scU20989デフォルトの名無しさん
2016/01/05(火) 17:02:32.92ID:B9TyBRm40990デフォルトの名無しさん
2016/01/05(火) 17:21:41.22ID:QQENqvYEvoid setKeyDown(WORD VirtualKey, BOOL bKeepPressing)
{
INPUT data;
data.type = INPUT_KEYBOARD;
data.ki.wVk = VirtualKey;
data.ki.wScan = MapVirtualKey(data.ki.wVk, 0);
data.ki.time = 0;
data.ki.dwFlags = KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYDOWN;
data.ki.dwExtraInfo = ::GetMessageExtraInfo();
::SendInput(1, &data, sizeof(INPUT));
if (!bKeepPressing){
data.ki.dwFlags = KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP;
::SendInput(1, &data, sizeof(INPUT));
}
}
0991デフォルトの名無しさん
2016/01/05(火) 18:57:40.55ID:MmiOC2W00992デフォルトの名無しさん
2016/01/05(火) 19:04:03.54ID:IesHwkgHWin32API質問箱 Build122
http://peace.2ch.net/test/read.cgi/tech/1451988219/
0993デフォルトの名無しさん
2016/01/05(火) 20:03:03.22ID:ZQLyvfM10994デフォルトの名無しさん
2016/01/05(火) 20:44:31.27ID:3P8foX3gおつ
0995デフォルトの名無しさん
2016/01/05(火) 21:04:10.66ID:nA3aY+grドライバ作れ
>>989
自動芋・・・
0996デフォルトの名無しさん
2016/01/05(火) 21:09:36.93ID:4YKOrwwk0997デフォルトの名無しさん
2016/01/05(火) 21:11:11.35ID:4YKOrwwk0998片山博文MZ ◆T6xkBnTXz7B0
2016/01/05(火) 21:15:48.75ID:bG6ahL5d0999デフォルトの名無しさん
2016/01/05(火) 21:19:40.79ID:4YKOrwwk1000デフォルトの名無しさん
2016/01/05(火) 21:29:52.48ID:IesHwkgHhttp://i.imgur.com/BpoUAOA.jpg
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。