Win32API質問箱 Build118
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2014/08/03(日) 04:02:03.38ID:T59meZIw■過去スレ
Win32API質問箱 Build117
http://peace.2ch.net/test/read.cgi/tech/1394156278/
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0002デフォルトの名無しさん
2014/08/03(日) 04:04:04.93ID:T59meZIwhttp://news.mynavi.jp/news/2013/10/30/266/
日本マイクロソフトは30日、統合開発環境ツール「Microsoft Visual Studio 2013」
(Visual Studio 2013) の提供を、11月1日より開始すると発表した。
11月1日よりボリュームライセンスの販売を、11月29日よりパッケージ製品の販売を開始する。
「Visual Studio 2013」の主な新機能として、CodeLends機能を搭載。
ソースコード内の表示をクリックすることでTeam Foundation Serverと連携し、
情報をポップアウトして表示できるため、編集履歴やテスト結果などのチームの作業状況を、
画面を切り替えることなくコード内で見ることができる。
Team Foundation Serverに接続できない状況においても、参照している関数の情報をコード内で表示可能。
また、MicrosoftアカウントにサインインしてVisual Studioを使用すると、作業環境が自動的に同期されるため、
別のマシンで作業を行う場合にも、キーボード ショートカットや見た目のデザインなどを同じ環境で使用できる。
そのほか、Windows 8.1のデスクトップアプリとWindowsストアアプリの開発を行うことができ、
XAMLアプリのコード化されたUIテストがサポートされたことで、自動テストが可能になった。
Visual Studio 2013の製品製品ファミリーには、
「Visual Studio Ultimate 2013 with MSDN」や
「Visual Studio Premium 2013 with MSDN」など数種類あり、
参考価格として、
「Visual Studio Ultimate 2013 with MSDN」はボリュームライセンス Open License (SA 2年) が201万円、
リテール版(パッケージ製品)が159万円、
「Visual Studio Premium 2013 with MSDN」はボリュームライセンス Open License (SA 2年) が92万1000円で、
リテール版(パッケージ製品)が72万9000円となっている(いずれも税別)。
http://www.microsoft.com/visualstudio/jpn 日本語版
http://www.microsoft.com/visualstudio/eng 英語版
※ Visual Studio 2013 Update 1
http://www.microsoft.com/ja-jp/download/details.aspx?id=41650
0003デフォルトの名無しさん
2014/08/03(日) 04:09:21.67ID:T59meZIwhttp://www.microsoft.com/ja-jp/download/details.aspx?id=43398
Visual Studio 2013 part4
http://peace.2ch.net/test/read.cgi/tech/1404333757/
0004デフォルトの名無しさん
2014/08/03(日) 04:15:42.40ID:T59meZIwVC++ Team「リリースごとにバージョン番号付けたC/C++ランタイムDLL止めるわ(msvcrt.dllを使うとは言っていない)」
0005デフォルトの名無しさん
2014/08/03(日) 06:49:56.64ID:Qqzbedo30006デフォルトの名無しさん
2014/08/03(日) 07:16:03.87ID:zU4sk6Ng,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0007デフォルトの名無しさん
2014/08/03(日) 07:45:16.92ID:zU4sk6NgTiny C Compiler
http://bellard.org/tcc/
D
http://dlang.org/
D for Win32
http://wiki.dlang.org/D_for_Win32
Win32 DLLs in D
http://wiki.dlang.org/Win32_DLLs_in_D
ネイティブアプリ終了にとどめを刺すかと思われた Atom が自身のネイティブアプリ化とはね
Atom
https://atom.io/
GitHubの各種言語対応コーディング用テキストエディタAtomが完全にオープンソース化
http://jp.techcrunch.com/2014/05/07/20140506github-open-sources-its-atom-text-editor/
GitHub、テキストエディター「Atom」のWindows版を公開
http://www.forest.impress.co.jp/docs/news/20140710_657321.html
0008デフォルトの名無しさん
2014/08/03(日) 08:56:52.31ID:zU4sk6NgWin7 では正常に動いてたのに
Win8 だと表示が可笑しくなってることが判明
GDI+ とか使ってなくて互換性の問題もないと思ってたのにな
Win8 でもう一度コンパイルしなおせば治るかな
0009デフォルトの名無しさん
2014/08/03(日) 18:39:11.47ID:Bq+noHxE元々存在していた不具合が顕在化しただけじゃね?
0010デフォルトの名無しさん
2014/08/03(日) 19:40:42.26ID:T59meZIw0011デフォルトの名無しさん
2014/08/03(日) 20:09:46.96ID:+KLBY5j70012デフォルトの名無しさん
2014/08/03(日) 20:42:40.95ID:T59meZIw0013デフォルトの名無しさん
2014/08/04(月) 11:07:19.35ID:VkhvqJe+Win8 上で tcc でコンパイル&リンクし直したらちゃんと動いた
もともとあった(と思ってた) exe がなんか変らしいので
MSVC++ でもコンパイル出来たけど
こっちのバージョンを実行すると同じ症状が出た
なので VC++ でコンパイルした exe について
>元々存在していた不具合が顕在化しただけじゃね?
の可能性が高いです
0014デフォルトの名無しさん
2014/08/04(月) 14:25:23.52ID:4x8QxR6V0015デフォルトの名無しさん
2014/08/04(月) 14:44:46.57ID:LgeiXwf0no
0016デフォルトの名無しさん
2014/08/04(月) 14:49:24.10ID:vzBGIwJJ0017デフォルトの名無しさん
2014/08/04(月) 17:52:15.72ID:RWktXGOp乙。
TCCはバージョンや実行環境であんまり結果が変わらない気がしてたから意外だ。
Win7とWin8で挙動が違って、尚且つTCCの状態でも挙動が変わるとは…
0018デフォルトの名無しさん
2014/08/06(水) 16:42:02.30ID:1ZJY0Rwzロクな知識もないカスの予測が外れたとかブログに書いてろ
2chとブログの区別すらつかないやつがプログラミングやってんのか
0019デフォルトの名無しさん
2014/08/06(水) 21:03:49.48ID:bTvhocPH0020デフォルトの名無しさん
2014/08/06(水) 23:54:56.09ID:Rc+eyo3Sメッセージループ前は0
メッセージループ後はwParam
って書いてるけど
GetMessageがエラーで-1を返した時はどうすればいい?
0021デフォルトの名無しさん
2014/08/07(木) 02:42:20.95ID:wjsl2rFXエラー終了を表す終了コードを返しておけば良いんじゃないか?
ただ、メッセージループ無しのWindowsアプリは常に0を返すのか、という話もあったりする訳で。
http://social.msdn.microsoft.com/Forums/ja-JP/d00c0833-2c50-41f4-a7bc-640c35957862/winmain-return-code-how-important-is-it?forum=windowssdk
個人的には、メッセージループに拘らず正常終了かどうかを返しておけば良いと考えている。
VC++のCRTソースでも、WinMainの戻り値での特別な対応はしていないみたいだし。
0022デフォルトの名無しさん
2014/08/07(木) 12:37:06.77ID:lSdy2QFw自殺教唆で有罪になるとどれくらいの刑罰が課されるか知ってるよね?
お前が逮捕されたらお前の親や家族が近所の人からどういう扱いされてるか分かってる?
0023デフォルトの名無しさん
2014/08/07(木) 12:50:09.93ID:DXKkY0VC死ね
0024デフォルトの名無しさん
2014/08/08(金) 15:00:16.31ID:/ih7tkBD最前面に持ってきたい(=そのウインドウのタイトルバーをマウスクリックした時と同じ状態)
のですが、
SetForegroundWindow(hwnd);
や
BringWindowToTop(hwnd);
を試したのですが、確かに他のウインドウより上には来ますが、その状態でタイトルバーをクリック
すると、タイトルバーの色が変わりそれでようやく最前面に来たことが分ります。
ということは、上記の関数を実行しただけでは最前面には来ていないようなのですが、
マウスクリックしたのと同じ意味での最前面に持ってくる方法はありますか?
Dobonさんの.NETの例でも
http://dobon.net/vb/dotnet/process/appactivate.html
なかなか難しそうなのですが、それのC++版みたいなの有りましたら教えて下さい。
0025デフォルトの名無しさん
2014/08/08(金) 15:03:29.50ID:NYRFXe490026デフォルトの名無しさん
2014/08/08(金) 17:02:30.80ID:HZkP1SQ9Vistaから、SetForegroundWindowで最前面にできるのは
アクティブなウインドウを持っているスレッドからだけになった。
勝手にキーボードフォーカス奪うのは迷惑だからね。
そういう迷惑な動作を今でもやりたいというなら、
AttachThreadInputしてからSetForegroundWindowすれば可能。
0027デフォルトの名無しさん
2014/08/08(金) 17:49:34.31ID:aPdADbjs::SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
::SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
0028デフォルトの名無しさん
2014/08/08(金) 17:53:21.61ID:aPdADbjs0029デフォルトの名無しさん
2014/08/08(金) 18:50:55.09ID:1UU7vf/D0030デフォルトの名無しさん
2014/08/08(金) 20:35:40.08ID:/ih7tkBDみなさんありがとうございました。
SetWindowPosの方法で出来ました。
>>28,29
どこかにサンプルありませんか?参考にしたいのですが。
0031デフォルトの名無しさん
2014/08/08(金) 21:00:50.44ID:aPdADbjsぐぐれ
モニタをNearestで検索してHMONITOR取得、そのモニタをWorkingAreaを取得するAPIに渡してごにょごにょ計算
0032デフォルトの名無しさん
2014/08/08(金) 22:49:47.51ID:P41P+0nG0,-1,それ以外の返ってくるふざけた仕様なのは何故なの?
あとMSDNにはこの理由で
while(GetMessage(...)){}
みたいにするのはやめろって書いてあるのに
でもサンプルコードやVC++が生成するコードは殆どこの形になってるし
どっちにすればいいんだよ?
0033デフォルトの名無しさん
2014/08/08(金) 23:04:01.16ID:wnc8sFJe0034デフォルトの名無しさん
2014/08/08(金) 23:31:52.49ID:bmONrCzR記念カキコ
自殺教唆って殺人の次くらいに重い罪だからな
0035デフォルトの名無しさん
2014/08/09(土) 00:26:11.47ID:XnzTvHrT0036デフォルトの名無しさん
2014/08/09(土) 11:49:34.27ID:AK3HkfPSwhile(GetMessage(...) > 0){} にしとくのが手軽かな
英語版の方にはちゃんとした例が載っているがそこまでやる必要があるかどうかは自分で判断してくれ
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms644936.aspx
0037デフォルトの名無しさん
2014/08/09(土) 13:09:08.91ID:hpE++uRf・-1
・それ以外
ということだから
0以上と判定するのは危険じゃないか?
0038デフォルトの名無しさん
2014/08/09(土) 13:14:15.95ID:cMAC0zr60039デフォルトの名無しさん
2014/08/09(土) 13:32:03.58ID:+T7xdrkUお手軽に だから
0040デフォルトの名無しさん
2014/08/10(日) 03:39:03.41ID:eHhQsmny・-1エラー終了
・それ以外ループ
でいいだろ
0041デフォルトの名無しさん
2014/08/10(日) 09:33:41.95ID:zo9IFsz+0042デフォルトの名無しさん
2014/08/10(日) 11:53:09.79ID:4XcXObsW0043デフォルトの名無しさん
2014/08/10(日) 11:57:28.50ID:WSpuTRJM0044デフォルトの名無しさん
2014/08/10(日) 14:50:08.86ID:Lw+4BltMだとするとプログラマのミスだから、Debug版では必要でもRelease版では不要ってことになるね
GetMessage() の-1をチェックするなら、例えば UpdateWindow() とかでも律儀に戻り値をチェックする必要があるだろうね
0045デフォルトの名無しさん
2014/08/11(月) 22:27:17.86ID:mcGVsp2Uやりたいことは呼び出し元ウインドウを WindowA 呼び出されるダイアログウインドウを DialogB として、
1)WindowA 側で処理をして DialogB に渡す
2)DialogBで確認メッセージを表示、ユーザが処理を選択
3)DialogBを消すことなくWindowAに処理を戻す
4)WindowAでの処理が終わったらDialogBに結果を表示
5)DialogBを閉じることができるようになる
ShowModal でやるといったんウインドウが閉じてしまうのを抑止させたいんですよね。
自前でメッセージループを回せばと思ったんですが、
#define WM_DIALOGCLOSE WM_USER+1
----
WindowA->Enabled = false;
while(GetMessage(&msg , NULL , 0 , 0)) {
if(msg.message==WM_DIALOGCLOSE) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
WindowA->Enabled = true;
こんなコードでも形上は問題ないものでしょうか。
異なるスレッドならイベントなどで待機させれば簡単なんですけど
同じスレッド上で待機させるにはどうしたらいいのかと。
それともこんな糞コードよりコールバック関数を用意して DialogB 側で呼び出すほうがいいのでしょうか。
0046デフォルトの名無しさん
2014/08/11(月) 23:16:51.61ID:OSKN4xqhあと処理スレッドも別
進捗に応じて処理スレッドからWindowAやDialogBにSendMessageして状態変更
あと処理スレッド用のメッセージキューみたいなのも作ってDialogBと同期
0047デフォルトの名無しさん
2014/08/11(月) 23:24:51.81ID:OSKN4xqh0048デフォルトの名無しさん
2014/08/12(火) 08:03:40.73ID:Q0VF6C/sDialogB上のボタンが押されたときに、
WindowAにWM_COMMANDでも送ってやれば済む話のような。
0049デフォルトの名無しさん
2014/08/12(火) 11:11:31.10ID:SHzkP4WO相談に乗っていただきありがとうございました。
あれからいろいろ探したところ MsgWaitForMultipleObjects という関数を見つけました。
イベントオブジェクトと組み合わせることである程度目的のことができるようになりましたので
お礼を兼ねて報告させていただきます。
0050デフォルトの名無しさん
2014/08/12(火) 22:02:39.21ID:EsDtZ9Jx(98, 98)までしか描画できません。
これであっていますか?
98までしか描画できないなら、なぜ0が描画できるのか理解できません。
(0, 0)から(99, 99)の長方形を10個描画。
背景のウィンドウが(0, 0)(99, 99)の長方形でクリッピング。
小さいウィンドウが(0, 0)(100, 100)の長方形でクリッピング。
http://www.dotup.org/uploda/www.dotup.org5249528.png
0051デフォルトの名無しさん
2014/08/12(火) 22:09:29.74ID:EsDtZ9Jxhttp://peace.2ch.net/test/read.cgi/tech/1403567676/945
が関係ありますか?
0052デフォルトの名無しさん
2014/08/12(火) 22:32:26.33ID:SHzkP4WO座標指定の問題で左上の座標は含む、右下の座標は含まないというのがあるようです。
どこで見たのかちょっと思い出せないですけど。
0053デフォルトの名無しさん
2014/08/12(火) 22:40:12.11ID:EsDtZ9Jxそうだったのですか。
図形って難しいですね。
0054デフォルトの名無しさん
2014/08/12(火) 23:16:46.01ID:wFJQwqXA0055デフォルトの名無しさん
2014/08/12(火) 23:56:58.70ID:Q0VF6C/s(0,0)から縦横に100px描画したいなら、
(0+100,0+100)=(100,100)って感じ。
本当はピクセルを囲む云々なのだろうけど考えるの鬱陶しいし。
0056デフォルトの名無しさん
2014/08/13(水) 02:44:02.27ID:ZHko1bcfBingって見たけどさっぱりなので、ペゾルド見たら載ってました。
どこ探せばいいのかさっぱりですね。
0057デフォルトの名無しさん
2014/08/13(水) 10:43:27.02ID:YdrUmIgN0058デフォルトの名無しさん
2014/08/14(木) 10:03:54.67ID:2mcL5RK2ドットネットはライブラリーだ
OSが存在する限りAPIは必要になる
0059デフォルトの名無しさん
2014/08/14(木) 10:40:08.43ID:UYnglolm0060デフォルトの名無しさん
2014/08/14(木) 10:43:55.92ID:U3xT73aaゴミじゃん
0061デフォルトの名無しさん
2014/08/14(木) 10:53:31.51ID:ztsop+v90062デフォルトの名無しさん
2014/08/14(木) 21:42:33.94ID:IoeJUH1C作れないけど、それは仕様。まあJavaと同じで成功してるとは
言えないけど。
0063デフォルトの名無しさん
2014/08/14(木) 21:51:59.12ID:8EuqiR5k0064デフォルトの名無しさん
2014/08/14(木) 21:53:20.91ID:8EuqiR5k0065デフォルトの名無しさん
2014/08/14(木) 21:54:10.27ID:UYnglolmはい論破
0066デフォルトの名無しさん
2014/08/14(木) 22:22:46.72ID:wROGfWf+0067デフォルトの名無しさん
2014/08/14(木) 22:27:49.15ID:KTikXAiCこのページ
http://7ujm.net/C++/Console.html
にある _printf 関数で、AllocConsoleしたコンソールに無事に出力出来たのですが、
こんな関数使わずに、stdio.hの printf 関数でこのコンソールに出力する方法は
無いでしょうか?
0068デフォルトの名無しさん
2014/08/14(木) 22:39:57.60ID:8EuqiR5kfreopen("CONOUT$", "w", stdout);
printf("test");
0069デフォルトの名無しさん
2014/08/14(木) 22:40:19.53ID:UYnglolm0070デフォルトの名無しさん
2014/08/14(木) 22:53:59.57ID:KTikXAiC>>68
>stdout
が見つからないと出るんですが。
>>69
やはり無理ですか。どうにかして出来ませんか?
0071デフォルトの名無しさん
2014/08/14(木) 23:09:56.51ID:8EuqiR5k#include <stdio.h>
しろ
0072デフォルトの名無しさん
2014/08/14(木) 23:12:37.27ID:8EuqiR5k君の居場所はこっちかな
【初心者歓迎】C/C++室 Ver.92【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1406801653/
0073デフォルトの名無しさん
2014/08/14(木) 23:41:32.44ID:KTikXAiCこんなエラーが出ました。
> error C4996: 'freopen': This function or variable may be unsafe.
> Consider using freopen_s instead.
0074デフォルトの名無しさん
2014/08/15(金) 00:04:16.31ID:dqHjjjVM言われた通りfreopen_sつかえばいいやん
0075デフォルトの名無しさん
2014/08/15(金) 00:10:46.07ID:ZUc984rOhttp://d.hatena.ne.jp/xcrux/20060323
に書いてある通りにしたら、無事に出ました。
皆さん有難うございました。
0076デフォルトの名無しさん
2014/08/15(金) 00:48:40.61ID:LCoKxw/X0077デフォルトの名無しさん
2014/08/15(金) 02:56:07.95ID:OYLuvNRz0078デフォルトの名無しさん
2014/08/15(金) 03:22:16.53ID:LCoKxw/X0079デフォルトの名無しさん
2014/08/15(金) 07:45:59.59ID:6TAlsDwK>>62 には、だろ。
面倒だからスルーしとけ。
0080デフォルトの名無しさん
2014/08/15(金) 12:26:25.59ID:Lne+Px+XMicrosoft Updateしたらageるスレ 95
http://peace.2ch.net/test/read.cgi/win/1406163127/
Microsoft Updateしたらageるスレ 96
http://peace.2ch.net/test/read.cgi/win/1408018992/
Microsoft Update失敗したらageるスレ 33
http://peace.2ch.net/test/read.cgi/win/1399463544/
8月14日のアップデートで再起動に問題起こるケースがあるらしいので注意
http://jisakutech.blog.jp/archives/11301930.html
https://twitter.com/ALiPaPa333/status/500038635790409728
0081デフォルトの名無しさん
2014/08/15(金) 14:35:17.58ID:LCoKxw/X0082デフォルトの名無しさん
2014/08/15(金) 16:54:10.20ID:06IqYKhN0083デフォルトの名無しさん
2014/08/16(土) 02:08:16.46ID:nQiWsyllわかります
0084デフォルトの名無しさん
2014/08/16(土) 08:30:07.63ID:5flrnqyZXPを使っているんですが。
XPより後バージョンにしかないAPIを抽出して実装するのと、
VC++2010になくて、gccやC11にある関数を抽出して実装するのはどうやればいいですか。
0085デフォルトの名無しさん
2014/08/16(土) 08:59:56.50ID:qYMP3/07#ifdef 使え
0086デフォルトの名無しさん
2014/08/16(土) 09:51:19.24ID:0XKtKnUw2. 必要なライブラリをリンクする
0087デフォルトの名無しさん
2014/08/16(土) 09:56:58.87ID:4+vOhLId0088デフォルトの名無しさん
2014/08/16(土) 10:50:37.97ID:VKTgsMtd0089片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/08/16(土) 12:37:45.65ID:wzxOsEnQMZC3_WindowSelector
https://github.com/katahiromz/MZC3_WindowSelector
0090デフォルトの名無しさん
2014/08/16(土) 12:52:05.86ID:nQiWsyll0091デフォルトの名無しさん
2014/08/16(土) 14:36:07.44ID:nQiWsyll009284
2014/08/16(土) 18:46:16.99ID:bOR6T3om合法範囲で手段は問わず、オープンソースで既存コードがあればそれを使って
XPに無い部分の実装だけを集めたいんですが。
どの関数・APIが足りてないか調べる方法と既成品があればそれを使いたいんですがどうしたらできますか。
0093デフォルトの名無しさん
2014/08/16(土) 19:30:03.53ID:awmA6BQPXPで出来るだけ多くの既存のソフトを動かしたいのか?
~~~~~~~
これからすべてをコンパイルしてって意味なら
XP上で作ればむしろ動かないものを作るほうが難しいと思うけど。
もし、出来るだけ多くの既存のソフトを動かしたいっていうなら
そもそもリンクしているDLLなんかの影響があるわけで。
0094デフォルトの名無しさん
2014/08/16(土) 19:50:22.70ID:+PvsjeWpOSのバージョンチェックしているソフトはどうしたら良いと思う?
0095デフォルトの名無しさん
2014/08/16(土) 19:50:54.33ID:Tzb9+P64「gccやC11にあるけどVC++2010にない関数」を使ったコードであっても、
gccやclangでXPをターゲットにしてコンパイルすればXPでも普通に動く。
で、「出来るだけ多くのソフトを動作させたい」の「ソフト」ってのは、
ソースコードの状態なのかビルド済みバイナリなのかどっちだ?
ビルド済みバイナリを動かすって話だとするとgccやC11関係ないし、
関数だけ集めても勝手にリンクされるわけじゃないからそれだけじゃ駄目だぞ。
黒翼猫さんの改造Windows2000みたいな事したいのかもしれんけど、
アレは結構な時間と手間と技術が要るしここで聞いてハイ出来たとは行かないぞ?
0096デフォルトの名無しさん
2014/08/16(土) 21:27:47.77ID:nQiWsyll0097デフォルトの名無しさん
2014/08/16(土) 21:46:24.25ID:IHy3BkSoでもってDLLとか作ってXPにない機能の関数インポート部分だまくらかすんだろう
関数の中身未実装で何もせずリターンで動けばいいけどそんな都合よくはいかない
基本無理だと思うよ
0098デフォルトの名無しさん
2014/08/16(土) 21:57:31.20ID:jc5hesjA海でも眺めてた方が有意義だぞ
0099デフォルトの名無しさん
2014/08/16(土) 22:42:31.04ID:nQiWsyll0100デフォルトの名無しさん
2014/08/17(日) 01:11:39.50ID:sI1u/7Zz泣けてきた
0101デフォルトの名無しさん
2014/08/18(月) 14:34:52.22ID:IJ8l4vjaXP時代にWindows95でも動くやつ作りたいって言ってるようなものやで
サポート終わったXP使ってるユーザーなんて金ないくせに
ブーブー文句言うだけやから
相手しても無駄や
0102デフォルトの名無しさん
2014/08/18(月) 14:38:55.46ID:1lCgn+a+0103デフォルトの名無しさん
2014/08/18(月) 14:53:14.54ID:wrymC6Niほんと死ね
0104デフォルトの名無しさん
2014/08/18(月) 23:37:48.28ID:eFDxfYR40105デフォルトの名無しさん
2014/08/19(火) 00:29:03.09ID:MNYlxzwL0106デフォルトの名無しさん
2014/08/19(火) 19:08:39.00ID:PsjEYu92スタンバイやスリープでリセットされる?
もしリセットされないならシステム落とさずにスタンバイやスリープで長期使われてると
場合によっては49.7日の境にGetTickCount()を呼び出すことがあるってことだよね
0107デフォルトの名無しさん
2014/08/19(火) 19:17:57.56ID:68cY/vKe0108デフォルトの名無しさん
2014/08/19(火) 19:32:08.54ID:4oI8t6Hfちなみに今は月一回システムアップデートが来て半強制のリブートがかかるから
気にしなくていいかもしんまい
0109デフォルトの名無しさん
2014/08/19(火) 19:32:09.06ID:MNYlxzwL0111デフォルトの名無しさん
2014/08/19(火) 21:01:22.43ID:MNYlxzwL0112デフォルトの名無しさん
2014/08/19(火) 22:16:18.56ID:ef+5aCFB0113デフォルトの名無しさん
2014/08/19(火) 22:40:01.57ID:/HNxszwg符号付きで扱って24.855日で問題起こすソフトウェアもたまに居るぞ。
XPはアプデ来なくなったから再起動減るし症例増えてたりするんかな。
0114デフォルトの名無しさん
2014/08/19(火) 22:40:45.70ID:MNYlxzwL0115デフォルトの名無しさん
2014/08/19(火) 22:58:09.87ID:MNYlxzwL0116デフォルトの名無しさん
2014/08/20(水) 15:51:07.72ID:cYiGvIKn0117デフォルトの名無しさん
2014/08/20(水) 17:24:20.59ID:ekRS8u1z0118デフォルトの名無しさん
2014/08/20(水) 19:24:08.55ID:f4puTXWOラップして即死しとけ
0119デフォルトの名無しさん
2014/08/20(水) 21:08:36.58ID:nfSgOZEiVista以降なら32bitでも使えるのに……
0120デフォルトの名無しさん
2014/08/20(水) 21:17:56.37ID:cYiGvIKnそれに正しく使ってればGetTickCount使い続けても問題ない
now - save > timeout で比較すればいいだけ
リセットされても正しく動くからこうやって使ってねってMSDNに載ってた
0121デフォルトの名無しさん
2014/08/20(水) 22:56:14.16ID:ekRS8u1z0122デフォルトの名無しさん
2014/08/20(水) 23:49:18.27ID:nCjpdpG/0123デフォルトの名無しさん
2014/08/21(木) 00:04:57.33ID:dDCf4AuG> Example
> 次のサンプルコードは、タイマが 0 に戻る現象に対処する方法を示します。
>
> DWORD dwStart = GetTickCount();
> // 極端に長い時間が経過した場合は、実行を停止する。
> if(GetTickCount() - dwStart>= TIMELIMIT)
> Cancel();
う・・・ん?
0124デフォルトの名無しさん
2014/08/21(木) 01:36:35.82ID:JsL1zQzE時代は変わったんだよ
0125デフォルトの名無しさん
2014/08/21(木) 02:03:35.09ID:VHllMRc10126デフォルトの名無しさん
2014/08/21(木) 02:52:50.15ID:s1HtGAdi0127デフォルトの名無しさん
2014/08/21(木) 04:08:50.38ID:M3w3muWUhttp://d.hatena.ne.jp/shiku_otomiya/20100218/p1
を読むとどうも安心して使えないようで。
0128デフォルトの名無しさん
2014/08/21(木) 04:12:05.95ID:JsL1zQzE0129デフォルトの名無しさん
2014/08/21(木) 08:26:54.13ID:QQWyFLQRそんなに放置するなよって話だが前回取得から二周したら経過時間が狂う。
>>127
rdtsc使ってる場合でも、rdtscの値を補正してから返す場合がある。
どういう補正してるかがいまいち分からんから結局狂うのかもしれんけど。
0130デフォルトの名無しさん
2014/08/21(木) 11:25:29.99ID:Dozm2kfhhttp://openlab.jp/puppylinux/
USB、ZIPまたはハードディスクに簡単にインストールできる事。
CD(あるいはDVD)から起動しても、CDドライブは他の目的のために使える事。
CD(あるいはDVD)から起動して、CDにすべて保存できる事。
USBフラッシュドライブから起動しても、最小の書込みで寿命を伸ばせる事。
リナックス初心者にも、とてもやさしい事。
一旦起動すると、非常に早い事。
日常必要なすべてのアプリケーションを持っている事。
安定している事。簡単である事。
古いパソコンに新しい命を吹き込む事。
ディスクレスの薄いステーション用に全てRAMへロードして実行できる事。
日本語版はエクストラドライバや日本語環境を追加しますとサイズはちょっと大きくなります。
バージョン4.3.1JPで 119MB
0131デフォルトの名無しさん
2014/08/21(木) 17:28:13.11ID:JsL1zQzE0132デフォルトの名無しさん
2014/08/21(木) 19:01:14.06ID:SvY3ZvfGGetTickCount()使うのはタイマー系で一番コスト低いからで一秒以下の精度でチェックするときのみだ
50日超えるタイムスパン比較するならtime()で十分
何でもかんでも同じAPI使うんじゃなくてなぜそのAPI使うか考えろよ
0133デフォルトの名無しさん
2014/08/21(木) 19:06:28.66ID:JsL1zQzE0134デフォルトの名無しさん
2014/08/21(木) 19:07:33.65ID:s1HtGAdi0135デフォルトの名無しさん
2014/08/21(木) 21:18:35.59ID:wia61aOo0136デフォルトの名無しさん
2014/08/22(金) 00:06:21.76ID:M3NxvgHB(GetTickCount使うなら)そんなに放置するなよって話って>>129で書いてあるじゃない。
0137デフォルトの名無しさん
2014/08/22(金) 00:27:33.34ID:h4d7Hbqi0138デフォルトの名無しさん
2014/08/22(金) 00:28:26.20ID:h4d7Hbqi0139デフォルトの名無しさん
2014/08/22(金) 03:04:11.98ID:kIg4HjrR0140デフォルトの名無しさん
2014/08/22(金) 07:47:43.59ID:XI3TfjPF例外捕捉って Win32API でどうやるんだっけ?
0141デフォルトの名無しさん
2014/08/22(金) 09:02:39.83ID:QbrmR5YTコンパイラがチェック用のコードを埋め込めば別だろうけど。
0142デフォルトの名無しさん
2014/08/22(金) 09:57:21.03ID:QbrmR5YTVisual C++的な対応だとこんな感じ?
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/seh.html
.NETならSystem.OverflowExceptionだから楽なんだけどね。
0143デフォルトの名無しさん
2014/08/22(金) 10:37:59.45ID:HOJj7S1Shttp://eternalwindows.jp/ole/oledrag/oledrag03.html
一週間ほど試行錯誤の結果ようやっと解決
調べても、ほとんど情報が無いのにはまいった。
0144デフォルトの名無しさん
2014/08/22(金) 11:22:48.65ID:kIg4HjrR0145デフォルトの名無しさん
2014/08/22(金) 12:06:30.86ID:8ZV1VixV0146デフォルトの名無しさん
2014/08/22(金) 14:13:55.01ID:jbIfEIhq言語仕様超えてクラスオブジェクトを扱うための仕組み
.Net/CLIもそれを使うことができるから可能性が広がってんだよ
0147デフォルトの名無しさん
2014/08/22(金) 14:42:07.77ID:8ZV1VixV言ったとおりだろう?
0148デフォルトの名無しさん
2014/08/22(金) 16:29:16.86ID:kIg4HjrR0149デフォルトの名無しさん
2014/08/22(金) 16:40:46.28ID:02f6Y5eW0150デフォルトの名無しさん
2014/08/22(金) 18:29:47.27ID:M3NxvgHB0151デフォルトの名無しさん
2014/08/22(金) 18:58:58.69ID:BQk96NY7http://peace.2ch.net/test/read.cgi/tech/1168427595/
0152デフォルトの名無しさん
2014/08/22(金) 20:57:04.38ID:t661hIAd15ピンのばっかりだ
0153デフォルトの名無しさん
2014/08/22(金) 23:07:40.90ID:U/01L7g80154デフォルトの名無しさん
2014/08/23(土) 17:55:05.03ID:3EDi1e2FMSDNのGetStockObjectのページには
日本語版:DeleteObject 関数を呼び出してストックオブジェクトを削除する必要はありません(削除しても問題はありません)。
英語版 :It is not necessary (but it is not harmful) to delete stock objects by calling DeleteObject.
とあるけど、色々なウェブサイトには削除してはいけないと書いてある
普通ならMSDNを信用すべきだと思うけど削除してはいけないと書いてある所が多くて不安になってきた
0155デフォルトの名無しさん
2014/08/23(土) 18:14:28.17ID:rS5gMmQG0156デフォルトの名無しさん
2014/08/23(土) 18:30:09.16ID:q/+BPTqG0157デフォルトの名無しさん
2014/08/23(土) 18:34:29.46ID:q/+BPTqG0158デフォルトの名無しさん
2014/08/23(土) 18:43:43.09ID:ZWPa2xFIする必要のないことをするのするのもおかしい
したらいけないもんだと覚えておいても問題ない
0159デフォルトの名無しさん
2014/08/23(土) 19:07:21.62ID:jh8yRGUv> 色々なウェブサイトには削除してはいけないと書いてある
これに対して疑問を抱くべき
なぜ削除してはいけないのか、と
0160デフォルトの名無しさん
2014/08/23(土) 19:08:35.67ID:3EDi1e2FストックオブジェクトなのかCreateで作ったものなのか分からないGDIオブジェクトの後始末をしたい時に
DeleteObjectにそのまま入れるべきか、それともまずストックオブジェクトか否かを判別すべきかというケースだった
大人しくストックオブジェクトの代わりに同じ内容のGDIオブジェクトをCreateすることにして一律でDeleteObjectすることにするよ
0161デフォルトの名無しさん
2014/08/23(土) 19:28:21.46ID:ZWPa2xFIGDIオブジェクト扱う基底クラスではDeleteObject、Stockオブジェクトを扱うサブクラスではNOPにすれば
それかStockオブジェクトはクリーンアップ用リストに登録しないとか
0162デフォルトの名無しさん
2014/08/23(土) 19:39:58.43ID:q/+BPTqG0163デフォルトの名無しさん
2014/08/23(土) 21:18:34.30ID:ATeOZN340164デフォルトの名無しさん
2014/08/23(土) 22:17:21.50ID:JJDGD5m10165デフォルトの名無しさん
2014/08/23(土) 23:12:03.95ID:q/+BPTqG未だに古臭いコードでオナニーなんて
0166デフォルトの名無しさん
2014/08/24(日) 07:48:58.53ID:js+i7Duschar cmd[] = "netsh routing ip add filter \"ローカル エリア接続 2\" input 192.168.2.2 255.255.255.255 192.168.1.1 255.255.255.255 tcp 0 22";
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdOutput = hOutputWrite;
si.hStdInput = hInputRead;
si.hStdError = hErrorWrite;
CreateProcess(NULL, cmd, NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
エラー処理は省略しましたが実際のプログラムでは書いています
RRASはインストールしてサービスも起動しています
コマンドプロンプトを立ち上げて手でコマンド打ったときは正常動作
(OKと表示される)しています
XPや2003serverのときは正常動作していたのですが
2008serverだと実行結果が
次のコマンドは見つかりませんでした: routing ip add filter "ローカル エリア接続 2" input 192.168.2.2 255.255.255.255 192.168.1.1 255.255.255.255 tcp 0 22
と netsh を除いた残りの文字列だけが表示されます
cmd 文字列の先頭に
cmd /c
を付け加えても同じ結果でした
何が問題?
0167デフォルトの名無しさん
2014/08/24(日) 08:03:18.61ID:js+i7Dushttp://stackoverflow.com/questions/8166840/got-the-system-cannot-find-the-file-specified-when-i-run-netsh-from-createproc
ここ見て思ったのは
Win32APIのCreateProcessからnetshを呼ぶと32bit版のnetshが呼ばれて
コマンドプロンプトから手打ちだと64bit版のnetshが呼ばれてて
RRASがインストールされたのは64bit版の方だけとかいうオチかな
CreateProcessで64bit版のnetshを呼ぶ方向で試してみます
0168デフォルトの名無しさん
2014/08/24(日) 08:16:49.57ID:js+i7Dusで置き換えてみたけど結果変わらんな
なんなのこれ
0169デフォルトの名無しさん
2014/08/24(日) 08:24:00.60ID:js+i7DusThere are lots of parameters to CreateProcess.
Unless you actually make the effort to show us
what they are we simply have to guess at what you have done wrong.
Why are you passing an environment? How did you initialise si?
What is WindRoot? What is CommandLine?
By far the best would be to supply a complete console app
in the form of a single .dpr file that reproduced your problem.
Once you do that I guarantee we'll be able to fix your problem in double quick time. ?
David Heffernan Nov 18 '11 at 11:07
ああこういうことか
精進が足りんな
もちょっと勉強してくる
0170デフォルトの名無しさん
2014/08/24(日) 08:24:58.36ID:ZJV6C+Ys0171デフォルトの名無しさん
2014/08/24(日) 08:53:40.85ID:js+i7Dusこれでも同じエラーだった
たぶん>>170
0172デフォルトの名無しさん
2014/08/24(日) 09:01:07.65ID:js+i7DusCreateProcessで作ったプロセスが勝手に違うアカウントで実行されてる?
0173デフォルトの名無しさん
2014/08/24(日) 09:06:50.34ID:ZJV6C+YsCreateProcessでは昇格は無理
0174デフォルトの名無しさん
2014/08/24(日) 09:44:40.66ID:js+i7DusShellExecute(NULL, "open", "C:\\Windows\\SysWOW64\\netsh.exe", "routing ip (略)", "C:\\Temp", SW_SHOWNORMAL);
戻り値は2Aで32(10進)よりも大きい値なので成功していると思われるのですが
フィルタは有効になっていませんでしたので結局うまくいっていません
0175デフォルトの名無しさん
2014/08/24(日) 09:57:20.71ID:js+i7Dusしばらく休みます
おやすみなさい
0176デフォルトの名無しさん
2014/08/24(日) 10:13:54.69ID:ZJV6C+Ys昇格の場合openじゃなくてrunas
0177デフォルトの名無しさん
2014/08/24(日) 11:28:21.53ID:js+i7Dusnetsh add helper ipmontr.dll
のコマンドを試してみたら
次のヘルパー DLL を読み込めません: IPMONTR.DLL
というエラーが表示された
CreateProcess で起動するとパスが通ってないとかそんなんだろうか?
2003 でうまくいってたのになぁ
UAC かなぁ
>>176
ありがとう
これから試します
0178デフォルトの名無しさん
2014/08/24(日) 11:53:39.63ID:js+i7Dus戻り値は2A
結果はフィルタ設定追加されず
0179デフォルトの名無しさん
2014/08/24(日) 12:19:12.18ID:gxl9aRfRつーかC:\Windows\SysWOW64\*.exeって32bitバイナリだけどいいの?
0180デフォルトの名無しさん
2014/08/24(日) 12:28:52.67ID:ZJV6C+Yscmd[] = "略";
の所を
cmd[256] = "略"
にしてCreateProcessしたらどうなる?
後はビルドエラー出ると思うけど一応
CreateProcessAが呼ばれてるのかCreateProcessWが呼ばれてるのか確認
0181デフォルトの名無しさん
2014/08/24(日) 12:41:36.11ID:EYMdVqe7片対数グラフで直線だから既に指数関数的増加だった
2014年に、西アフリカでアウトブレイクした潜伏期間延長型エボラの死者は、2014年8月半ばで1000人。←今ココ
2014年12月上旬で1万人。
この時点で世界規模で空路シャットダウン開始、世界経済大混乱
2015年5月で10万人。
2015年9月で100万人。
この時点で、第二次世界大恐慌発生
2015年大晦日で1000万人。
ちなみに
http://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%81%AE%E8%A5%BF%E3%82%A2%E3%83%95%E3%83%AA%E3%82%AB%E3%82%A8%E3%83%9C%E3%83%A9%E5%A4%A7%E6%B5%81%E8%A1%8C
:カナダ保健省のサイトでは体内に数個のエボラウィルスエアロゾルが侵入しただけでも発症するとしている
:ハマダラカが、吸血したての人の新鮮血を媒介しているという学説が浮上している
エボラ出血熱は蚊やアブに刺されただけで感染する。
:「この地域には内戦、政府による搾取、テロが長い間続いており、それによって生まれた恐怖、貧困、猜疑心などがある。エボラは耐え難い騒音に付け加えられた一つのざわめきに過ぎない」
現地では
や る 気 は 皆 無
0182デフォルトの名無しさん
2014/08/24(日) 12:44:17.38ID:js+i7Dusした結果と手動でコマンドラインでsetしたときの結果が違う・・・
前者はPROCESSOR_ARCHITECTURE=x86とか
ProgramFiles=C:\Program Files (x86)
後者はPROCESSOR_ARCHITECTURE=AMD64とか
ProgramFiles=C:\Program Files
なのでUACの問題というより64bitの環境のnetshが呼べてない気がします
0183デフォルトの名無しさん
2014/08/24(日) 13:31:03.00ID:js+i7DusNetSh
と
WOW6432Node\Netsh
があって
前者にはipmontr.dllが入ってて
後者には入ってない
ここに無理やりipmontr.dllのデータを作れば動くかも知れないけど
やってもいいのかなぁ
0184デフォルトの名無しさん
2014/08/24(日) 13:33:06.03ID:js+i7Dus前者が
HKLM\Software\Microsoft\NetSh
後者が
HKLM\Software\WOW6432Node\Microsoft\NetSh
です
0185デフォルトの名無しさん
2014/08/24(日) 13:51:05.29ID:js+i7Dushttp://www.kmonos.net/lib/bww.ja.html
こんなのが出てきたけどこれを入れればいいのかな
0186デフォルトの名無しさん
2014/08/24(日) 14:13:26.08ID:js+i7Dusどうしても32bitの方が呼ばれてしまう><
0187デフォルトの名無しさん
2014/08/24(日) 14:16:55.90ID:ZJV6C+Ys指定してるcmdのpathが32bit
0188デフォルトの名無しさん
2014/08/24(日) 14:43:19.45ID:pFdg0X5d0189デフォルトの名無しさん
2014/08/24(日) 14:43:21.86ID:jlCuRdJh0190デフォルトの名無しさん
2014/08/24(日) 14:52:17.09ID:nsbGoTTZ0191デフォルトの名無しさん
2014/08/24(日) 14:56:38.20ID:jlCuRdJh時代はC#
0192デフォルトの名無しさん
2014/08/24(日) 15:25:54.96ID:jFkpkhSs0193デフォルトの名無しさん
2014/08/24(日) 15:36:21.55ID:gxl9aRfR0194デフォルトの名無しさん
2014/08/24(日) 15:37:56.27ID:jlCuRdJh0195デフォルトの名無しさん
2014/08/24(日) 15:41:21.99ID:jFkpkhSsMSDNを見たって項目分けられているわけだし
0196デフォルトの名無しさん
2014/08/24(日) 16:31:39.91ID:qBw4gxKhプログラムからGetUserNameを使うと、管理者のユーザー名が取れるのですが、
実行した標準ユーザーの名前を取りたいと思っています。
LsaGetLogonSessionDataとかも使ってみたのですが、
やはり管理者のユーザー名しか取れません。
なにか別の方法があるでしょうか?
0197デフォルトの名無しさん
2014/08/24(日) 19:09:15.36ID:jlCuRdJh0198デフォルトの名無しさん
2014/08/24(日) 19:18:43.96ID:jlCuRdJh繰り返すwin32apiは時代遅れ
0199デフォルトの名無しさん
2014/08/24(日) 19:20:27.03ID:js+i7Dusありがとうございます
それで上手く行きました
結局 ShellExecute もアカウントの昇格も関係なくて CreateProcess でも上手く行ったのですが
とりあえず
*cmd = "C:\\Windows\\Sysnative\\cmd.exe /c C:\\Windows\\Sysnative\\netsh.exe routing ip (略)";
としたところ
前半の Sysnative\cmd.exe の方で 64bit 化された状態で
Sysnative\netsh.exe を参照することになるので
「指定したパスが見つかりません」と出て失敗しました
なので
*cmd = "C:\\Windows\\Sysnative\\cmd.exe /c C:\\Windows\\System32\\netsh.exe routing ip (略)";
とするか
単に
*cmd = "C:\\Windows\\Sysnative\\netsh.exe routing ip (略)";
とするのが良いようです
以上ご報告です
みんなオラに力を分けてくれてありがとう
0200デフォルトの名無しさん
2014/08/24(日) 19:43:42.15ID:js+i7Dusexplorerに問い合わせると良いらしいです
http://eternalwindows.jp/security/securitycontext/securitycontext09.html
0201デフォルトの名無しさん
2014/08/24(日) 20:03:45.13ID:jlCuRdJh0202デフォルトの名無しさん
2014/08/24(日) 20:58:52.96ID:fKVcBBaCお前もおっさんだろうに。
0203デフォルトの名無しさん
2014/08/24(日) 21:07:43.49ID:jWy1bnP0やめといた方がいいと思うな
0204デフォルトの名無しさん
2014/08/24(日) 21:28:31.05ID:jlCuRdJh0205デフォルトの名無しさん
2014/08/24(日) 22:43:14.74ID:7trTXQ640206デフォルトの名無しさん
2014/08/25(月) 02:56:42.53ID:5aaZ0ZHFhttp://hissi.org/read.php/tech/20140824/amxDdVJkSmg.html
堂々たる第一位
0207デフォルトの名無しさん
2014/08/25(月) 07:42:02.50ID:LIV+GZ8D0208デフォルトの名無しさん
2014/08/25(月) 11:30:04.01ID:FJ9UQc5QおいQZこんなスレまで出張かよ
コテつけてなくてもバレバレなんだな^^
0209デフォルトの名無しさん
2014/08/25(月) 11:42:32.63ID:8Sw0Q1jq馬鹿なの
0210デフォルトの名無しさん
2014/08/25(月) 15:07:53.34ID:LIV+GZ8D0211デフォルトの名無しさん
2014/08/25(月) 21:27:24.51ID:ZcBnU/FEありがとうございます!
GetShellWindowとOpenProcessTokenを使ったら取れました。
0212デフォルトの名無しさん
2014/08/25(月) 22:15:31.86ID:FJ9UQc5Q0213デフォルトの名無しさん
2014/08/26(火) 11:43:25.59ID:KvwdZ1Dnウィンドウ内に1万個の部品を載せてみると、プログラムは異常な動きをします。
メモリーが破壊されデバッガで追えない状態になるのです。
ちょうど、GDIオブジェクトを1万個作った時のようになります。
思い当たる節は、次のウィンドウ・メッセージを読み取る前にInvalidateRect()を
あるいはWM_PAINTの中でSetViewport()を1万回呼ぶことですが、これはまずいのですか?
それともう一つ、GUIに一万個の部品が載ることは実際の利用状況で有り得ますか?
0214デフォルトの名無しさん
2014/08/26(火) 12:07:41.71ID:HrT/idVN0215デフォルトの名無しさん
2014/08/26(火) 13:43:23.77ID:9P+s8oWH人間に一万個の部品を認識させるUIとは?
0216デフォルトの名無しさん
2014/08/26(火) 13:43:24.78ID:hvry/qaFごみおっさんの懐古コードを希望したいんですね
0217デフォルトの名無しさん
2014/08/26(火) 13:44:13.13ID:9ST+88q4IDを赤くする日課、さぼんなよ。
0218デフォルトの名無しさん
2014/08/26(火) 13:54:04.39ID:KvwdZ1Dnたぶん、マインスイーパーとか、音楽関係のソフトとかですかね。
0219デフォルトの名無しさん
2014/08/26(火) 14:02:07.54ID:8jv5EL7T0220デフォルトの名無しさん
2014/08/26(火) 14:07:06.31ID:KvwdZ1DnソースはGitHubにあって誰でも見れるのですが、名前や連絡先が入っているので、
荒れているスレに出すのはどうしたものかって感じなんですよね。
明らかにプロの人が居るので、見てほしい気持ちはあるんですが。
それと同じ数の狂人もいるじゃないですか。
0221デフォルトの名無しさん
2014/08/26(火) 14:09:16.67ID:46MkRGQY0222デフォルトの名無しさん
2014/08/26(火) 14:13:53.19ID:KvwdZ1DnNuGetとかみんな使っていないみたいだけど、これ世界が変わるくらい良いものですよ。
CoAppが尻切れトンボにならないように、C++でもどんどん使ったらいいんじゃないかと思います。
GitHubに接続すると、プロジェクトやソリューションの共有が楽にできるんじゃないかと思います。
一人でこつこつ勉強しながらやっているので、まだ試せていないんですが。
0223デフォルトの名無しさん
2014/08/26(火) 14:18:19.05ID:m1Q2Zmzfx64とx86とでは、構造体のメンバ位置も、サイズも変わってしまうんだな・・・・
うかつだった。
0224デフォルトの名無しさん
2014/08/26(火) 14:18:53.11ID:KvwdZ1Dn2CHで質問するときは、ideoneを良く使っているんですけど、コード量が多くなりすぎちゃって
ちょっと無理です。
あんど
APIの呼び出し回数は関係なかったみたいです。
100万回呼んでも遅くなるだけで普通に処理できました。
ちょうどGDIオブジェクトの限界と数が同じくらいだったので、疑ってしまいました。
単純に、スタックの使いすぎでした。
ダイエットします。
0225デフォルトの名無しさん
2014/08/26(火) 14:28:42.42ID:hvry/qaF臭すぎ
0226デフォルトの名無しさん
2014/08/26(火) 14:31:14.27ID:hvry/qaFこれだから古い技術に固執する馬鹿は
0227デフォルトの名無しさん
2014/08/26(火) 14:45:21.45ID:9P+s8oWHたぶんってなんだよー。まあ解決したならよかったね。
一万個も部品があるなら人間も扱いきれないだろうから、GUIって言うほどの
機能を持たせずゲーム的な作り方の方がいいんじゃないかと思ってた。
0228デフォルトの名無しさん
2014/08/26(火) 14:59:46.12ID:hvry/qaF0229デフォルトの名無しさん
2014/08/26(火) 17:42:29.12ID:mLMy21sdGDIリソース足りないんじゃね?コントロール減らせ。
>>218
マインスイーパは複数のボタンコントロールじゃなくて単一のクライアント領域だったり。
0230デフォルトの名無しさん
2014/08/26(火) 18:02:23.12ID:hvry/qaF0231デフォルトの名無しさん
2014/08/26(火) 22:32:31.52ID:8iORGEbW♀
0232デフォルトの名無しさん
2014/08/26(火) 22:52:40.88ID:M/DKQ9Ao0233デフォルトの名無しさん
2014/08/26(火) 23:36:56.69ID:pwR8Qra80234デフォルトの名無しさん
2014/08/26(火) 23:44:19.23ID:AKSJinfOWin32APIの代わりって何があるん?
.NET Frameworkだけじゃ出来ることに限界があるし
新しいAPIのセットとかがあるん?Win64APIとか?
0235デフォルトの名無しさん
2014/08/27(水) 00:14:34.68ID:sWLZW0suhttp://www.atmarkit.co.jp/fdotnet/chushin/win8appdev_01/win8appdev_01_01.html
0236デフォルトの名無しさん
2014/08/27(水) 01:01:26.18ID:pYhzyHuf0237デフォルトの名無しさん
2014/08/27(水) 01:23:58.40ID:D1kHPcdG0238デフォルトの名無しさん
2014/08/27(水) 03:19:01.30ID:6l9mfgq+この板に常駐してるC#しかできないおっさんの言うことだから気にするな
この板の書き込み上位はいつもこのおっさん
0239デフォルトの名無しさん
2014/08/27(水) 04:54:40.32ID:fBBDR2vO.NETに移行する意味がほとんど無い
元々WinAPIやC++,C#ですら使用頻度低くて
デスクトップアプリも作る予定無いのに
CUIベースなら.NETよりもLL使ったほうが全然良い
そうなるとCUIベースのプログラムで、かつOS依存のAPI呼び出しが必要な時にLLから呼び出すだけ
WinAPIか.NETっつったら殆どWinAPI使うけど、そもそもどちらも俺にとっては使用頻度が低い
0240デフォルトの名無しさん
2014/08/27(水) 06:38:59.38ID:coh19+fw0241デフォルトの名無しさん
2014/08/27(水) 13:37:35.72ID:pYhzyHufわざわざwin32apiで叩いてきんもいプログラム作るなよ
C#で効率的なプログラミングを
0242デフォルトの名無しさん
2014/08/27(水) 18:01:55.16ID:WVBb8eJHhttp://blogs.msdn.com/b/windowssdk/archive/2009/06/12/windows-api-code-pack-for-microsoft-net-framework.aspx
これもう無いのか
0243デフォルトの名無しさん
2014/08/27(水) 18:54:57.76ID:9wQXWUSlパッケージマネージャに縁のない人達
0244デフォルトの名無しさん
2014/08/27(水) 20:29:09.88ID:pYhzyHuf0245デフォルトの名無しさん
2014/08/27(水) 21:58:27.07ID:RqytrRPt0246デフォルトの名無しさん
2014/08/28(木) 15:04:34.95ID:jOgRJ1W30247デフォルトの名無しさん
2014/08/28(木) 15:06:15.54ID:0SG1ihpu0248デフォルトの名無しさん
2014/08/29(金) 07:42:42.57ID:ZQUCiV5Vウイルス入ってる心配無いの?
0249デフォルトの名無しさん
2014/08/29(金) 08:13:31.41ID:n0j14V440250デフォルトの名無しさん
2014/08/29(金) 13:24:55.53ID:yVhE6NGy0251デフォルトの名無しさん
2014/08/29(金) 15:20:35.88ID:78rTFaRl0252デフォルトの名無しさん
2014/08/29(金) 19:52:18.10ID:TWxk4Cnt0253デフォルトの名無しさん
2014/08/29(金) 19:55:20.86ID:CrnPa/0p0254デフォルトの名無しさん
2014/08/29(金) 20:25:45.38ID:bEtkhrBk0255デフォルトの名無しさん
2014/08/29(金) 20:26:38.04ID:dUbmOOxHSQL
API ← New !
0256デフォルトの名無しさん
2014/08/29(金) 20:35:31.82ID:h1TtGc0O0257デフォルトの名無しさん
2014/08/31(日) 16:00:10.57ID:ji1eVNbyマルチキャストの送信側のプログラミングで、
送信ネットワークインターフェースを明示するために、
setsockoptでIP_MULTICAST_IFをinet_addr( "127.0.0.1" )(ローカルホスト)に設定したのですが、
これだと受信側のプログラム(同じPC内)で受信できませんでした。
試に、IP_MULTICAST_IFを0(デフォルトインターフェース?)にしたり、
IP_MULTICAST_IFの設定自体を省略(この場合もデフォルトインターフェース?)したら
受信できるようになりました。
なぜローカルホスト指定ではうまくいかないんでしょうか??
0258デフォルトの名無しさん
2014/08/31(日) 16:05:57.90ID:5rh0udnx0259デフォルトの名無しさん
2014/08/31(日) 18:58:29.74ID:Y2iyz0hZおっさんの古臭いコードは何の役にも立たない
0260デフォルトの名無しさん
2014/08/31(日) 20:00:39.57ID:oilNB/q8日曜日なのにおせーよ
なにやってんだよ
もしかして出勤かよダセーな奴隷かよ
0261デフォルトの名無しさん
2014/08/31(日) 20:23:28.67ID:w1I465vc0262デフォルトの名無しさん
2014/08/31(日) 21:32:02.07ID:UeJAzMTqぶっちゃけ送信できていれば、setsockoptのIP_MULTICAST_LOOPで
明示的に指定しない限り、勝手にループバックされてくる筈なんだけどなあ。
Win8.1/送信側C++/受信側C#で試しに書いてみたけど、
IP_MULTICAST_IFを設定しても普通に受信できてたし。
何かの要因で、sendto自体がエラーになったりしているとかない?
0263デフォルトの名無しさん
2014/08/31(日) 21:51:39.39ID:Y2iyz0hZ0264デフォルトの名無しさん
2014/08/31(日) 22:15:10.69ID:qzUDrRrO0265デフォルトの名無しさん
2014/09/03(水) 12:52:08.39ID:MAtMcWe1BACKWARD した後は
FORWARD しないといけないんだった
0266デフォルトの名無しさん
2014/09/03(水) 14:16:27.71ID:0jmEHP6P0267デフォルトの名無しさん
2014/09/03(水) 19:27:46.85ID:7tHdUujr2)マス目にあらかじめ入っている(数字)は太線で囲まれたブロックに入る数字の合計を表しています
3)太線で囲まれたブロックの中には同じ数字が入ることもあります
┏━━┳━━┳━━┳━━┯━━┳━━┓
┃(3) ┃(4) ┃(13)┃(5) │ ┃(8) ┃
┠──┣━━┫──┣━━┳━━┫──┨
┃ ┃(7) ┃ ┃(1) ┃(7) ┃ ┃
┣━━┫──┃──┣━━┫──┣━━┫
┃(11)┃ ┃ ┃(7) ┃ ┃(6) ┃
┠──┣━━┻━━┫──┣━━┻━━┫
┃ ┃(6) │ ┃ ┃(6) │ ┃
┣━━┻━━┳━━┻━━╋━━┳━━┫
┃(9) │ ┃(6) │ ┃(4) ┃(3) ┃
┣━━┳━━┻━━┳━━┻━━┫──┨
┃(4) ┃(5) │ ┃(11)│ ┃ ┃
┗━━┻━━┷━━┻━━┷━━┻━━┛
これを解くプログラムを Win32API でおながいします
(たぶんずれるので等幅フォントのエディタにコピペで見てください)
0268デフォルトの名無しさん
2014/09/03(水) 19:29:58.29ID:qW20Ksi1ぐちゃぐちゃだ,やりなおせ
0269デフォルトの名無しさん
2014/09/03(水) 19:31:17.92ID:0ir9kNKt純C/C++ではダメか。
C/C++は使ってはいけないってことか?
0270デフォルトの名無しさん
2014/09/03(水) 19:40:12.28ID:7tHdUujr人間が数字をマスに置くと
その時点での太枠内の合計が(数字)と合ってれば
その太枠内のマスの背景が全部グリーンになるとかいう感じで
思考はコンピュタじゃなくても良いです
0271デフォルトの名無しさん
2014/09/03(水) 19:43:48.66ID:7tHdUujr背景グリーンだったものを赤にするとか
全部クリア出来たら完了メッセージとかも要る気がします
後出しすみませんでした
0272デフォルトの名無しさん
2014/09/03(水) 19:44:29.71ID:S4BzwfjD0273デフォルトの名無しさん
2014/09/03(水) 19:44:34.16ID:0ir9kNKtwinapiを使わなくても。
C#とかQTとかクロスプラットフォームでも。
0274デフォルトの名無しさん
2014/09/03(水) 19:46:15.06ID:7tHdUujrある懸賞付きアンケートの回答はがきの片面に書かれてたパズルなのですが
パズルの正解不正解と懸賞の当選は関係ありませんと明記されていました
0275デフォルトの名無しさん
2014/09/03(水) 19:48:19.52ID:7tHdUujr言われてみればそうですね
エクセルが一番楽かも
0276デフォルトの名無しさん
2014/09/03(水) 19:50:10.11ID:0jmEHP6P0277デフォルトの名無しさん
2014/09/03(水) 20:32:20.87ID:Tp7pgW4B普通の9x9数独ならすぐできるが
細線太線の位置が可変ならフラグ処理と判定が面倒
0278デフォルトの名無しさん
2014/09/04(木) 22:33:05.12ID:gf6bSdzV0279デフォルトの名無しさん
2014/09/05(金) 15:23:08.69ID:JjYqHkIRやってみたら普通に簡単だった
コツ掴めばスラスラいける
なんでも人を頼りにしたら
自分で考える力が無くなるぞ
0280デフォルトの名無しさん
2014/09/05(金) 15:57:17.04ID:whpFSDGE面倒くさすぎるだろと思ってたんだけど、違ったのか。
0281デフォルトの名無しさん
2014/09/05(金) 16:32:30.53ID:p4jkMY4H0282デフォルトの名無しさん
2014/09/07(日) 02:46:05.81ID:qGzfz7wChttp://daily.2ch.net/test/read.cgi/newsplus/1410017587/
0283デフォルトの名無しさん
2014/09/08(月) 00:13:43.92ID:7YftTWfN0284デフォルトの名無しさん
2014/09/08(月) 05:49:35.83ID:K14WNnARおれバッカー
0285デフォルトの名無しさん
2014/09/08(月) 06:12:58.56ID:f5Blo0Jc0286デフォルトの名無しさん
2014/09/08(月) 12:40:47.95ID:ERkLeGt80287デフォルトの名無しさん
2014/09/08(月) 17:43:54.35ID:PbRMq4gS0288デフォルトの名無しさん
2014/09/08(月) 20:25:26.35ID:tIHnYase0289デフォルトの名無しさん
2014/09/08(月) 20:53:14.31ID:P9UWnfN6http://image.rakuten.co.jp/auc-amecos/cabinet/cyubacamasks2.jpg
0290デフォルトの名無しさん
2014/09/09(火) 22:55:50.01ID:s44xo5mTWindowsイベントログにある「障害アドレス」と、SetUnhandledExceptionFilter を使って得られる
EXCEPTION_POINTERS *e の e->ExceptionRecord->ExceptionAddress のアドレスが激しく違うんですけど、
それぞれどういうアドレスなんです?
テスト用に仕込んだ不正落ちコードは変更せずに、
・SetUnhandledExceptionFilter を使わずに普通に不正落ちさせたとき(エラーを捕まえちゃうとイベントログに残らないから)
と、
・SetUnhandledExceptionFilter でエラー捕まえてExceptionAddressの値を見たとき
のアドレスが違いすぎるんです。SetUnhandledExceptionFilterの呼び出し有無とか、それによって呼び出されるコールバック関数の有無があるから多少アドレスが違うのはわかるんだけど...
イベントログに残っている「障害アドレス」は、手元にある map ファイルをもとにして例外発生箇所が容易に分かったけど、
ExceptionAddress の値はベースアドレス 0x400000 に対して一桁二桁大きい値なんでmapに対応関数が載ってないんですよね。どちらの方法でも同じアドレスが取得で生きると思ってたから、意外でした。
0291257
2014/09/09(火) 23:02:25.46ID:03IzUn3Dレス遅くなってすみません。
そちらで検証までして下さって、ありがとうございます。
sendtoの戻り値を調べてみましたが、IP_MULTICAST_IFの設定有無に関わらずエラーなし
(SOCKET_ERRORが返ってこない)でした。
でも、IP_MULTICAST_IFを127.0.0.1に設定すると受信側がパケットを受け取れなくなります。
まぁ、設定しなければ受信できるので、実用上は問題ありませんが、
明示的にネットワークインターフェースを指定したほうが作法としては良いとのことだったので、気になりました。
0292デフォルトの名無しさん
2014/09/10(水) 01:16:04.99ID:k0fy1qosAPIでオナニーしても無意味な時代なのにね
0293デフォルトの名無しさん
2014/09/10(水) 02:15:16.38ID:9OgYyIpI0294デフォルトの名無しさん
2014/09/10(水) 09:16:03.19ID:4+0DuQ010295デフォルトの名無しさん
2014/09/10(水) 12:39:09.71ID:k0fy1qos0296デフォルトの名無しさん
2014/09/10(水) 22:46:24.17ID:VjIDivsVhttps://github.com/Microsoft/Win2D
0297デフォルトの名無しさん
2014/09/11(木) 02:21:30.28ID:sP1ALdyHC#でさくっとコーディングしなよw
0298デフォルトの名無しさん
2014/09/11(木) 02:36:34.11ID:K7L/xZ5+0299デフォルトの名無しさん
2014/09/11(木) 03:36:07.10ID:mCCGiMZY0300デフォルトの名無しさん
2014/09/11(木) 05:18:06.29ID:p9H2bXgohttp://msdn.microsoft.com/ja-jp/library/aa302340.aspx
mouse_event→System.Windows.Forms.MouseEventArgs、しかし間違ってるとしか…
keybd_event→記載なし
C#からWin32API呼ぶのが一番簡単かもね。
0301デフォルトの名無しさん
2014/09/11(木) 07:40:27.92ID:BpRRpzGv0302デフォルトの名無しさん
2014/09/11(木) 13:49:04.59ID:lq0VxCeo0303デフォルトの名無しさん
2014/09/11(木) 20:03:03.26ID:sP1ALdyH0304デフォルトの名無しさん
2014/09/11(木) 20:31:02.53ID:mCCGiMZY0305デフォルトの名無しさん
2014/09/12(金) 01:57:45.34ID:JOBfL2F2実生活でも「2ch悪口シンドローム」が表に出て不満が鬱積し、性格も人生もどんどんすさむぞ。
0306デフォルトの名無しさん
2014/09/12(金) 23:12:42.68ID:4QOwGlS9誰に言ってんのw?
0307デフォルトの名無しさん
2014/09/12(金) 23:29:59.02ID:lNPeIVql0308デフォルトの名無しさん
2014/09/13(土) 03:33:11.86ID:JgB/3vdCMSDNより簡単でしょー
ほんと煽りのレベルがクソ以下続きなんで、もっと努力して頂戴。
0309デフォルトの名無しさん
2014/09/13(土) 13:14:09.04ID:NKTlhTvYツリー中の項目をダブルクリックしたことを示すメッセージはどこで受け取ればイイのでしょうか?
親ダイアログのプロシージャでWM_LBUTTONDBLCLKを待ちうけましたが、
ダイアログの何もないところのダブルクリックは拾ったものの、
TreeViewControl中のダブルクリックは拾いませんでした。
0310デフォルトの名無しさん
2014/09/13(土) 13:17:37.86ID:EgQD9V/2http://www.nitoyon.com/vc/reference/gui/treeview.htm
0312デフォルトの名無しさん
2014/09/14(日) 10:26:20.98ID:s0obBkVhそんなゴム付けてやるみたいな...
0313デフォルトの名無しさん
2014/09/14(日) 10:27:53.12ID:gO6moQCP0314デフォルトの名無しさん
2014/09/15(月) 01:38:32.03ID:PuXt1P2q0315デフォルトの名無しさん
2014/09/15(月) 09:57:59.68ID:xix8OsY40316デフォルトの名無しさん
2014/09/15(月) 09:59:53.28ID:e89ZEgqyあんな醜悪なキモ言語持ち出すとかセンスねえな
おめえの顔もよほどキモイんだろう
0317デフォルトの名無しさん
2014/09/15(月) 16:53:54.45ID:8laGfvQD人によって言うことバラバラだな
宗教戦争は他所でやれ
0318デフォルトの名無しさん
2014/09/15(月) 17:28:06.82ID:FKFqjqidサーバーサイドのCGIと常駐プロセス間で、数10Kb程度を双方向でやり取りするんだけどさ。
Windowが必要なWM_COPYDATAは使えないし、名前つきパイプは何か色々面倒な感じだしで、
同期オブジェクト使ってメモリマップトファイルでするのがある意味一番簡単なのかな?
0319デフォルトの名無しさん
2014/09/15(月) 17:31:25.47ID:MGTym6640320デフォルトの名無しさん
2014/09/15(月) 17:33:38.08ID:x1p5pPK50321デフォルトの名無しさん
2014/09/15(月) 17:46:35.52ID:xix8OsY464<ー>32も同じ呼び出しでいけるし、IPCにパイプ、ソケット使おうがコード変えずに切り替えられる
0322デフォルトの名無しさん
2014/09/15(月) 18:03:56.34ID:FKFqjqid調べてみます。
idlも10年前ですが、、経験有るのでたぶん分かると思います。
0323デフォルトの名無しさん
2014/09/15(月) 19:29:41.68ID:j8xvklWY0324デフォルトの名無しさん
2014/09/16(火) 06:59:08.23ID:fwBv28w10325デフォルトの名無しさん
2014/09/16(火) 07:28:13.82ID:fwBv28w10326デフォルトの名無しさん
2014/09/16(火) 17:36:16.63ID:ZvKCu1Jr0327デフォルトの名無しさん
2014/09/16(火) 17:37:59.00ID:xCICRn640328デフォルトの名無しさん
2014/09/16(火) 17:45:10.30ID:fwBv28w1min、maxみたいに抑制する方法が有ればいいのに。
undefするしかないみたい。
0329デフォルトの名無しさん
2014/09/16(火) 17:56:55.79ID:ZvKCu1Jr0330デフォルトの名無しさん
2014/09/16(火) 18:03:10.46ID:fwBv28w10331デフォルトの名無しさん
2014/09/16(火) 20:05:20.78ID:zuELja3fWin->Macなのか
0332デフォルトの名無しさん
2014/09/17(水) 04:31:47.17ID:x9mPq2Oh有効になるんですよ。
それでsmallが識別子に使えないんです。
min、maxも同様ですが、こちらはstd::min、std::maxとかぶるので抑制マクロが有る。
小文字のマクロはやめたほうが良いんじゃないかって話です。
なんでtypedefにしないんですか。
min、maxは仕方ないにしてもsmallなんてtypedefで良いじゃないですか。
ということを2chを通してMicrosoftの偉い人に訴えているわけです。
0333デフォルトの名無しさん
2014/09/17(水) 04:34:34.24ID:WEhe6VRz0334デフォルトの名無しさん
2014/09/17(水) 04:45:08.52ID:x9mPq2Oh0335デフォルトの名無しさん
2014/09/17(水) 04:48:54.76ID:0GY9a1ZF0336デフォルトの名無しさん
2014/09/17(水) 10:20:06.90ID:epONY4U2本当にめんどくさいやつだな
0337デフォルトの名無しさん
2014/09/17(水) 14:09:51.63ID:or6PO8CMうちのパソコンのHDDが一つづつ壊れていく・・・
0338デフォルトの名無しさん
2014/09/17(水) 14:20:57.64ID:x9mPq2Ohめんどくさくありません。
システム標準のフォントサイズを知る方法を教えてください。
0339デフォルトの名無しさん
2014/09/17(水) 15:07:33.13ID:W6ysY4L20340デフォルトの名無しさん
2014/09/17(水) 15:23:22.62ID:Sobgjc4ehttp://azumaya.s101.xrea.com/wiki/index.php?%B3%D0%BD%F1%2FWin32%20API%2F%A5%B7%A5%B9%A5%C6%A5%E0%A5%D5%A5%A9%A5%F3%A5%C8%A4%F2%BC%E8%C6%C0
0341デフォルトの名無しさん
2014/09/17(水) 15:34:37.64ID:x9mPq2Ohどうもです。
0342デフォルトの名無しさん
2014/09/17(水) 19:26:29.57ID:YTtw5Lif0343デフォルトの名無しさん
2014/09/17(水) 19:40:38.52ID:x9mPq2Ohどこで定義するか困るですね。
smallを使う前に定義しても、その前にWindows.hを読まれると意味ないから。
2chには右翼が多いと聞いたんですが、クレクレしてもらえませんかね?
街宣車横付けしてsmallてなんやねん!?みたいな。
0344デフォルトの名無しさん
2014/09/17(水) 20:14:48.28ID:IO0Y2GXI0345デフォルトの名無しさん
2014/09/17(水) 23:00:05.43ID:QAlYfKL70346デフォルトの名無しさん
2014/09/18(木) 13:40:34.71ID:WjKplAK60347デフォルトの名無しさん
2014/09/18(木) 14:00:04.72ID:WD6xtm/l0348デフォルトの名無しさん
2014/09/19(金) 00:38:02.69ID:3fL0IB090349デフォルトの名無しさん
2014/09/19(金) 05:06:11.95ID:x7pAzsC30350デフォルトの名無しさん
2014/09/19(金) 05:06:53.00ID:NQv2WdNbWM_PAINTの中でCreateFont()→DeleteObject()を200回繰り返しても速度的に
まったく問題ありませんでした。
本来は予め生成したものを使いまわすのですか?
他のプラットフォームではフォントの生成に時間がかかりますが、Windowsには
GDIオブジェクトの最大数に制限が有るので悩みます。
0351デフォルトの名無しさん
2014/09/19(金) 05:16:12.14ID:UwNOujrpさすがに一度のWM_PAINT処理中での同一フォント位は使いまわしてあげようよ…
0352デフォルトの名無しさん
2014/09/19(金) 05:26:21.20ID:NQv2WdNb他のプラットフォームでは使いまわす以外の選択肢が有りません。
たとえばXでは、Exposeイベントの中でフォントを生成すると、ユーザーは
アプリケーションがフリーズしたかのような印象を受けます。
Windowsでは、まったく問題のない(まるでPENを生成する程度の)速度が
出るので、質問しています。
0353デフォルトの名無しさん
2014/09/19(金) 05:31:30.16ID:NQv2WdNbのではないか?という疑問です。
単純に速いだけで、予め生成しておくものなんですかね?
0354デフォルトの名無しさん
2014/09/19(金) 07:25:26.90ID:29l2E3/T0355デフォルトの名無しさん
2014/09/19(金) 07:55:13.37ID:tvyonBI10356デフォルトの名無しさん
2014/09/19(金) 08:01:30.13ID:8GvrxYvi0357デフォルトの名無しさん
2014/09/19(金) 08:11:10.15ID:OJCIiOtw0358デフォルトの名無しさん
2014/09/19(金) 08:22:30.54ID:lLh0m1hkkernelが無いw
0359デフォルトの名無しさん
2014/09/19(金) 11:48:09.95ID:iHgvKusj選んだフォントによって挙動が異なるという罠
あるいはフォント構築時ではなく文字描画時に負荷がかかっているという罠
0360デフォルトの名無しさん
2014/09/19(金) 11:49:31.29ID:9nFtEcDJ0361デフォルトの名無しさん
2014/09/19(金) 13:15:25.89ID:SA8sB96U0362デフォルトの名無しさん
2014/09/19(金) 17:42:11.78ID:3fL0IB09WM_CLOSEで後始末じゃないの
0363デフォルトの名無しさん
2014/09/19(金) 17:50:52.03ID:uKCerjSn0364デフォルトの名無しさん
2014/09/19(金) 17:58:06.49ID:3fL0IB09確定しなかったらbreak
WM_CLOSE
確認
no break
yes 後始末後DestroyWindow()
WM_DESTROY
PostQuitMessage(0);
0365デフォルトの名無しさん
2014/09/19(金) 18:23:22.22ID:NQv2WdNbどうもです。
>>364
WM_CLOSEはウィンドウを閉じるときに来るけど、現行のウィンドウズでウィンドウを閉じると
そのウィンドウは最小化する。
例えば、デスクトップ直下のウィンドウを閉じるとタスクバーに入る状態になる。
この状態でWM_PAINTが来るとすると、サムネイルの表示くらいかと思うけど、
そこらへんどうなんだろう。
あと、最小化状態から復元するときに、フォントを回復するのかな。
等といろいろ疑問が有るんだけど。
0366デフォルトの名無しさん
2014/09/19(金) 18:34:40.47ID:iHgvKusj0367デフォルトの名無しさん
2014/09/19(金) 18:45:13.26ID:NQv2WdNb::CloseWindow()を呼び出すと来るんじゃないですかね。
Xlibの方はちょっと絶望的ですね。
早くする方法がないかと調べてたら、すごいの見つけてしまった。
こんな環境も考慮しないといけないんだろな。
フォントサーバ方式はいろいろ欠点が目につきます。
http://pc11.2ch.net/test/read.cgi/linux/1199010247/52
> XCreateFontSetにやたら時間がかかる(2秒くらい)
0368デフォルトの名無しさん
2014/09/19(金) 19:24:24.17ID:SCZ+cOgACloseWindowは最小化だろう
0369デフォルトの名無しさん
2014/09/19(金) 19:24:41.22ID:NQv2WdNbフォントのサイズもいまいちよくわからない。
背景がグレーの部分は高さ16px、白い部分はブラウザからコピペした部分。
文字は両方とも高さ16pxを指定しているんだけど、文字の一番上から下まで数えると、
CreateFont()の方は15px、ブラウザの方は17pxある。
これはどうしとくのが良いんだろ。
CreateFont()の方は、Meryo UIを指定したのでポのマルがちょっと高いんだけど、
Meiryoに変えてもマルが下にずれただけだった。
画像作りなおすのがめんどくさいのでそのままだけど。
0370デフォルトの名無しさん
2014/09/19(金) 19:26:48.26ID:uKCerjSn0371デフォルトの名無しさん
2014/09/19(金) 19:27:46.98ID:SCZ+cOgApxじゃなくてptだろ
0373デフォルトの名無しさん
2014/09/19(金) 19:35:03.74ID:NQv2WdNbちょうどその位の差だけど。
0374デフォルトの名無しさん
2014/09/19(金) 22:11:06.80ID:NQv2WdNbこういう仕組みらしいです。
ブラウザなら先にフォントを作っておけるけど、普通のアプリだと厳しいかな。
0375デフォルトの名無しさん
2014/09/19(金) 23:09:41.07ID:SA8sB96UWM_CLOSEで必ず閉じる訳じゃないから、ユーザー確認後に破棄するという分岐が必要。
素直にWM_DESTROYの方がすっきりやろ。
0376デフォルトの名無しさん
2014/09/20(土) 00:38:51.65ID:WhUg0uHHWM_CLOSEで分岐してDestroyWindowを呼ぶんだから
DestroyWindowの直前で後始末した方がすっきりやろ
0377デフォルトの名無しさん
2014/09/20(土) 00:51:27.15ID:QUpUX8gOWM_CLOSE以外でDestroyWindow()呼びたいときはどうするの?
自身の用件が終了後、自動で閉じる窓とか、
ゲーム(閉じるボタンではなくゲーム内操作からの終了)とか。
どちらも、WM_CLOSEからの終了もまた考えられるが、別口からの終了もまた考えられるワケだ。
0378デフォルトの名無しさん
2014/09/20(土) 00:55:08.26ID:W3zl3TGCつかぬことを伺いますが、Linux板からのお客様でしょうか?
0379デフォルトの名無しさん
2014/09/20(土) 00:57:25.46ID:QUpUX8gOいいえ、全く。
0380デフォルトの名無しさん
2014/09/20(土) 00:58:58.36ID:CW5aF+wZ好きなタイミングでリソース開放してればいいさ
0381デフォルトの名無しさん
2014/09/20(土) 01:03:03.43ID:W3zl3TGCまたまたご謙遜を。
0382デフォルトの名無しさん
2014/09/20(土) 01:09:30.57ID:WhUg0uHH1箇所にまとめないのか?
0383デフォルトの名無しさん
2014/09/20(土) 01:14:15.52ID:CW5aF+wZ> The window procedure processes the WM_DESTROY message to destroy fonts and free memory.
0384デフォルトの名無しさん
2014/09/20(土) 05:05:16.60ID:QUpUX8gO纏めるに決まってんじゃん、各イベントを関数/メソッド化してんだから
WM_CREATEで呼んだ初期化と対になる解放処理をWM_DESTROYで呼ぶだけよ
とは言え、単にWM_DESTROYに書いとけば自然とそこにまとまるんだけどな
0385デフォルトの名無しさん
2014/09/20(土) 06:54:29.60ID:X7ALdnuJワイルドだろぉ〜?
0386デフォルトの名無しさん
2014/09/20(土) 06:56:54.86ID:3F14zGUE・アプリの使用時間にあわせて不安定になるアプリは使いたくない
0387デフォルトの名無しさん
2014/09/20(土) 06:58:36.60ID:W3zl3TGC>>385
Xlibなんかは、プロセス終了しても残るリソースあるんだよね。
Win32APIは全部消えるのかな。
0388デフォルトの名無しさん
2014/09/20(土) 10:09:13.03ID:UUd20y13全然別物
0389デフォルトの名無しさん
2014/09/20(土) 10:12:34.31ID:p579UTgtWM_DESTROY でリソース解放
0390デフォルトの名無しさん
2014/09/20(土) 10:29:46.45ID:zqGI0i/Q0391片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/09/20(土) 12:30:25.90ID:eXi87Jx8MZC3_WebBrowser
https://github.com/katahiromz/MZC3_WebBrowser
MZC3_TextToText
https://github.com/katahiromz/MZC3_TextToText
0392デフォルトの名無しさん
2014/09/20(土) 12:36:51.50ID:WhUg0uHH> WM_CLOSE以外でDestroyWindow()呼びたいとき
DestroyWindowが点在してるじゃねーか
それを言ったらSendMessageでWM_CLOSE発生させたらWM_CLOSEに書いといてもまとまるだろ
0393デフォルトの名無しさん
2014/09/20(土) 14:09:49.62ID:AqzYKOvA0394デフォルトの名無しさん
2014/09/20(土) 14:48:17.93ID:W3zl3TGCどっちか片方は色々めんどくさいんだから。
0395デフォルトの名無しさん
2014/09/20(土) 15:25:47.64ID:QUpUX8gOWM_DESTROY処理時点ではまだウィンドウは(画面から消えてはいるが)存在はしてる
これ以上の後処理に適した場は無いと思う
0396デフォルトの名無しさん
2014/09/20(土) 15:40:02.82ID:GbFNl7YA0397デフォルトの名無しさん
2014/09/20(土) 16:46:37.63ID:RJVjybNh本当に開放するのはWinMainの最後
0398デフォルトの名無しさん
2014/09/20(土) 17:15:10.05ID:Vt9JAeIo0399デフォルトの名無しさん
2014/09/20(土) 17:26:47.37ID:RJVjybNhアプリのメニューフォントくれ、タブフォントくれ、エディットフォントくれとやりたいから自分で割り当てたIDハッシュがありがたいんだ
0400デフォルトの名無しさん
2014/09/20(土) 17:29:36.25ID:RJVjybNhEnum追加するだけだし
0401デフォルトの名無しさん
2014/09/20(土) 19:05:31.00ID:W3zl3TGC0402デフォルトの名無しさん
2014/09/21(日) 20:42:36.34ID:ScpoFIskマルチスクリーン環境のスクリーン座標って、マイナスは普通にあるんじゃないかと。。。
実際に(-1,-1)を右クリックしたときって、lParamも(-1,-1)になるとしたら
マウスからなのか、キーボードからなのか判別できないですよね
で合ってますか?
0403デフォルトの名無しさん
2014/09/21(日) 21:08:51.15ID:mcbSp6vd0404デフォルトの名無しさん
2014/09/21(日) 21:20:03.94ID:tOx92QLW0405デフォルトの名無しさん
2014/09/21(日) 21:24:56.39ID:+YftySIr0406402
2014/09/21(日) 21:45:13.50ID:ScpoFIskいま上下2枚のマルチモニタ環境で、下がメインディスプレイです
下のWM_CONTEXTMENUはx,yとも正なのですが
上だとyがマイナスになるみたいです(1072,-60みたいな感じ)
トリプル以上で、左上のモニタだと、x,yともマイナスになるんじゃないかと思ったんですが
ありえないのかな。。。
0407デフォルトの名無しさん
2014/09/21(日) 21:53:49.86ID:tOx92QLW0408デフォルトの名無しさん
2014/09/21(日) 22:08:37.43ID:jfYGRFZDそう負荷の掛かるものじゃないので
GetCursorPosしてチェックすればいいんでないかな
0409402
2014/09/21(日) 22:12:23.60ID:ScpoFIsk実はそんなに仕様が固まっているわけでもないんですが(すんません)
ツリービューのアイテムに対するコンテキストメニューで
キーボード(-1,-1)→ 選択中アイテムを対象
マウス → 右クリック座標でヒットテスト、アイテムを選択して、それを対象
ツリービューが、右クリックしてもアイテムが選択状態にならなかった
気がするので(ほんとにそうだったかな。。。)
WM_CONTEXTMENUでTreeView_Selectしています
キーボードのときはSelectしない、マウスのときはSelectする、です
0410デフォルトの名無しさん
2014/09/21(日) 22:12:51.38ID:jfYGRFZDカーソルが-1,-1状態でキーボードからのメッセージだと判別出来ないな
0411デフォルトの名無しさん
2014/09/21(日) 22:19:48.01ID:+YftySIr0412デフォルトの名無しさん
2014/09/21(日) 23:14:21.01ID:mcbSp6vd-1,-1の場合はGetAsyncKeyStateでさらに押下キーのチェックすればどうなの。
0413デフォルトの名無しさん
2014/09/21(日) 23:18:01.69ID:jfYGRFZD俺ならとりあえずマウスフックして-1,-1の右クリを弾く
0414402
2014/09/22(月) 00:16:54.62ID:oKtXt5r/413
ありがとうございます
難しそうですが勉強になります
いまのところ簡単そうな
(1)(-1,-1)はあったとしてもマルチモニタ左上画面の右下隅
しかも1ピクセルなので無視する(キーボード入力とみなしてしまう)
(2) WM_CONTEXTよりも先に来るっぽいNM_RCLICKのときに
ヒットテストをしてアイテムを選択してしまう
WM_CONTEXTに来たら問答無用に選択アイテムのメニューを表示する
のどちらかにしてしまおうかと思ってます
0415デフォルトの名無しさん
2014/09/22(月) 01:36:11.66ID:ciPQ6+SAところで、対象ウィンドウの上に別のウィンドウが有る場合、カーソルが別のウィンドウに出ても
WM_MOUSELEAVEは飛んできません。
既存のアプリケーションでどうなるか試したところ、Google Chromeはカーソルが外に出たことを
検知していませんでした。
IEは検出して正しく動作します。
Chromiumのソースコードを見ると、まさにTrackMouseEvent()を使っていました。
IEのソースは持っていません。
IEのように動作するには何を使えば良いですか?
0416デフォルトの名無しさん
2014/09/22(月) 01:38:31.71ID:3YN9TFHL0417デフォルトの名無しさん
2014/09/22(月) 03:07:20.27ID:L3vqYQya0418デフォルトの名無しさん
2014/09/22(月) 07:43:06.03ID:pZTx2uN6おかしいと思って今試したけど。
>対象ウィンドウの上に別のウィンドウが有る場合、カーソルが別のウィンドウに出ても
>WM_MOUSELEAVEは飛んできません。
これ間違いじゃね?
飛んでくるよ。アクティブだろうが非アクティブだろうが。
0419デフォルトの名無しさん
2014/09/22(月) 08:22:21.97ID:ciPQ6+SA0420デフォルトの名無しさん
2014/09/22(月) 11:10:49.26ID:udgTuvtS自分ところのコードでもちゃんとWM_MOUSELEAVE飛んでくるよ
0421デフォルトの名無しさん
2014/09/22(月) 11:38:53.03ID:7aojYSJv0422デフォルトの名無しさん
2014/09/22(月) 11:42:37.34ID:pZTx2uN6「当該ウィンドウが他のウィンドウに完全に覆われている状態でも」
「隠されたウィンドウの領域にあたる部分からマウスカーソルが外に出たらWM_MOUSELEAVEが来るべきだ」
とか考えてるのかな?かな?
0423デフォルトの名無しさん
2014/09/22(月) 12:13:41.90ID:4rgv3mOC0424デフォルトの名無しさん
2014/09/22(月) 12:16:05.00ID:xorcTHrmhttps://www.youtube.com/watch?v=Vfn4Z3A8X8U
0425デフォルトの名無しさん
2014/09/22(月) 14:10:12.25ID:CujXH2Oa最初からそう書いてるようにしか見えないんだけど、それ言いたいなら最初に書いとけよ。
あんさん、読み外してたのを必死に取り繕おうとしてるようしか見えんよ。
0426デフォルトの名無しさん
2014/09/22(月) 14:47:36.85ID:pZTx2uN6もしキミがそう読み取れたなら、同じレベルの人だからかもね。
あるいは同一人物かも。釣り臭いから。
0427デフォルトの名無しさん
2014/09/22(月) 15:31:49.77ID:CujXH2Oaなんでそう必死なのかな。論点ずらさず、さっさと己の過失か能無しを認めなよ。
中国人朝鮮人ならわかった。日本語難しいよね。かわいそうに。
0428デフォルトの名無しさん
2014/09/22(月) 16:16:24.06ID:bP9pMLbp読み外してるのはそっち
無駄な煽りはいらん
0429デフォルトの名無しさん
2014/09/22(月) 17:27:57.87ID:IMS/wq8Aセカンダリの位置は変えれるから2画面だけでもその状態に出来るよ。
0430デフォルトの名無しさん
2014/09/22(月) 17:37:31.16ID:cQyRHW/4Static.lib
MyProg.exe
を作って両者で変数を共有したい場合は、
int i;
extern int i;
みたいにできると思いますが、
Dynamic.dll
MyProg.exe
の二つで変数を共有したい場合は、どうすれば良いのでしょうか?
と言う質問をC言語なら俺に聞け(入門編)Part 126で聞いたら、
>Cにはその為の機構は用意されていないので、環境ごとに規定されている手段を採ってください。
使っているのはVS2013のC++なのですが、この場合はどういう手法が一般的でしょうか?
>WINAPIスレへどうぞ。
ということなのでここで質問したいのですが、どういう手法が一般的でしょうか?
0431デフォルトの名無しさん
2014/09/22(月) 17:43:22.13ID:xorcTHrmint i = 0;
#pragma data_seg()
0432デフォルトの名無しさん
2014/09/22(月) 17:46:35.08ID:CujXH2Oaうん。ごめんね。
>>430
複数exeから一つのdllで使ってる変数の値を共有ってことなら、
dll側のソースで
#pragma comment(linker, "/SECTION:.shared,RWS")
#pragma data_seg (".shared")
static int kyoyu;
#pragma data_seg ()
としておく。
0433デフォルトの名無しさん
2014/09/22(月) 17:51:49.80ID:CujXH2Oa>>431でも良かったんだな。
0434デフォルトの名無しさん
2014/09/22(月) 17:53:16.92ID:1b5tK9XE0435デフォルトの名無しさん
2014/09/22(月) 18:01:25.83ID:CujXH2Oa0436デフォルトの名無しさん
2014/09/22(月) 18:36:43.98ID:cQyRHW/4今、
Solution1
Static1.lib
Static2.lib
Solution2
MyProg.exe
でスタティックリンクしているのですが、この2つのlibを一つのdll
Dynamic12.dll
にして
実行時には
MyProg.exe
Dynamic12.dll
で動くようにしたいのですが、2つのlibを一つのdllにする方法が分りません。
どうすれば出来ますか?
0437デフォルトの名無しさん
2014/09/22(月) 19:03:50.01ID:dLGPEIqO0438デフォルトの名無しさん
2014/09/22(月) 19:06:32.94ID:L3vqYQya0439デフォルトの名無しさん
2014/09/22(月) 19:07:27.22ID:IMS/wq8Ahttp://msdn.microsoft.com/ja-jp/library/9h658af8.aspx
>>431>>432
単なるインポートの話だろうからハズレだろう
0440デフォルトの名無しさん
2014/09/22(月) 19:15:40.56ID:L3vqYQya0441デフォルトの名無しさん
2014/09/23(火) 01:32:54.69ID:y6lNWyJtインポートできてないって段階だとしたら、その想定を始める意味はあるのか?
というか単なるリンクの感覚で話してるんだったら共有したほうが迷惑じゃね?
0442デフォルトの名無しさん
2014/09/23(火) 02:01:44.21ID:gHdmjZZF0443デフォルトの名無しさん
2014/09/24(水) 12:08:16.01ID:2WI09dQB0444デフォルトの名無しさん
2014/09/24(水) 12:31:58.72ID:FgPJOGFT>>
>>
0445デフォルトの名無しさん
2014/09/25(木) 12:52:04.04ID:qdfkas2H.NetにはAnchorプロパティがあったけど、
WinAPIだとWM_SIZEでMoveWindowするしかないの?
0446デフォルトの名無しさん
2014/09/25(木) 13:31:10.97ID:jhyDm/P4自分はそうしてる
座標計算面倒なので、複雑なウインドウはリサイズ不可にしちゃう
0447デフォルトの名無しさん
2014/09/25(木) 14:07:54.63ID:Xeq7iPqr0448デフォルトの名無しさん
2014/09/25(木) 14:27:14.70ID:/NVqQrO0アンカーどんな感じにしましたか?
フローレイアウトと、フルレイアウトを作ったんですが、どちらも
親子の大きさだけわかっていれば良いのですが、アンカーは東西南北も
必要だと思います。
子に配置を持たせると、サイズが大きくなるので困ってます。
今32バイトです。
0449デフォルトの名無しさん
2014/09/25(木) 16:19:44.49ID:HhDeddVfSetAnchorControl(hwnd_button, ancor_flag)
みたいな感じで、ancor_flagは面倒くさいからコピペするけど、意図はなんとなく感じ取ってw
AnchorNONE = 0x0000,
AnchorLEFT = 0x0001,
AnchorLR = 0x0003,
AnchorLT = 0x0005,
AnchorLB = 0x0009,
AnchorRIGHT = 0x0002,
AnchorRT = 0x0006,
AnchorRB = 0x000a,
AnchorTOP = 0x0004,
AnchorTB = 0x000c,
AnchorBOTTOM = 0x0008,
AnchorALL = 0x000f,
渡されたhwndの親をサブクラス化して、サブクラス化プロシージャでWM_SIZEを処理して、
親ウィンドウのサイズ変更に子ウィンドウを追随させてる。
追随だけど、かなり前に作ったので意図を覚えてないんだけど、MoveWindowではなく
BeginDeferWindowPosとかDeferWindowPosを使ってる。
あとは[親ウィンドウのサイズ情報]+[子ウィンドウごとに親ウィンドウからの各辺からの距離の情報]
などを最初に記憶してて、現在のサイズと比較して補正する感じ。
子ウィンドウ一つあたり40byteくらい食ってる。でも、消費メモリは気にしてないけどね。
汎用性を持たせるのにDLLにして、親ウィンドウが複数ある場合に対応とか辺りに余計な手間がかかった。
泥臭い作りかなと思いつつ、いざ完成して動かしてみたけど、気持ちよく動いてる感じ。
0450デフォルトの名無しさん
2014/09/25(木) 16:38:55.94ID:/NVqQrO0どうもありがとうございます。
0451デフォルトの名無しさん
2014/09/25(木) 16:40:16.30ID:3pla4Uyi0452デフォルトの名無しさん
2014/09/25(木) 16:43:00.67ID:L8Q1zq/60453デフォルトの名無しさん
2014/09/25(木) 17:24:52.00ID:HhDeddVf元レスの「右下にくっつける」だけじゃなくて、例えばエディットコントロールは
ウィンドウサイズに応じて大きくする用途にも使えるようにした方がより汎用性が
あるなと思って。せっかくなので。
>>451
ぼくこわい。
0454デフォルトの名無しさん
2014/09/25(木) 17:25:30.72ID:/NVqQrO0ボタンの大きさは、表示する文字列の専有面積によって決まることにします。
このとき、文字列の面積を調べるためにGetDC()が必要になると思いますが、
GetDC()に時間がかかりすぎます。
200個程度のボタンを並べてウィンドウの大きさを変えてみると、引きずるような
感じがしてしまいます。
するすると動きません。
これはどうやって解決してますか?
0455デフォルトの名無しさん
2014/09/25(木) 17:27:37.78ID:/NVqQrO0とても興味が有ります。
0456デフォルトの名無しさん
2014/09/25(木) 17:40:01.86ID:Q6LAeW7P0457デフォルトの名無しさん
2014/09/25(木) 17:52:06.92ID:WI00iwLd0458デフォルトの名無しさん
2014/09/26(金) 10:25:21.49ID:b46gtTR2…各ボタンの文字列は、そんなに頻繁に、しかも沢山のボタンの文字列が変わるのかい?
文字列を設定した時に取得して、その後は取得した値を使えばいいじゃん
0459デフォルトの名無しさん
2014/09/26(金) 10:45:57.41ID:BPZIlMABボタンじゃない場合もあるので、例えば、表やワードプロセッサならどうでしょう。
たぶん、良く知られた解決法が有るんじゃないかと思うんです。
もう一つ知りたいことが有ります。
文字の描画に使えるAPIがいくつかあります。
1、GetCharacterPlacement + GDI
2、Uniscribe
3、DirectWrite
今使うならどれですか?
0460デフォルトの名無しさん
2014/09/26(金) 11:13:20.33ID:BPZIlMABフラグを付けて、WM_PAINTで実際の計算をする方法です。
WM_SIZEとWM_PAINTは対になっていると考えて良いはずですが、何か問題が
出る場合は有りますか?
0461デフォルトの名無しさん
2014/09/26(金) 12:18:54.02ID:8tItaSRz一行の高さ固定、出来ればフォント固定を厳守すればそう難しくない
後はボタンを押されたあとの処理次第
>>454
GetDCを繰り返し呼ぶ必要ないんじゃない
情報取得だけなら同じDCを使い回せばいい
フォント種類がバラバラだとこの手は使えんけど
>>459
どれも見たことすらないw
>>460
PAINT処理中に状態を変えるのはダメ絶対
0462デフォルトの名無しさん
2014/09/26(金) 13:23:51.69ID:BPZIlMABIDZですか。
どうもです。
0463デフォルトの名無しさん
2014/09/26(金) 14:17:12.23ID:0Gy3leDzセル一つずつ子ウィンドウ貼ってるようには思えない(処理速度やメモリ効率的に)んだけど、
かといって自前で線引いて座標で随時判断して該当セルの処理を行ってるようにも感じない。
(見た目的にというか、面倒くさすぎじゃないかなと。もっと効率的な実装があるような気が。)
んでもまあ、リストビューを拡張したものと思えばそうなのかなとも思える。
0464デフォルトの名無しさん
2014/09/26(金) 14:21:26.30ID:jD/A1f810465デフォルトの名無しさん
2014/09/26(金) 15:20:08.90ID:8tItaSRz0466デフォルトの名無しさん
2014/09/26(金) 16:34:40.91ID:ey/k7esr0467デフォルトの名無しさん
2014/09/26(金) 17:44:52.14ID:PsWU6Rhq0468デフォルトの名無しさん
2014/09/26(金) 18:19:51.35ID:0Gy3leDzやっぱりそれなのかなw
リストビューでサブアイテム編集させるのに、なんかダサいなと思いつつやってたわ。
0469デフォルトの名無しさん
2014/09/27(土) 11:21:20.62ID:UJluCQak(GetDCはストックオブジェクトで数個しか手持ちがないので、
限界を超えると内部でCreateされる-->遅い)
というより、MoveWindowかなんかで一つ変えるごとに描画しているからでは
0470デフォルトの名無しさん
2014/09/27(土) 11:50:17.87ID:lv9b6q1lよく見たらReleaseDCしてなかったわ。
0471デフォルトの名無しさん
2014/09/27(土) 11:56:16.60ID:lv9b6q1lGetDCしたまま解放してなくても普通に動くのはどういう仕組みなんだろう。
0472デフォルトの名無しさん
2014/09/27(土) 11:58:39.42ID:Tol0KhbMそう見えてるなら節穴
0473デフォルトの名無しさん
2014/09/27(土) 12:34:38.95ID:M7lcZRBS昔はリソース用のメモリが64kB固定というふざけたOSだった
0474デフォルトの名無しさん
2014/09/27(土) 12:37:29.84ID:Tol0KhbM0475デフォルトの名無しさん
2014/09/27(土) 13:24:15.70ID:lv9b6q1lそういえば、WindowsのIPスタックにはバグが有って再送を繰り返すので、
今でも100年前のパケットがネット上をさまよっていると犬板で言ってたな。
0476デフォルトの名無しさん
2014/09/27(土) 14:09:13.83ID:xuvXE3QY0477デフォルトの名無しさん
2014/09/27(土) 14:29:51.98ID:y/Ez5wR80478デフォルトの名無しさん
2014/09/27(土) 16:57:42.15ID:Es6Y0cNhどういうこった
その経路上の全ての機器を同時に終了しないと消えないとか?
0479デフォルトの名無しさん
2014/09/27(土) 17:03:36.65ID:M7lcZRBS0480デフォルトの名無しさん
2014/09/27(土) 20:00:28.83ID:8kCpmyIX第3次桂内閣総辞職にまで発展したのであった。
0481デフォルトの名無しさん
2014/09/27(土) 22:27:35.66ID:xuvXE3QYそれだと、シグナル状態がリセットされてしまうという副作用があるのでは…
別の質問なんですが、C++の例外を投げる関数をQueueUserAPCでキューに入れて、
SleepEx等でalertableな状態で待機しているスレッドでcatchする、ということはやってもいいのでしょうか。
試しにやってみましたが、一応catchできました。
0482デフォルトの名無しさん
2014/09/28(日) 07:34:43.79ID:ri3k0THzリセットされるけど、チェックしたスレッドからセットしなおせばいいんじゃない?
リセット無しでチェックできても、チェックの直前と直後に自動リセットされたケースの区別に意味があるかも微妙だし。
そもそもチェックしなきゃいけないなら同期方法を再検討すればいい気もする。
C++側としてはAPIを只のC関数として巻き戻すだけで問題無い筈だけど、
API側としてはAPC関数呼び出しの後の後始末が実行されないと不味いと思う。
MSDNによればWaitForSingleObjectEx等がAPC関数呼び出す時、
APIから「制御が返り」APC関数が実行されるらしいけど、これだけでは後始末が終わってる保障にはならない。
API側で後始末が必要で、なおかつ構造化例外を使っているのなら、
VC++でのC++例外処理は問題ない(構造化例外と混用可能)けど…
そもそも後始末が必要かや構造化例外を使っているかの記述がないからなんとも。
問題なく動く可能性は多分にあるけどすべての実装・環境で動く保障は多分ないからやめた方が良い。
0483デフォルトの名無しさん
2014/09/29(月) 13:56:20.30ID:6caLpi9f判定したいのですが、ググッてIsWow64Process()と言う関数を使えば出来そうだったので
実際にやってみたら、どのプロセスもWOW64でないと判定されてしまうのですが、
どのあたりがおかしいでしょうか?
0484デフォルトの名無しさん
2014/09/29(月) 14:00:52.16ID:PkV280SH0485デフォルトの名無しさん
2014/09/29(月) 15:14:02.41ID:XZ5QuAyd0486デフォルトの名無しさん
2014/09/29(月) 18:38:30.17ID:s6GohK/v>>469だった。
次は一億個のボタンに挑戦しようと思います。
0487デフォルトの名無しさん
2014/09/29(月) 18:39:34.22ID:6caLpi9fその通りでした。有難うございます。
0488デフォルトの名無しさん
2014/09/29(月) 22:27:47.43ID:6caLpi9fWindows(XP以上、32or64)上で動いているプロセスIDに対して、それがWOW64かどうか判定
したいのですが、もう数時間ググっているのですが、正しいやりかたが
分りません。こういう手順でやれば良いみたいな、簡単なアドバイス
おねいがします。
0489デフォルトの名無しさん
2014/09/29(月) 22:33:02.51ID:0K8mksjW0490デフォルトの名無しさん
2014/09/29(月) 22:40:54.91ID:BxhH7e2q> A handle to the process. The handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION
> access right.
ってあるけど、これは大丈夫?自Processならいいけど、他ProcessだとOpenProcessでちゃんと指定する必要が。
あと戻値とGetLastErrorは忘れずに。
というか目的のことは、プラットフォームがx64かどうか、かつ、プロセスがx86かどうか、だけで判定できる希ガス
0491デフォルトの名無しさん
2014/09/29(月) 22:45:03.91ID:9+ASy5MNちゃんと書いてないから、頑張れとしか言いようがない。
0492デフォルトの名無しさん
2014/09/29(月) 22:52:39.42ID:6caLpi9f>>490
> hProcessの説明に
> > A handle to the process. The handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION
> > access right.
> ってあるけど、これは大丈夫?自Processならいいけど、他ProcessだとOpenProcessでちゃんと指定する必要が。
> あと戻値とGetLastErrorは忘れずに。
> というか目的のことは、プラットフォームがx64かどうか、かつ、プロセスがx86かどうか、だけで判定できる希ガス
OpenProcessに関しては、
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686701(v=vs.85).aspx
を参考にして、それで取得したハンドル hProcess に対して、IsWow64Process()で調べているのですが、
何かやり方おかしいですか?
>プロセスがx86かどうか、
それを調べる方法が分らないのです。困った。
0493デフォルトの名無しさん
2014/09/29(月) 23:07:03.11ID:AG+JzUTr0494デフォルトの名無しさん
2014/09/29(月) 23:12:17.98ID:elYv8UfB0495デフォルトの名無しさん
2014/09/29(月) 23:12:44.88ID:fRzUePeT64bit OS上で動いている32bitプロセスの場合にTRUEを返すのだが、そこんとこ分かってる?
> 何かやり方おかしいですか?
まずはGetLastError()
0496デフォルトの名無しさん
2014/09/29(月) 23:22:50.91ID:SDXa9UMKむしろ今やっているダメなコードのほうを提示すれば、こうすれば良いと説明しやすいんじゃないか?
簡単なアドバイスでいいならググれとしか言えんし、
ググっても分からないってわけなんだから手順を説明しても同じじゃないだろうか。
0497デフォルトの名無しさん
2014/09/29(月) 23:37:01.96ID:lN/BZL5JWoW64は環境のことであってプロセスは関係ない。
判定関数はただ環境を返してるだけ。
0498デフォルトの名無しさん
2014/09/30(火) 00:12:58.50ID:2TA7Mt7kWow64は環境だが、IsWow64Process()はそのプロセスがWow64上で動いているかどうかを返すので
プロセスは関係ある。64bitプロセスはWow64無しで動くのでFALSEが返る。
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms684139.aspx
0499デフォルトの名無しさん
2014/09/30(火) 06:51:49.77ID:0urNGg000500デフォルトの名無しさん
2014/09/30(火) 07:32:52.97ID:AOM1YMTXhttp://codepad.org/
にうpしろ
何が悪いか見てやるよ
0501デフォルトの名無しさん
2014/09/30(火) 09:02:14.35ID:onIPhOR30502デフォルトの名無しさん
2014/09/30(火) 21:37:35.18ID:P24Lb/bIイベントなら同じハンドル使った待機関数に一通り渡らないけ?
SetEvent()→全待機関数へ通知 自動リセットだと同時解放は1つずつ?
別の質問はわからん
(´・ω・`)PulseEventは使わなくていいから マジクソ
0503デフォルトの名無しさん
2014/09/30(火) 22:41:22.07ID:o/bBwFDD0504デフォルトの名無しさん
2014/09/30(火) 22:42:12.41ID:o/bBwFDD0505デフォルトの名無しさん
2014/09/30(火) 22:50:29.35ID:QntTjtgn0506デフォルトの名無しさん
2014/09/30(火) 23:04:56.77ID:2xIMsJb6> 自動リセットだと同時解放は1つずつ?
そう、まさにそのために存在する
0507デフォルトの名無しさん
2014/10/01(水) 02:25:45.15ID:lawoDQQz0508デフォルトの名無しさん
2014/10/01(水) 02:28:47.26ID:r5LomURd0509デフォルトの名無しさん
2014/10/01(水) 14:12:13.87ID:d08nCdaw0510デフォルトの名無しさん
2014/10/01(水) 14:15:32.64ID:vFIUPSKe0511デフォルトの名無しさん
2014/10/01(水) 14:25:59.02ID:d08nCdawアドレス渡しは制限ある
SETTEXT、GETTEXTはおkだけどその他はダメな場合多いから調べろ
0512デフォルトの名無しさん
2014/10/01(水) 14:28:29.11ID:vFIUPSKe0513デフォルトの名無しさん
2014/10/01(水) 14:40:04.23ID:24yxgklO0514デフォルトの名無しさん
2014/10/01(水) 14:50:25.76ID:EESmyJNoand じゃダメなの?
0515デフォルトの名無しさん
2014/10/01(水) 15:02:29.06ID:3F5aC4ft0516デフォルトの名無しさん
2014/10/01(水) 15:04:02.71ID:7LpuTxqgなぜEUCだけはMultiByteToWideChar WideCharToMultiByte で
変換できないんですか?
0517デフォルトの名無しさん
2014/10/01(水) 15:23:04.67ID:2NEK614A2.2.1 Supported Codepage in Windows
http://msdn.microsoft.com/ja-jp/library/ee719641.aspx
0518デフォルトの名無しさん
2014/10/01(水) 15:25:35.27ID:2NEK614ACode Page Identifiers
http://msdn.microsoft.com/ja-jp/library/windows/desktop/dd317756%28v=vs.85%29.aspx
0519デフォルトの名無しさん
2014/10/01(水) 16:34:39.99ID:n9ZGXeJVそれでも標準インストールでははいらんのじゃないか
0520デフォルトの名無しさん
2014/10/01(水) 16:37:38.90ID:YKNuKmx4JIS に変換すれば良いだけだろ
0521デフォルトの名無しさん
2014/10/01(水) 20:55:54.79ID:IQ6lHZVB自プロセスより上の権限のプロセスには送れないから注意
0522デフォルトの名無しさん
2014/10/02(木) 21:03:50.36ID:3PWk+706error C4996: 'GetVersionExW': が古い形式として宣言されました。
とうエラーが出ます。エラーしない方法を教えてけろ。
0523デフォルトの名無しさん
2014/10/02(木) 21:44:28.77ID:5r30Ub27http://msdn.microsoft.com/ja-jp/library/ttcz0bys.aspx
http://msdn.microsoft.com/ja-jp/library/cc429963.aspx
0524デフォルトの名無しさん
2014/10/04(土) 18:46:34.41ID:pZ3GM5kn入力キーを取得できないのですがそういう仕様なのでしょうか?
0525デフォルトの名無しさん
2014/10/04(土) 19:13:45.55ID:pZ3GM5knそれを実行したら取得できるようになりました。
0526デフォルトの名無しさん
2014/10/04(土) 21:13:32.95ID:TY/2CBKEconnected standby(Instant Go)でスリープになった時に
特定の処理を実行したいのだけど
Win32.PowerModes.StatusChangeだと捕まえられませんでした。
変わりにディスプレイが消灯した時のイベントを捕まえたいのですが
どなたか教えてください。
0527デフォルトの名無しさん
2014/10/05(日) 02:05:14.78ID:AgD8ZRrC0528デフォルトの名無しさん
2014/10/05(日) 02:16:12.84ID:OsaIba9zWin32の話でいいならサスペンド捕まえるには
PBT_APMQUERYSUSPEND、PBT_APMSUSPENDでぐぐれ
0529デフォルトの名無しさん
2014/10/05(日) 02:19:34.81ID:OsaIba9z0530デフォルトの名無しさん
2014/10/05(日) 02:43:23.67ID:vnu4Brtghttp://ap.atmarkit.co.jp/bbs/core/fdotnet/30013
0531デフォルトの名無しさん
2014/10/05(日) 02:47:25.93ID:vnu4Brtghttp://msyk.at.webry.info/200511/article_2.html
0532デフォルトの名無しさん
2014/10/05(日) 02:52:46.27ID:vnu4Brtghttp://ja.wikipedia.org/wiki/EUC-JP
0533デフォルトの名無しさん
2014/10/05(日) 03:35:49.08ID:vX4qgpsahttps://www.youtube.com/watch?v=OtXAevjqDM0
0534デフォルトの名無しさん
2014/10/05(日) 09:13:44.66ID:E1Bc11fm仕様だけど、メインスレッドかどうかではない。
GetKeyboardStateで得られるキー状態は処理したウィンドウメッセージに応じて更新される。
そのスレッドに属するウィンドウがキーボードフォーカスを持っているかとかの問題。
>>525
一気に取れないのは面倒だけど、別プロセスまで考えるとGetAsyncKeyStateのが楽だよ。
0535デフォルトの名無しさん
2014/10/05(日) 21:29:03.60ID:NJHDuaagMessageBox()で長い文字列を表示すると
XPでは右端での折り返しをせずに一行で表示されるけれど、
Win7では、勝手に適当な場所で折り返されます。従ってMessageBoxウインドウの
幅もXPよりも狭くなります。
これを避ける方法ありますか?ググッたのですが、解決しませんでした。
1行で表示したいのです。
0536デフォルトの名無しさん
2014/10/05(日) 23:21:07.39ID:QKop1MLt一行で表示したければTaskDialogIndirectで十分な幅を設定する。
0537デフォルトの名無しさん
2014/10/06(月) 00:49:17.81ID:rjk74cqmTaskDialogは初耳です。ググったら、
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\winui\shell\appplatform\taskdialogs
にサンプルが有ったのでビルドして実行してみましたが、ProgressBarを表示するサンプルのようのですが、
最初のダイアログは開くのですが、Launch TaskDialogボタンを押しても
何も出ません。原因と対策が分る人いましたら、教えてください。
0538デフォルトの名無しさん
2014/10/06(月) 15:26:49.40ID:ABN9GXK1http://kzho.net/jlab-giga/s/1412562839210.jpg
ぐちゃぐちゃだ
やり直せ
0539デフォルトの名無しさん
2014/10/06(月) 21:51:59.49ID:5SQO2Mek0540デフォルトの名無しさん
2014/10/07(火) 23:12:17.71ID:G0Zenyqi関数がアホみたいに長くなるんですが、そういうもんですか?
その時にswitch caseが2重、3重の入れ子になって訳分りません。
何かお勧めのテクニックありますか?
0541デフォルトの名無しさん
2014/10/07(火) 23:16:23.72ID:OuIvePB00542デフォルトの名無しさん
2014/10/07(火) 23:39:51.09ID:G0ZenyqiWindowプログラムってこんな感じじゃないですか。
LRESULT CALLBACK WndProc(...) { //コールバックがあって
// do something
return DefWindowProc(...);
}
int WINAPI WinMain(...) { //それを呼び出すメイン
hwnd = CreateWindow(...);
while (TRUE) {
GetMessage(&msg , NULL , 0 , 0);
DispatchMessage(&msg);
}
return 0;
}
これ全体をクラス化したいのですが、単純に
class MyWindow{
}
みたいに囲ってもうまく行かなかったのですが、クラス化することは可能ですか?
ググってもそういうページが見つからないので、クラス化するなんていうことはしないのかな?
0543デフォルトの名無しさん
2014/10/07(火) 23:45:26.80ID:OuIvePB0そんなの公式でやりかた紹介してんだろ
↓
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ff381400(v=vs.85).aspx
0544デフォルトの名無しさん
2014/10/07(火) 23:45:29.86ID:50J1bzMnAPIを使うような低水準で作るからそういう意味では書きにくい。
これはLinuxとか別のOSでもそう。
これを嫌うなら、フレームワークとかGUIウィジェットを吟味しろという方向になる。
WIN32でやるのは性能とか機能とか別の観点を重視する場合。
0545デフォルトの名無しさん
2014/10/07(火) 23:48:30.53ID:50J1bzMnSetWindowLongにthisを渡せばできるけれど
それをやるならMFCとかつかいませう
0546デフォルトの名無しさん
2014/10/07(火) 23:55:19.78ID:G0Zenyqiおお、こんな情報がああったとは。
さっそくコピペしてビルドしたら動いたわ。凄いな。
三日間ググってもやり方が分らなかったのに、もっと速く君に聞けばよかったよ。
どうもありがとう。これからもよろしくな。
0547片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 11:41:29.53ID:Q8WQqH2D以下のファイルがインストール時に更新されないのは何故?
0548デフォルトの名無しさん
2014/10/08(水) 11:54:08.04ID:Q8WQqH2D0549デフォルトの名無しさん
2014/10/08(水) 11:55:09.64ID:9ezyJyuZ0550片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 12:24:14.27ID:9EnqerIpMZC3_ScrollView
https://github.com/katahiromz/MZC3_ScrollView
0551片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 13:50:00.60ID:9EnqerIp0552デフォルトの名無しさん
2014/10/08(水) 17:28:42.38ID:kNOoN+noどうやって使うのでしょうか?
VSのprojcetファイルが無いのでビルド出来ませんでした。
0553デフォルトの名無しさん
2014/10/08(水) 17:50:36.26ID:DlqJxW4C0554片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 18:07:29.06ID:Q8WQqH2D0555デフォルトの名無しさん
2014/10/08(水) 18:59:03.56ID:kNOoN+nomain()
WinMain()
のどっちを使っても、ウインドウらしきものは出ませんでした。
何かウインドウが出てスクソロールするんですか?
0556片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 19:24:28.96ID:Q8WQqH2D0557デフォルトの名無しさん
2014/10/08(水) 20:07:59.12ID:kNOoN+noxg_hMainWnd = ::CreateWindow(...)
のところで
Debug Assertion Failed!
...
...
vector subsvript out of range
...
みたいなエラーしました。
main()のほうは、正常終了しましたが、Consoleウインドウに文字が出る
だけでした。
0558片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/08(水) 20:15:39.43ID:Q8WQqH2D修正すれば使えるはず。
0559デフォルトの名無しさん
2014/10/08(水) 20:46:48.54ID:3Gg8s7gO0560デフォルトの名無しさん
2014/10/08(水) 20:55:08.61ID:Q8WQqH2D0561デフォルトの名無しさん
2014/10/08(水) 21:43:39.34ID:Tp4lJEmG別にいいんじゃね
0562デフォルトの名無しさん
2014/10/08(水) 22:20:05.79ID:9ezyJyuZデバッグやらライブラリの話は専用スレでも建ててくれ。
0563デフォルトの名無しさん
2014/10/08(水) 23:29:32.88ID:kNOoN+no--- dialog.cpp-----------
INT_PTR DialogBox(...){
switch (Message){
...
}
}
main(){
DialogBoxW( , , , DlgProc);
}
--------------------------
こんな感じですよね。
このexeをstatic libにして、別の MyProg.exe からリンクしてダイアログを表示しようとしたのですが、
出来ませんでした。技術的に可能でしょうか?どうやれば出来ますか?
0564デフォルトの名無しさん
2014/10/09(木) 00:26:34.66ID:1S+nhjfY0565デフォルトの名無しさん
2014/10/09(木) 00:26:59.48ID:pU+kjdY60566デフォルトの名無しさん
2014/10/09(木) 00:54:15.13ID:gIegxvuMしようとしたコードは?
0567デフォルトの名無しさん
2014/10/09(木) 00:55:43.35ID:nEECJbM2MyProg.exeから、そのdialog.cppのmain関数を呼んだの?
そのmain関数の名前を変えるのじゃ駄目?
0568デフォルトの名無しさん
2014/10/09(木) 05:51:35.22ID:V215NwAs0569デフォルトの名無しさん
2014/10/09(木) 10:18:37.94ID:IFg54I5e0570デフォルトの名無しさん
2014/10/09(木) 10:58:40.56ID:Y1xH87fy前にもlibの質問上げてた奴と同一人物か?
0571デフォルトの名無しさん
2014/10/09(木) 17:00:41.75ID:yy/JtvUA0572デフォルトの名無しさん
2014/10/09(木) 19:32:44.10ID:gIegxvuM0573デフォルトの名無しさん
2014/10/09(木) 19:40:05.79ID:F7kHyJ16仕組みを分かってないようだから
1から勉強しなおせ
0574デフォルトの名無しさん
2014/10/09(木) 19:52:43.66ID:JH57SQbWそんな話では無くて?
0575デフォルトの名無しさん
2014/10/09(木) 20:46:55.49ID:REBK3ABeそうなんです、そのリソースをどう扱っていいか分りません。
0576デフォルトの名無しさん
2014/10/09(木) 21:24:29.55ID:iqV97gZL0577デフォルトの名無しさん
2014/10/10(金) 08:35:52.43ID:ca+RRSkR2016年からのIEや.netのバージョンを限定したサポートの計画でマイクロソフトは過去の資産を切り捨てるようだ
165 名前:名無し~3.EXE 投稿日:2014/10/09(木) 20:12:18.75 ID:woPDelvC
>>163
企業からMSが切り捨てられるX-dayになりそうだな
XPを引っ張りすぎたツケが全部Win8の失敗に繋がってる
モバイルでの惨敗がとどめを刺したな
0578デフォルトの名無しさん
2014/10/10(金) 13:23:49.18ID:T0LFFi4lMSらしいな
0579デフォルトの名無しさん
2014/10/10(金) 18:15:20.38ID:Xd6YjWLK0580デフォルトの名無しさん
2014/10/10(金) 20:11:39.63ID:Q8YNOqMG0581デフォルトの名無しさん
2014/10/11(土) 05:32:50.85ID:xQ/gd4rr反省してまーす
0582デフォルトの名無しさん
2014/10/11(土) 19:28:26.52ID:sqsfupnMhttp://www.nitoyon.com/vc/reference/gui/treeview.htm
このページの一番下に書かれているWM_NOTIFYで各種メッセージを受け取る方法で、
NM_DBLCLKであれば、受け取ることができました。
http://msdn.microsoft.com/ja-jp/library/749htf6k.aspx
しかし、このページに書かれているNM_RETURNメッセージは受け取ることができませんでした。
http://eternalwindows.jp/control/listview/listview07.html
このページに書かれているように、LVN_KEYDOWNメッセージを待ちましたが、受け取れませんでした。
どのようにすればツリービューコントロールでEnterキーの押下を受け取れるでしょうか?
よろしくお願いします。
0583デフォルトの名無しさん
2014/10/11(土) 19:48:10.52ID:B3zf0mltPretranslateMessageとか使ってみれば
0584デフォルトの名無しさん
2014/10/11(土) 19:58:12.33ID:Huyc+i2I0585582
2014/10/11(土) 20:05:53.67ID:sqsfupnM>>584
ありがとうございます。
>>584様のご指摘通り、LVNではなく、TVNにすべきでした。
おかげさまで、TVN_KEYDOWNメッセージを受信でき、
LPARAMをNMTVKEYDOWN*にキャストしてwVKeyメンバから、
押下された仮想キーコードを取得するところまでいけたのですが、なぜかEnterキーは来ません(汗)
他のスペースキーとかは来るのですが・・・。
まるで嫌がらせのような挙動ですw
>>583様のおっしゃるように、ダイアログに吸われてるんでしょうか?
0586デフォルトの名無しさん
2014/10/11(土) 20:30:13.77ID:9/lqDyPoサブクラスじゃあかんの
0587デフォルトの名無しさん
2014/10/11(土) 21:44:09.62ID:L2humm3m0588582
2014/10/11(土) 22:48:36.03ID:sqsfupnM以前、ダイアログボックスで同じ問題に遭遇し、サブクラスにてWM_GETDLGCODEを受信して解決していました。
コントロールの種類が異なるだけど、それと同じ問題だったということですね。
失礼しました。
どうもありがとうございました。
0589デフォルトの名無しさん
2014/10/12(日) 15:31:51.09ID:Go9nxJDiこのスレの方が詳しいと思い質問させてください
やりたいことはノートPCのバッテリへ
SMBUSで読み書き命令を送信したい
ググっても「無理」という回答が多いのですが
中にはエンベッドコントローラを直接制御することに
成功している人もいるようです。
http://www.init-main.com/acpirensai/acpi7.txt
.netでもwin32APIで出来るのであれば
その方法をご教示いただけないでしょうか?
0590デフォルトの名無しさん
2014/10/12(日) 17:44:51.77ID:vP4KqGkPvbしかわからない人間ができることじゃないだろう
0591デフォルトの名無しさん
2014/10/12(日) 19:17:32.31ID:Go9nxJDiEC(エンベデッドコントローラ)がsmbusマスタなので
こいつに命令を下さないといけないのだけど
なんとかその実現方法を知りたい
linuxだとここらへんが割りとむき出しのようなのだけど
なんとかwindowsでやりたい
でも無理そうですね矢張り
0592デフォルトの名無しさん
2014/10/12(日) 20:24:41.09ID:Z8ok/lvr0593デフォルトの名無しさん
2014/10/12(日) 21:08:41.24ID:IX57hp7+0594デフォルトの名無しさん
2014/10/12(日) 21:11:33.81ID:cQfWbLkUAPI直接使うと処理が遅くなる。
mallocのようなメモリー管理ライブラリを作るときに
WIN32APIのほうを使う。
0595デフォルトの名無しさん
2014/10/12(日) 21:25:22.01ID:IX57hp7+0596デフォルトの名無しさん
2014/10/12(日) 21:32:13.22ID:dA3B6w3otry catchしてないと落ちるか落ちないか
0597デフォルトの名無しさん
2014/10/12(日) 21:32:38.85ID:diHNUhL/0598デフォルトの名無しさん
2014/10/12(日) 21:56:39.20ID:IAVtFIVvVCのmallocは単にHeapAlloc呼んでるだけだぞ
0599デフォルトの名無しさん
2014/10/12(日) 23:15:34.12ID:LjQH95WZGlobalAlloc は大昔(Win32より前)のAPI
また部分的にしか使わないような巨大なメモリブロックを使う場合は VirtualAlloc
0600デフォルトの名無しさん
2014/10/12(日) 23:26:26.40ID:E4udznlPGlobalAllocはCreateStreamOnHGlobalで偶に使っていた記憶が。
今はSHCreateMemStreamがあるからお役御免だけど。
0601デフォルトの名無しさん
2014/10/13(月) 00:31:18.77ID:cn1E5tDb0602デフォルトの名無しさん
2014/10/13(月) 06:00:32.38ID:VoMmfcCGGlobalLock/GlobalUnlockも慣習的にやってるだけで実は必要ないだろうし
0603デフォルトの名無しさん
2014/10/13(月) 10:08:32.22ID:eF/9rJ3u海外サイトだと何らかのyes,noがあるのに
何故日本だと「バカにはわからねーよ」という煽りが
返ってくることが多いんだろな
ガッカリすると同時に人間性を疑う
どういう育ち方したんだ
0604デフォルトの名無しさん
2014/10/13(月) 10:11:58.62ID:PPv6Llzm0605デフォルトの名無しさん
2014/10/13(月) 10:44:41.08ID:7i+sJhXAメモリーコンパクションをソフトウェアでやってた時代の名残でしょ
ハードウェアでページングできるなら不要
0606デフォルトの名無しさん
2014/10/13(月) 22:12:30.05ID:mop7VaGlここは 2chです
0607デフォルトの名無しさん
2014/10/13(月) 22:55:17.64ID:EdTfqrH2VirtualAlloc(Ex)で属性指定するしかないの?
mallocを使いたいんだが
0608デフォルトの名無しさん
2014/10/13(月) 23:20:11.78ID:ko/k9KZm実行できなくていいのなら
そんなこと聞いてどうなることでも無いと思うがな
無駄な質問したくなる心理ってどこからくるんだろうね
興味ある
0609デフォルトの名無しさん
2014/10/13(月) 23:23:46.77ID:dqffiAoT0610デフォルトの名無しさん
2014/10/14(火) 02:06:00.48ID:oEpXVlfDmalloc使いたいってのがおかしい
ページごとに指定すんのにページメモリ細切れにするmallocでできるわけないだろ
0611デフォルトの名無しさん
2014/10/14(火) 03:07:33.42ID:A0D4+krRしばらく使ってからOS起動直後と同じ状態に戻して(起動したプロセスを終了して)も
OS起動直後よりもページファイル使用量が多い
0612デフォルトの名無しさん
2014/10/14(火) 05:53:11.46ID:BVjyeKaO0613デフォルトの名無しさん
2014/10/14(火) 07:17:16.67ID:lV7cR9FO0614デフォルトの名無しさん
2014/10/14(火) 07:46:47.92ID:oEpXVlfDでも一旦増えたら減らない
ヒープのページの話してるとこにいきなり説明なくOSのページファイルのことすんな
混乱させるだけ
0615デフォルトの名無しさん
2014/10/14(火) 08:38:53.76ID:zT0VwE4nコンパクション…?GlobalLock・LocalLockは単にメモリ管理モデルが違うから廃止されたってだけじゃないの?
メモリ空間のやり繰りって意味では、ページファイルをCreateFileMappingしてMapViewOfFileって形で残ってるし。
>>607
mallocが内部的にVirtualAllocしてる場合は、後からVirtualProtectでアクセス保護を変更できる。
でも、素直にVirtualAllocやそれをラップした関数使うか、いっそすっぱりDEPを切ってしまうのが良いと思う。
細切れ領域に対して後から実行属性付けて無関係なメモリも実行可能にするのはDEP的に悪いし、
malloc差し替えて細切れ領域を全部別ページにするのも効率悪いし、
全領域に実行属性付けるのはもっとDEP的に悪いし、mallocの引数増やすとかVirtualAlloc使うのと大差ないし
0616デフォルトの名無しさん
2014/10/14(火) 09:03:57.26ID:A0D4+krR故意にメモリ確保しまくって解放したらページファイル使用中が減るから
>>614
仮想メモリ設定なら固定値にしてある
0617デフォルトの名無しさん
2014/10/14(火) 12:46:14.82ID:e6dLngVH> メモリ空間のやり繰りって意味では、ページファイルをCreateFileMappingしてMapViewOfFileって形で残ってるし。
何を勘違いしたらそんな結論になるのかさっぱりわからんが、GlobalAlloc とかはメモリー空間のやりくりじゃなくて、実際のメモリー領域のやりくりの話。
0618デフォルトの名無しさん
2014/10/14(火) 13:07:22.51ID:zT0VwE4n>>617
AllocじゃなくてLockね。
0619デフォルトの名無しさん
2014/10/14(火) 13:13:55.47ID:BVjyeKaO0620デフォルトの名無しさん
2014/10/14(火) 13:22:07.58ID:zT0VwE4nグローバルヒープとローカルヒープの区別
0621デフォルトの名無しさん
2014/10/14(火) 14:03:21.87ID:e6dLngVH> AllocじゃなくてLockね。
Global 一族の意味で Alloc って書いてある
0622デフォルトの名無しさん
2014/10/14(火) 16:05:22.00ID:zT0VwE4nGlobal一族じゃなくてLockの話ネ
GMEM_FIXEDだと元々ハンドルにキャストされたポインタでLockも再配置も無いし
0623デフォルトの名無しさん
2014/10/14(火) 16:46:27.20ID:jHDVd/Tp> Global一族じゃなくてLockの話ネ
意味わからん
俺が Global 一族の意味で書いてるっつーてるのに、なんでお前が違うとか言うんだ?
コンパクションは GlobalLock だけで実現してるわけじゃないんだから、あえて GlobalAlloc とかと書いてるんだよ
0624デフォルトの名無しさん
2014/10/14(火) 17:03:06.98ID:h5YZupCV0625デフォルトの名無しさん
2014/10/14(火) 17:39:01.65ID:BVjyeKaO彡 ⌒ ミ
(´・ω・`) ガタッ
/ ヾ
__L| / ̄ ̄ ̄/_
\/ /
0626デフォルトの名無しさん
2014/10/14(火) 19:17:14.46ID:2XopWL7F0627デフォルトの名無しさん
2014/10/14(火) 19:33:06.39ID:Xm+aC3qM0628デフォルトの名無しさん
2014/10/15(水) 21:17:16.96ID:85BS4tFF全アイテム分のTVN_DELETEITEMが発生してイヤな感じです
発生させない方法とかあったら俺様に教えてください
PeekMessageで削除すればいいと思ったんですが、
WM_NOTIFY(TVN_DELETEITEM)で来るから単純にREMOVEできないのです
0629デフォルトの名無しさん
2014/10/15(水) 22:15:12.60ID:8kF5M8Gq0631デフォルトの名無しさん
2014/10/17(金) 02:28:05.56ID:AZJ5K6SVでもなんでTVN_DELETEITEM破棄しようと思ってんのか理解できん
TVN_DELETEITEM破棄したらアイテム削除されんだろ
大量アイテム更新で画面作画を抑制してきびきびさせたいときはWM_SETREDRAWで抑制する
0632628
2014/10/18(土) 07:03:29.69ID:G1bJtmavWM_SETREDRAWは知らんかった助かる
TVN_DELETEITEMはMSDNに戻り値は無視されますとあるので、
アイテム削除後のただの事後報告だと理解しているが・・・
アイテムにユーザデータ突っ込んでたら、ここで解放してねってくらいで
データ突っ込んでない人にとっては無駄な通知メッセージかと思ったんだが
そうでもないのか?
まあ別に1000個くらい通知きても無視すればいいだけなんだが、
止められるなら止めたいなと
無駄にメッセージループを回したくないだけです
0634片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/18(土) 16:23:26.17ID:OmEui7i2Windows virtual key checker
https://github.com/katahiromz/vkeycheck
0635デフォルトの名無しさん
2014/10/19(日) 02:59:53.50ID:cw5JQu3z戻り値は無視されてるってのはそのメッセージ捨てていいってことではなく戻り値を検証せずvoid関数的な呼びだしするってことだボケ
0636デフォルトの名無しさん
2014/10/19(日) 09:09:31.15ID:F3gIUORa> PeekMessageで削除すればいいと思ったんですが
この段階でスルーだな
0637628
2014/10/19(日) 13:33:34.23ID:WewmnEhVあ、そもそもWM_NOTIFYってキューに入らないのか
直接プロシージャに来るならどうしようもないか
俺様があほでした、すいません
0638デフォルトの名無しさん
2014/10/19(日) 15:25:39.09ID:jeBYTyxS0639デフォルトの名無しさん
2014/10/19(日) 15:46:50.90ID:n9kPv86G0640デフォルトの名無しさん
2014/10/19(日) 16:19:14.84ID:qyP9kRyl0641デフォルトの名無しさん
2014/10/19(日) 19:48:17.56ID:U9zncy/O0642デフォルトの名無しさん
2014/10/19(日) 19:50:27.90ID:gAtBbPfl0643デフォルトの名無しさん
2014/10/19(日) 20:03:35.59ID:jeBYTyxSSendされたメッセージは値を返さないといけないので
Postされたメッセージのように捨てることはできない。
捨てる代わりに正規のプロシージャに渡さずに
適当な値を返す必要がある。
0644デフォルトの名無しさん
2014/10/19(日) 21:28:40.69ID:PsSi0GjTRegistryKey.SetValue Method (String, Object)
でObjectが何でもうまい具合にレジストリに書き込んでくれますが、
C++だと、
RegSetValueEx()使う時にDWORD dwTypeでタイプを指定しなくてはならないようですが、
C#みたいに楽ちんな方法は無いでしょうか?
0645デフォルトの名無しさん
2014/10/20(月) 01:41:44.21ID:xJfPCmzS0646デフォルトの名無しさん
2014/10/20(月) 01:42:42.51ID:jjiQL4kfRegSetValueExはC++というかC。
MFCのレジストリ操作メソッドはクソ残念なので適当なC++用フレームワークを探すなり、
自分でRegSetValueExを呼び出すオーバーロード関数を作るなりしとけばよいかと。
設定ファイルとしてのその辺やるライブラリは色々あるんじゃね?
0647片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/20(月) 13:01:26.88ID:LSPN1VmBアンパンマン、新しい顔でバイキンマンと戦ってね。
https://github.com/katahiromz/MZC3_RegKey
0648デフォルトの名無しさん
2014/10/20(月) 16:15:30.31ID:YIaZ+UJI情報ありがとうございました。大変参考になります。
早速試してみましたら、動いたのですが、
C++初心者の私には、
SetMultiSzとQueryMultiSzの引数の与え方が分りませんでした。
0649デフォルトの名無しさん
2014/10/21(火) 01:02:39.85ID:c8NUu7RBそのコテハンの言動見てからそのライブラリ使っても良さそうか考えよう。
0650デフォルトの名無しさん
2014/10/21(火) 01:06:13.48ID:dWXgLBxs0651片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/21(火) 12:07:53.91ID:dcMhJCneMZC3_RegKey更新しました。
0652デフォルトの名無しさん
2014/10/22(水) 08:49:33.19ID:zFSkun4Ghttp://www.lifehacker.jp/2014/10/14101coolest_windows_10.html
0653デフォルトの名無しさん
2014/10/22(水) 08:56:33.49ID:4UXHaNsm0654デフォルトの名無しさん
2014/10/22(水) 10:29:10.39ID:zFSkun4G0655デフォルトの名無しさん
2014/10/22(水) 12:42:08.37ID:G2nqW3Ft不満があるなら自分から変えろ、それができないのなら甘んじて奴隷を続けろ
0656デフォルトの名無しさん
2014/10/22(水) 16:53:02.56ID:ARgoe7ArC#側からメインスレッドとは別のスレッドの中で呼び出そうとしているのですが、
手順はちゃんと踏んでいるのですが、waveInPrepareHeaderの時点でMMSYSERR_HANDLEBUSY(別のスレッドがハンドルを使用中である)が返されます
何が原因なのか思い当りません
音声に関する処理は全てDLLの中で行っていてC#側には干渉してません
DLLの中には大きく分けてwaveInProcコールバック関数ともう一つ関数(以下Aと呼びます)があり、C#側からAを呼びます
Aの中でwaveInOpenを呼び、waveInPrepareHeaderはWIM_OPENが来た時にコールバックの中で呼ぶようにしてあります
waveInOpenはエラーが返ってないので成功していると思います
デバイスハンドルはDLL内でグローバル変数として宣言した変数で全てやっています
原因として何が考えられるでしょうか・・・
0657デフォルトの名無しさん
2014/10/22(水) 17:22:38.47ID:09vRtLa/0658デフォルトの名無しさん
2014/10/22(水) 18:26:29.68ID:/tAGsi/10659デフォルトの名無しさん
2014/10/22(水) 19:12:44.29ID:0HwRu0Os0660デフォルトの名無しさん
2014/10/22(水) 20:14:45.17ID:/lm919FHだったら問題なし
0661デフォルトの名無しさん
2014/10/22(水) 20:34:47.16ID:L2b7Mpd00662デフォルトの名無しさん
2014/10/23(木) 13:57:03.79ID:ISc0F2Qfhttp://www.forest.impress.co.jp/docs/news/20141022_672480.html
0663デフォルトの名無しさん
2014/10/23(木) 20:16:43.14ID:dxcfJxLP自分ならWin3.1の遺物なんか使わず、とりあえずDirectSoundCaptureに逃げるな。
0664デフォルトの名無しさん
2014/10/24(金) 02:10:22.75ID:DvSLv01WDirectSoundだと腐った挙動するドライバが多かったからMME安定
少なくともXP/Vista辺りまではDirectSoundで音出すときに
バッファ内の再生開始位置が無茶苦茶になる(最大で頭1秒近くが飛ばされる)ってケースもチラホラ有ったし。
0665656
2014/10/24(金) 11:42:20.69ID:ogK9H346入力関連のメッセージを処理する対象にwaveInProcコールバック関数を指定しているのですが
この場合どうやってコールバック関数はメッセージを受け取るのですか?
メッセージを発生させる関数が直接コールバック関数を呼び出すのですか?
メッセージキューは使われないんですか?
0666656
2014/10/24(金) 11:49:35.21ID:ogK9H3460668デフォルトの名無しさん
2014/10/24(金) 16:07:45.74ID:2OoN5cPHを見ると
typedef unsigned __int64 QWORD;
のようですが、<Windows.h>をインクルードしても出てこないのですが、どこで定義されているのでしょうか?
0669片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/24(金) 16:15:46.16ID:r1NpUdOMDWORDLONGを代わりに使うこと。
0670デフォルトの名無しさん
2014/10/24(金) 16:24:10.60ID:xqerE7s/PTVS 2.0: A quick overview (2-4 mins per feature)
https://www.youtube.com/watch?v=JNNAOypc6Ek
0671デフォルトの名無しさん
2014/10/24(金) 16:59:10.66ID:2OoN5cPH返事ありがとうございます。
今使っているのはvisual studio2013ですが、これは古いのでしょうか?
0672デフォルトの名無しさん
2014/10/24(金) 17:32:26.68ID:r1NpUdOMごめん、標準では未定義だった。<sspi.h>などで定義されてはいるが。
代わりにDWORDLONGかULONGLONGを使ってみてみて
0673片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/25(土) 10:02:15.06ID:O1Q4q8RyMZC3_Shareware
https://github.com/katahiromz/MZC3_Shareware
0674デフォルトの名無しさん
2014/10/25(土) 11:34:14.86ID:jsJ16HU20675デフォルトの名無しさん
2014/10/25(土) 13:04:51.36ID:YY79eQIkどの辺りが笑えるの?
0676デフォルトの名無しさん
2014/10/25(土) 14:37:57.37ID:y0SFSQKU0677片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/10/25(土) 16:42:59.37ID:YY79eQIk褒めてるのかけなしてるか分からんな
生き残れよ
0678デフォルトの名無しさん
2014/10/26(日) 01:53:53.70ID:hjrzBV3sコンソールアプリで、プログラム上から自身をアクティブなアプリケーションにしたいです。
SetFocusは反応がありませんでした。
なんか方法はないでしょうか?
0679デフォルトの名無しさん
2014/10/26(日) 02:06:44.73ID:P8rDdqoYやったこと無いけどコンソールウィンドウのHWNDを取得すれば好きに出来るんじゃないの。
http://support.microsoft.com/kb/124103/ja
とか参考にならんかな
0680デフォルトの名無しさん
2014/10/26(日) 02:31:38.57ID:hjrzBV3sHWNDは取得してます。
「キー入力が自分がアクティブな場合だけ反応しろ」的な処理に使ってます。
SetFocus(HWND)は反応がないですね。
0681デフォルトの名無しさん
2014/10/26(日) 02:52:21.11ID:P8rDdqoY0682デフォルトの名無しさん
2014/10/26(日) 03:01:37.46ID:hjrzBV3sSetForegroundWindowを使ったらできました
ありがとうございました。
0683デフォルトの名無しさん
2014/10/26(日) 04:12:49.80ID:fx3FFnF6> SetFocus
> ウィンドウは、呼び出し側スレッドのメッセージキューに関連付けられていなければなりません。
コンソールプログラムのメインスレッドがウィンドウ作ってメッセージループ回してるわけじゃないからねぇ…。
0684デフォルトの名無しさん
2014/10/26(日) 08:00:20.76ID:IQ+MA170最後に再起動(または起動)した日時のことです
0685デフォルトの名無しさん
2014/10/26(日) 08:09:09.71ID:IQ+MA170import time
import ctypes
c = ctypes.windll.kernel32.GetTickCount()
time.strftime('%Y-%m-%dT%H:%M:%S', time.localtime(time.time() - c/1000))
これでいけますた
0686デフォルトの名無しさん
2014/10/26(日) 08:21:57.15ID:IQ+MA170eventlog の system で
ソース = Kernel-General
ID = 13 がシャットダウン
ID = 12 が起動
でした
0687デフォルトの名無しさん
2014/10/26(日) 09:27:10.66ID:fx3FFnF650日位(49.7日)起動しっぱだと32bit値が一周してしまうのに注意。
用途次第だけど、GetTickCount64(Vista以降)とか、WMIとかも検討しとこう。
0688デフォルトの名無しさん
2014/10/26(日) 10:42:46.44ID:IQ+MA170ctypes.windll.kernel32.GetTickCount()
322817346
ctypes.windll.kernel32.GetTickCount64()
322821058
type(ctypes.windll.kernel32.GetTickCount())
type(ctypes.windll.kernel32.GetTickCount64())
なるほど int と long の区別がないのか
thx
0689デフォルトの名無しさん
2014/10/26(日) 11:02:41.53ID:NOyB4sKgそりゃ単にctypesの使い方間違ってるだけだ
64bit型を返すと定義しないと
0690デフォルトの名無しさん
2014/10/26(日) 18:52:45.67ID:Y7S0smttttp://mntone.hateblo.jp/entry/2014/10/02/102400
0691デフォルトの名無しさん
2014/10/27(月) 18:47:40.01ID:LWAIxwViBIOSに直接ACPIコマンドを送るAPI無いですか?
0692デフォルトの名無しさん
2014/10/27(月) 18:54:04.85ID:QxChUp0Ahttp://msdn.microsoft.com/en-us/library/ff537808%28VS.85%29.aspx
http://www.acpi.info/
0693デフォルトの名無しさん
2014/10/28(火) 00:00:02.39ID:ssHrm6SW0694デフォルトの名無しさん
2014/10/28(火) 00:17:56.65ID:95Lnzlr2あれは便利だけど決まったデータしか取れないからね
0695デフォルトの名無しさん
2014/10/28(火) 00:39:39.17ID:OyTPqxJU0696デフォルトの名無しさん
2014/10/28(火) 00:58:26.75ID:PVivPCTm0697デフォルトの名無しさん
2014/10/28(火) 00:59:53.15ID:OyTPqxJU0698デフォルトの名無しさん
2014/10/28(火) 01:04:31.84ID:PVivPCTm何かあった時に対応するハードル上がりそう
0699デフォルトの名無しさん
2014/10/28(火) 04:24:31.06ID:oBS7c0DgWMIはドキュメントや仕様がころころ変わる
0700デフォルトの名無しさん
2014/10/29(水) 12:11:48.53ID:l9ZYbS7g0701デフォルトの名無しさん
2014/10/29(水) 13:01:18.00ID:YIL0dPEp0702デフォルトの名無しさん
2014/10/29(水) 19:43:18.33ID:l9ZYbS7gだがやり過ぎだ 危ない
0703デフォルトの名無しさん
2014/10/29(水) 19:45:46.02ID:LJBpagLwCドライブとDドライブの間に変なパーティションを作りやがった
やっぱり消したら駄目なんだろうな
0704デフォルトの名無しさん
2014/10/31(金) 22:03:23.19ID:sxFjfbW3CultureInfo.CreateSpecificCulture("en");
みたいなのを実行するとカルチャを英語にできると思うんですが、
C++の場合はどうすれば良いのでしょうか?
0705デフォルトの名無しさん
2014/10/31(金) 22:18:52.15ID:tMdLNX3k0706デフォルトの名無しさん
2014/10/31(金) 22:52:36.19ID:sxFjfbW3レスありがとうございます。setlocaleも調べてみたのですが、それ以外にも
似たような関数がたくさんあって、ややこしくて良く分りません。もう少し精進して
出直します。スレ違い失礼しました。
0707デフォルトの名無しさん
2014/11/01(土) 09:11:08.77ID:N73zy/Fbgettextだけど、WIN32APIではないのでスレ違いなのさ。
0708デフォルトの名無しさん
2014/11/01(土) 10:14:04.60ID:fd7/g21Ehttp://msdn.microsoft.com/ja-jp/library/cc422020.aspx
http://msdn.microsoft.com/ja-jp/library/Cc440130#win32map_nationallanguagefunctions
0709デフォルトの名無しさん
2014/11/01(土) 13:43:05.01ID:/9f2fySDドラッグしたマウス直下のウィンドウハンドルを取得できるんだけど
そういうことが出来るWin32APIがあるの?
0710片山博文MZ次期CEO ◆0lBZNi.Q7evd
2014/11/01(土) 13:57:05.98ID:Wxa4oIV/WindowFromPoint
ChildWindowFromPoint
0711デフォルトの名無しさん
2014/11/01(土) 14:06:04.91ID:/9f2fySD�d
そんなのがあるんだな
0712片山博文MZ次期CEO ◆0lBZNi.Q7evd
2014/11/01(土) 14:39:20.29ID:Wxa4oIV/0713デフォルトの名無しさん
2014/11/01(土) 19:35:11.62ID:68QCuiUg0714デフォルトの名無しさん
2014/11/01(土) 20:26:39.72ID:sD+ctwvB0715デフォルトの名無しさん
2014/11/02(日) 00:48:52.89ID:Yg+lSdfp作りたいのはデュアルディスプレイみたいにデスクトップを拡張させることですが
ほとんどの仮想デスクトップのソフトは個々の干渉しないデスクトップになってしまいます。
干渉する仮想デスクトップつまりウィンドウの移動ができる仮想デスクトップを作るにはどうしたらいいでしょうか。
http://kkayataka.hatenablog.com/entry/2014/10/11/145913
一応このページを見たんですけどよくわかりませんでした。
0716デフォルトの名無しさん
2014/11/02(日) 00:58:44.43ID:vzdMzxCDhttp://vdm.codeplex.com/
0717デフォルトの名無しさん
2014/11/02(日) 01:01:31.33ID:Yg+lSdfpこれってウィンドウの移動できるの?
0718デフォルトの名無しさん
2014/11/02(日) 01:08:31.90ID:Yg+lSdfp0719デフォルトの名無しさん
2014/11/02(日) 01:16:32.23ID:vzdMzxCD> Windows Key + Control + Numpad 1...9 - Send the foreground window to the corresponding desktop
> Windows Key + Control + Arrow Keys - Send the foreground window to the corresponding desktop
0720デフォルトの名無しさん
2014/11/02(日) 01:18:15.60ID:Yg+lSdfpなるほど
0721デフォルトの名無しさん
2014/11/02(日) 01:39:47.91ID:vzdMzxCDhttp://sourceforge.net/projects/virtuawin/
0722デフォルトの名無しさん
2014/11/02(日) 01:42:10.80ID:vzdMzxCD>>721はCで書かれてる
読みやすいほうを見ればいい
0723デフォルトの名無しさん
2014/11/02(日) 10:21:52.70ID:Yg+lSdfpありがとう
0724デフォルトの名無しさん
2014/11/03(月) 14:50:42.22ID:lZeoQ+FBワイのmingwさんが訳わからんぞボケ言うとるわ
http://www.ys-labo.com/pic/pic%20chips/pic%20chips%20contets/2007/070401%20RS232C%20PC_PIC.html#RS232C 4
0725デフォルトの名無しさん
2014/11/03(月) 14:56:23.15ID:sozpWno6「このプログラムは C++ Buider Ver.6 でかかれています。」だそうで。
0726デフォルトの名無しさん
2014/11/03(月) 15:19:34.61ID:lZeoQ+FBなんや身内ネタかい・・。適当に書き直してみますわ
0727デフォルトの名無しさん
2014/11/05(水) 13:53:36.70ID:m6IG8bnS確保に失敗したって事だからそのあとにデバイスやメモリを開放する処理は100%記述しなくてOKですか?
確保はしてるけどエラーが返ってくるなんて事あります?
0728デフォルトの名無しさん
2014/11/05(水) 14:36:24.56ID:YyHvdJxm解放しても確保できないことはある
0729デフォルトの名無しさん
2014/11/05(水) 15:29:53.05ID:g43hYBD8その時に、他のアプリがクリップボードを使ったり、あるいはユーザーがPrintScreenキーを押したりすると、
私のプログラムが正しく動かなくなります。
ですので、自作プログラム実行中は、クリップボードを占有して利用できるようにして、
かつ、PrintScreenを一切禁止にするか、あるいはPrintScreenキーが押されたら、
自作プログラムでそれをつかまえて対処するなどをしたいのですが、
そういうことは可能でしょうか?Windows7 pro 64です。
0730デフォルトの名無しさん
2014/11/05(水) 15:34:58.72ID:Fpn6fvq+メモリーは大抵大丈夫だけど、デバイスはドライバー次第
でもできることは再度オープンし直す位だから、あまり気にしてもしょうがない
ログとか、エラーメッセージをきちんとだすことに注力した方がいいと思う
0731デフォルトの名無しさん
2014/11/05(水) 15:37:47.03ID:Fpn6fvq+可能だと思うけど、クリップボードってユーザーが意識して使うものだから、勝手に占有するような迷惑なプログラムを作るなよ...
0732デフォルトの名無しさん
2014/11/05(水) 16:00:35.31ID:g43hYBD8占有すると行っても、時間的には20秒くらいの期間です。
>可能だと思うけど、
具体的なやり方、分れば教えて下さい。
0733デフォルトの名無しさん
2014/11/05(水) 16:29:45.41ID:jWIAFUkN質問の答としては、仕様上クリップボードの変更を阻止したいならOpenClipboardで良い。
MSDN曰く「クリップボードをオープンし、他のアプリケーションがクリップボードの内容を変更できないようにします。」
だけどまず、「私のプログラムが正しく動かなくなります」の原因を特定して直すべきだと思う。
そうすりゃそんな変なことする必要はない。
0734デフォルトの名無しさん
2014/11/05(水) 16:36:11.89ID:XPxSL9Pkそういえば昔のOfficeのクリップボードがめっちゃ迷惑だったわ
0735デフォルトの名無しさん
2014/11/05(水) 16:37:13.17ID:g43hYBD8情報ありがとうございます。
OpenClipboardを調べてみます。
>「私のプログラムが正しく動かなくなります」の原因
は分っています。クリップボードに情報を読み書きして
いるので、他のプログラムが内容を変更すると
おかしくなるのです。
0736デフォルトの名無しさん
2014/11/05(水) 16:49:12.78ID:RlZYfNIAアプリのローカルなデータに書いて最後に書き出せばいいだろ……
思いつくのはクリップボードを使用する他のツールの自動化くらいか
0737デフォルトの名無しさん
2014/11/05(水) 17:36:49.47ID:g43hYBD8で占有できたようです。上手く行きました。
有難うございました。
0738デフォルトの名無しさん
2014/11/05(水) 18:06:05.72ID:Fpn6fvq+> クリップボードに情報を読み書きしているので、他のプログラムが内容を変更するとおかしくなるのです。
クリップボードを一時ファイルみたいに使ってるってことか?
クリップボード使う意味がわからん
0739デフォルトの名無しさん
2014/11/05(水) 18:38:49.89ID:O9Y7wxsf自分で使う限りは問題ないだろうし。
もし他の人にも使用してもらうつもりなら「このソフト使うとクリップボードがおかしくなる」という不具合を報告されるだけだろうから。
0740デフォルトの名無しさん
2014/11/05(水) 19:25:44.10ID:ukUrXV5v0741デフォルトの名無しさん
2014/11/05(水) 19:54:37.56ID:LB9Ny9zJ設計見直したら?
0742デフォルトの名無しさん
2014/11/05(水) 21:03:26.65ID:Fpn6fvq+> 考えられるのは既存ソフトのペースト機能つかった自動化ソフト
なら、ブロックしてどうするねんだし
> ウィルス的ソフトの類だろ
やっぱりこれかな
0743デフォルトの名無しさん
2014/11/05(水) 21:29:17.30ID:Q1wayxmpクリップボードにアクセスするなら
占有しないとダメだろ
0744デフォルトの名無しさん
2014/11/06(木) 00:52:51.88ID:PsvQS0pQ>>737は何してんだろな
0745デフォルトの名無しさん
2014/11/06(木) 10:56:59.24ID:keBB2IB10746デフォルトの名無しさん
2014/11/07(金) 00:33:48.29ID:24nKycB90747デフォルトの名無しさん
2014/11/07(金) 07:44:10.93ID:YwE66nz40748デフォルトの名無しさん
2014/11/07(金) 07:52:00.07ID:u+2F0oww結局グローバル変数が増えてかえって判り難くなることがある
もちろん書き方次第で綺麗に書く方法もあるけど
0749デフォルトの名無しさん
2014/11/07(金) 07:59:09.25ID:WAdI9oxH0750デフォルトの名無しさん
2014/11/07(金) 08:16:44.28ID:kh0pD0TM0751デフォルトの名無しさん
2014/11/07(金) 09:26:08.80ID:panR/oOb0752デフォルトの名無しさん
2014/11/07(金) 10:05:54.41ID:nUR92w6Fwindowごとに構造体を確保してポインタを保持
0753デフォルトの名無しさん
2014/11/07(金) 10:52:07.42ID:24nKycB9イメージ図
http://www.fastpic.jp/images.php?file=6149225757.jpg
0754デフォルトの名無しさん
2014/11/07(金) 10:53:34.29ID:W5U0hLjp0755デフォルトの名無しさん
2014/11/07(金) 10:58:45.75ID:24nKycB9あ、ホンマや・・・ ちょっと吊ってくる
0756デフォルトの名無しさん
2014/11/07(金) 11:26:33.17ID:zqTkHdgn0757デフォルトの名無しさん
2014/11/07(金) 14:10:44.62ID:Ji9punwU0758デフォルトの名無しさん
2014/11/07(金) 14:19:54.18ID:lfJ5/Rhs使えるよ
0759656
2014/11/07(金) 17:44:17.34ID:JiAv1YVdどうやらwaveInProc型のコールバック関数がメインの関数と同時進行しているようです
恐らくこのコールバック関数のおかげで勝手に別のスレッドが立ち上がって動いているのかもしれません
0760デフォルトの名無しさん
2014/11/07(金) 23:32:34.36ID:qmS/EQMiこれを参考に仮想デスクトップを作ろうと思ってるんだけど元のデスクトップ
にあるウィンドウをもう一つのデスクトップに送る所の仕組みがわからない。
教えてください。
0761デフォルトの名無しさん
2014/11/07(金) 23:57:53.30ID:TJsXBBzp0762デフォルトの名無しさん
2014/11/08(土) 06:50:42.55ID:F238qiEhウィンドウをD&Dで動かすのをエミュレートしているっぽいような。
超雑に流し見しただけなので勘違いの可能性大。
0763デフォルトの名無しさん
2014/11/08(土) 09:32:12.27ID:3dfXBQLl0764デフォルトの名無しさん
2014/11/09(日) 03:48:10.36ID:Bt9f9JFwwaveファイルに記録したいのだが
ググって見つかるのはmic入力を
録音する奴ばかりなんだけれど、
再生中の音声を録音するc++のサンプル
どこかに有れば教えて欲しい。
0765デフォルトの名無しさん
2014/11/09(日) 04:11:54.04ID:O+ZQ6aB5・なんていうソフトで再生し
・どのサウンドデバイスで再生している
のか定まらないとどうしようも無いんじゃなかろうか
0766デフォルトの名無しさん
2014/11/09(日) 04:56:47.17ID:Bt9f9JFwレス有難うございます。
なるほど。
録音したいのはらじるやラジコなので、規定の再生デバイス(?)で
いいのかな?
0767デフォルトの名無しさん
2014/11/09(日) 05:23:48.29ID:q0q68Vhkそうでない場合はステレオモニタを再現する擬似サウンドドライバ入れたり、
録音したいアプリ側を改造したりする必要がある。ていうか違法目当ては帰れ。
0768デフォルトの名無しさん
2014/11/09(日) 05:28:59.41ID:Bt9f9JFwレス有難うございます。
大変参考になりました。
>違法目当
どのあたりが違法ですか?
らじる聴いている時にちょっとトイレで席外す時に10分くらいの間
録音しておきたいのですが。
0769デフォルトの名無しさん
2014/11/09(日) 07:59:11.70ID:5CcElDxt内部ミキサーから入力するように変える
0770デフォルトの名無しさん
2014/11/09(日) 08:02:10.43ID:5CcElDxthttp://dynabook.com/assistpc/faq/pcdata/009723.htm
0771片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/11(火) 18:26:00.20ID:BG7z5JjJ0772片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/11(火) 18:35:41.22ID:BG7z5JjJ0773片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/11(火) 19:10:39.22ID:BG7z5JjJこれは科学者向けの機能が詰まったOSとなる。
0774片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/11(火) 19:26:53.14ID:BG7z5JjJ0775デフォルトの名無しさん
2014/11/11(火) 20:18:23.33ID:BG7z5JjJ0776デフォルトの名無しさん
2014/11/11(火) 20:31:18.93ID:HcThn5iG0777デフォルトの名無しさん
2014/11/11(火) 21:33:19.07ID:sPIarbCE0778デフォルトの名無しさん
2014/11/11(火) 21:34:05.28ID:+FZC/J3X別スレッド作成し、そこである別の関数Func()を実行するところまでは上手く出来たのですが、
そのFunc()の中でCoInitializeやってCOM関連の処理を入れたらFunc()を実行し
終わった後のスレッドのjoinの処理のあたりでdialogboxが反応なしになって
しまいます。何か解決のヒント有れば教えて下さい。
0779デフォルトの名無しさん
2014/11/11(火) 21:54:29.58ID:g1BOrJo50780デフォルトの名無しさん
2014/11/11(火) 22:00:41.55ID:Q0YP3r9c0781デフォルトの名無しさん
2014/11/16(日) 05:13:56.30ID:VM9qJfXzどうすればいいでしょうか
Findwindowでウィンドウハンドルを取得して送信したもののうまくいきませんでした
Win32初心者です よろしくお願いします
0782デフォルトの名無しさん
2014/11/16(日) 06:02:41.33ID:VM9qJfXz草不可避
0783デフォルトの名無しさん
2014/11/16(日) 08:18:54.93ID:lR2mulvd0784デフォルトの名無しさん
2014/11/17(月) 17:36:51.66ID:YUWmI/Qthttp://www.oshiete-kun.net/archives/2012/10/post_1210.html
0785デフォルトの名無しさん
2014/11/17(月) 19:22:07.27ID:JwoO3TSc0786デフォルトの名無しさん
2014/11/18(火) 01:59:32.41ID:a2yegtxzSetWindowSubclassでサブクラス化した後はRemoveWindowSubclassをしなければいけませんが、
RemoveWindowSubclassをサブクラスプロシージャのWM_DESTROYで実行すると問題はありますか?
0787デフォルトの名無しさん
2014/11/18(火) 02:02:15.90ID:5SkfsGvC0788デフォルトの名無しさん
2014/11/18(火) 03:44:08.35ID:dTS5KRdo0789デフォルトの名無しさん
2014/11/18(火) 04:12:57.06ID:5SkfsGvCどういうことだよ。
Win32APIに有る関数をWin64で使ったら、
64ビットプログラムは、32ビットのAPIを呼び出すのか?
よくわからん。
0790デフォルトの名無しさん
2014/11/18(火) 04:22:55.47ID:IW7vhl2Hってことじゃないの?
0791デフォルトの名無しさん
2014/11/18(火) 06:04:39.89ID:e1BcnSabWM_NCDESTROYでやれと書いてあるが
http://blogs.msdn.com/b/oldnewthing/archive/2003/11/11/55653.aspx
0792デフォルトの名無しさん
2014/11/18(火) 10:03:07.06ID:jY5bJ43+WOW64
0793デフォルトの名無しさん
2014/11/18(火) 10:15:10.90ID:/aEHbgmjWin32APIに部分的にパッチ当てたような感じ
関数ごとのドキュメントにWin64での注意書きがあるよ
要点だけ押さえればリンカとマクロやエイリアスでほとんど吸収されて同じように使える
0794デフォルトの名無しさん
2014/11/18(火) 12:40:57.40ID:osnYdgi2Win64API はitanium 用のAPIの名前(だった)
>Win32APIに有る関数をWin64で使ったら、
>64ビットプログラムは、32ビットのAPIを呼び出すのか?
逆。32bitプログラムが呼び出すとwow64が64bit 版を呼び直す。
0795デフォルトの名無しさん
2014/11/18(火) 15:22:45.49ID:g+UUiVx9何を64ビットにするんだろう
正直、メモリ確保に代表されるアドレスとサイズだけ64で受け付けるだけで充分
再コンパイルで対応が終わる世界
どす切り捨てじゃないんだし
0796デフォルトの名無しさん
2014/11/18(火) 15:42:02.62ID:IW7vhl2Hってのがまぎらわしいんだよね
0797デフォルトの名無しさん
2014/11/18(火) 15:58:46.86ID:B5/xScPcSystem32 フォルダに 64bit 用バイナリ
WOW64 フォルダに 32bit 用バイナリがある
さらに 64bit アプリから C:\Windows\System32 を参照すると
C:\Windows\System32 にアクセスしてくれるが
32bit アプリから C:\Windows\System32 を参照しても
C:\Windows\WOW64 を見に行く
0798デフォルトの名無しさん
2014/11/18(火) 16:24:27.64ID:YueNHcW6Program Filesもだな
0799デフォルトの名無しさん
2014/11/18(火) 16:34:48.09ID:a2yegtxzあれでよかったのか心配でハゲそうでした。
ありがとうございました。
0800デフォルトの名無しさん
2014/11/18(火) 16:50:20.84ID:IAkq1r4khttp://msdn.microsoft.com/ja-jp/library/bb427430(v=vs.85).aspx
API呼び出し間で、知らない間に32bitに切り落としてしまったりとかあったりする。
昔からWin32APIでガリガリ書いた経験とか無いと、今一理解し辛いとは思うけど。
以前はDWORDやINTで宣言されていた箇所が、
x64対応にあたってDWORD_PTRやINT_PTRに書き替えられたとか結構あるからねえ。
0801デフォルトの名無しさん
2014/11/18(火) 17:26:40.66ID:DEDp+Jgnバーコード入力なのか、
判定する方法は、
有りますでしょうか?
0802デフォルトの名無しさん
2014/11/18(火) 17:54:58.32ID:JVYtZzDiエスパーァァァ
0803デフォルトの名無しさん
2014/11/18(火) 19:23:12.10ID:kVlsPNtk0804デフォルトの名無しさん
2014/11/18(火) 19:33:30.15ID:YTAZf5ZU0805デフォルトの名無しさん
2014/11/18(火) 23:53:24.64ID:/aEHbgmj0806デフォルトの名無しさん
2014/11/19(水) 00:07:35.85ID:EYHPnhFFソフトウェア側の対応不要で手軽だから結構使われてる。
0807デフォルトの名無しさん
2014/11/19(水) 00:24:18.53ID:BmNmqYGGhttp://fox.2ch.net/test/read.cgi/poverty/1416286592/
0808デフォルトの名無しさん
2014/11/19(水) 01:42:40.34ID:59EEsigKマウスとかキーボードでデバイスごとに入力を区別するユーティリティはたまに見かけるが、
それらと同じことをすれば一応区別する事はできるのかな。
PS/2端子を共有する(キーボートとPCの間にその機器を繋ぐ)形式だとダメか。
キー入力速度が高速かつ一定でバーコードと同じフォーマットの入力の場合をチェックするしか無いかなぁ…
0809デフォルトの名無しさん
2014/11/19(水) 01:46:06.57ID:g3hRCnVeWindowsに出来ないのならアプリ側で区別するのも容易では無いだろう(それぞれのデバイスの仕様を知らなきゃならんだろうし)
0810デフォルトの名無しさん
2014/11/19(水) 02:27:12.36ID:r96OVPNrバーコード入力がキーボード入力と同じメッセージだと、ウインドウプロシージャ側では判断のしようがない。
何か他の情報がないと区別することは無理。
両者が別メッセージで届くのなら、どうにでも区別はできるだろ。
0811デフォルトの名無しさん
2014/11/19(水) 04:12:02.38ID:59EEsigKOSが区別できていてもアクセスする手段がなければ「アプリでも容易に」とは行かないだろ。
最悪、アクセスする手段を提供するドライバを作って入れる所までやらなきゃならん。
>>810
809が言ってるのはドライバレベルでの区別の話のような気がするんだが
0812デフォルトの名無しさん
2014/11/19(水) 06:38:19.95ID:s41rTTKy0813デフォルトの名無しさん
2014/11/19(水) 06:48:55.67ID:D6/+gbodただ、バーコード入力以外受付禁止かどうか確認した方が良さげ。
スキャンがうまくいかなければ直接入力もできますよ的な運用もあるわけだし。
0814デフォルトの名無しさん
2014/11/19(水) 07:22:24.98ID:bISJCM/yaという文字がアプリに来て
それがどのデバイスから来たかなんて
分からないよ
0815デフォルトの名無しさん
2014/11/19(水) 08:08:17.49ID:EYHPnhFF0816デフォルトの名無しさん
2014/11/19(水) 08:18:39.93ID:I9gi/U1mそれのどこが質問の通りなのか小一時間...
0817デフォルトの名無しさん
2014/11/19(水) 09:21:13.24ID:gR9427sqということが前提となってきましたね。
しかしそういった要求はありそうだし、なんか抜け道で判断出来るんだろうね。
0818デフォルトの名無しさん
2014/11/19(水) 12:31:14.94ID:JZ2oYyd9それが一番有望かな
バーコード入力モジュールは最後に改行を送って来ることが多いので
(設定変更出来るタイプなら設定でそうする)
一行を送って来る時間が短いものや
全桁のチェックサムを見れば大体は区別できる
0819デフォルトの名無しさん
2014/11/19(水) 13:13:21.18ID:I7qsRoNLWM_CHAR メッセージが単独で飛んで来るような気がする。
文字入力とキーストロークの両方を判定条件にすれば、区別できないかな。
0820デフォルトの名無しさん
2014/11/19(水) 14:04:34.90ID:wC3DN0FJ0821デフォルトの名無しさん
2014/11/19(水) 14:07:56.38ID:g3hRCnVe0822デフォルトの名無しさん
2014/11/19(水) 17:42:06.22ID:y9r8HbFRバーコードリーダがどういう風にキー入力をエミュレートしているかは機器によるんでないの?
そもそもハードウェアがメッセージを送っているわけじゃないし
専用のデバイスドライバが要らないなら、OS側が発行するメッセージはキーボードと同じになるでしょ。
0823デフォルトの名無しさん
2014/11/19(水) 17:53:05.83ID:JZ2oYyd9http://melpon.org/wandbox/permlink/Skhh3RehsuHjklD7
0824デフォルトの名無しさん
2014/11/19(水) 17:53:19.19ID:I9gi/U1mWM_CHAR って WM_KEYDOWN から TranslateMessage( ) で生成されるみたいだけど?
0825デフォルトの名無しさん
2014/11/19(水) 18:42:57.81ID:P/UsCdtT違う。
そもそもTranslateMessage関数はプロシージャで使用するものじゃない。
WinMain のメッセージループ内で使用して、Message構造体からWM_CHARを生成する。
ざっくり言えば、仮想キーボードコードをキー入力メッセージに変換するために使用する。
直接、メッセージとして処理されるキーストロークメッセージと、変換された結果得られた
キー入力メッセージは全くの別物。
0826デフォルトの名無しさん
2014/11/19(水) 18:49:28.04ID:P/UsCdtT○ 仮想キーコード
0827デフォルトの名無しさん
2014/11/19(水) 19:14:39.21ID:P/UsCdtTサンプルの例だと、av[1]に最初のパラメータ、av[2]に2番目のパラメータ、・・・、以下略
で格納されてる。
av[0]は実行ファイル名、パラメータの数はacの値で取得できる。
0828デフォルトの名無しさん
2014/11/19(水) 19:16:15.60ID:I9gi/U1m何が違うのかさっぱりわからん
プロシージャとか書いてないこと言われてもなー w
て言うか、MSDN 読んで出直してこいよ
0829デフォルトの名無しさん
2014/11/19(水) 19:19:54.61ID:59EEsigKそんな同仕様もないクソ仕様のドライバ入れさせられるバーコードリーダとか勘弁願います。
ていうか、普通のキーボードとして振る舞ったほうが絶対楽だろ・・・
>>825
TranslateMessageがウィンドウプロシージャに渡す前のWM_KEYDOWNから生成するメッセージだから別に間違って無くね?
0830デフォルトの名無しさん
2014/11/19(水) 19:28:19.84ID:P/UsCdtTメッセージを処理するんだよ。
というか、Win32の構造を理解してる奴いないのか?
0831デフォルトの名無しさん
2014/11/19(水) 19:30:14.48ID:QB/q/+7Gバーコードリーダからのキーイベントを全部横取りして、OSのキーボード層にイベントを渡さない。
デバイスを区別できないならば、PS/2インターフェースのレベルで、キーボードをエミュレートしているから無理
0832デフォルトの名無しさん
2014/11/19(水) 19:32:44.52ID:g3hRCnVe0833デフォルトの名無しさん
2014/11/19(水) 19:45:24.29ID:I9gi/U1mだからなんでプロシージャの中の話にするんだよ
バカの癖に上から目線とか笑えるわ
0834デフォルトの名無しさん
2014/11/19(水) 19:51:43.56ID:wC3DN0FJ0835デフォルトの名無しさん
2014/11/19(水) 20:00:34.26ID:P/UsCdtTお前さん一度も、CでWin32のプログラム組んだことないだろ。
アプリがユーザの処理を行うのが、ウィンドゥプロシージャだと言うこと理解してるか?
0836デフォルトの名無しさん
2014/11/19(水) 20:11:06.56ID:8gwX0Lh3メッセージポンプはGetMessage関数。
メッセージのディスパッチはDispachMessage関数。
仮想キーコードのメッセージ変換はTranslateMessage関数。
メッセージループでは、大抵1セットで使われる。
0837デフォルトの名無しさん
2014/11/19(水) 20:16:41.18ID:RX9BziQK0838デフォルトの名無しさん
2014/11/19(水) 20:22:32.07ID:8gwX0Lh3使ったことなかった。
何処が違うんだろ。
0839デフォルトの名無しさん
2014/11/19(水) 20:25:27.08ID:RX9BziQKキュー内に WM_QUITが入るとWM_PAINTが出なくなるので
除去したりとか
0840デフォルトの名無しさん
2014/11/19(水) 20:28:52.49ID:oXOCRAV5だから誰もそんな話してないだろ
勝手にプロシージャとか言い出して自爆するなよ w
面倒だからここでも読んどけ
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms646276(v=vs.85).aspx
0841デフォルトの名無しさん
2014/11/19(水) 22:38:22.35ID:QB/q/+7G二日で改修するように要求された時に応急処置的に使う物だと思ってた。
0842デフォルトの名無しさん
2014/11/19(水) 23:15:55.28ID:rpot8YXTGetMessageはメッセージキューが空だとメッセージが来るまで
帰ってこない。
PeekMessageは空でもブロックしない。
あと、キュー内のメッセージを消さずに、特定のメッセージが
あるかの確認とかできる。
昔だと、メインスレッドで時間のかかる処理をするときに
適度にPeek挟んでメッセージ処理するテクニックとかあったけど
今ならスレッド作るのが普通だな。
0843デフォルトの名無しさん
2014/11/20(木) 03:00:17.79ID:NeVUFuiv0844デフォルトの名無しさん
2014/11/22(土) 19:30:17.22ID:Le0NeUvk死ねよ
0845デフォルトの名無しさん
2014/11/22(土) 19:33:06.33ID:u0/tHX3P0846デフォルトの名無しさん
2014/11/22(土) 21:10:27.28ID:oQref62r0847デフォルトの名無しさん
2014/11/25(火) 11:42:50.01ID:Hgd9KWjHWindowsにデバイスから入力して、それからアプリ側のコールバック関数を実行してくれるまでの、
最低限保証してくれる時間、タイムスライシングの保証時間、といったものはあるのでしょうか?
逆にタイマーをWindowsにレジスト(これもコールバック関数ですが)しておけば、
コールを保証してくれる時間はあるのでしょうか?
0848デフォルトの名無しさん
2014/11/25(火) 11:48:02.25ID:1jwMJAuJ0849デフォルトの名無しさん
2014/11/25(火) 13:18:31.79ID:Hgd9KWjHWinNTの出始めでUNIXを撃破していたころならいざ知らず、
Linux Serverとの戦い中には、その辺のパフォーマンスと保証が無いと負けちゃうのではないかと。
M$DNの中の人とか、突然現れて回答出してくれたりしないかなぁ?
0850デフォルトの名無しさん
2014/11/25(火) 13:21:08.07ID:Fx8Q2PhX詳しくはDDKのドキュメント参照
0851デフォルトの名無しさん
2014/11/25(火) 14:20:52.53ID:/9fLtCNpWindows CE だけどさわりの部分だけ説明があった
2ページ目以降は会員のみご覧いただけますw
0852デフォルトの名無しさん
2014/11/25(火) 14:32:50.86ID:Qz0sLwptそれはスレッドプライオリティの話でちと違うかなぁ
REALTIMEにしてもリアルタイムにはならないかと
0853デフォルトの名無しさん
2014/11/25(火) 14:36:30.46ID:0UX0vxRL0854デフォルトの名無しさん
2014/11/25(火) 15:06:05.45ID:Hgd9KWjHって原則はあるけど、、、
「この時代(←それぞれの時代で)、この時間は保証しないとOSにならないよな」
って基準はあって、
OS会社は自社基準を元にOS作ってる筈ですよね。
0855デフォルトの名無しさん
2014/11/25(火) 15:11:29.25ID:dMEv4AW90856デフォルトの名無しさん
2014/11/25(火) 15:15:23.33ID:Qz0sLwptでこの機能の詳細はDDKのマニュアルの方が良いかも
0857デフォルトの名無しさん
2014/11/25(火) 15:19:01.64ID:Hgd9KWjH逆に言うと、
20ms超えくらいから安定し始めて、
100ms以上ならゼンゼン余裕でOK、といった」感じなのでしょうか。
0858デフォルトの名無しさん
2014/11/25(火) 15:34:11.00ID:dMEv4AW90859デフォルトの名無しさん
2014/11/25(火) 16:15:31.10ID:/j7IQ7/q最終的にユーザモードのアプリケーションに処理が回ってくるまでの最大時間、ということになると、
Windowsのスケジューラが最悪ケースでどのようにタスクを回すのか、を調べればいいのでは。
Advanced WindowsかインサイドWindowsに詳しい話が出てたと思う。
0860デフォルトの名無しさん
2014/11/25(火) 16:19:20.24ID:dMEv4AW90861デフォルトの名無しさん
2014/11/25(火) 17:02:38.15ID:Hgd9KWjH確かにそれが知りたい数値です。
>>860
アプリが異常になったことさえ検知出来れば、異常時処理にぶっ飛ばすからそんなこと良いんだよ。
そうじゃなくて、正常使用のときの、保証時間が知りたいだけです。
0862デフォルトの名無しさん
2014/11/25(火) 17:56:33.50ID:1jwMJAuJじゃあ今すぐ死ねよクソカス
0863デフォルトの名無しさん
2014/11/25(火) 18:28:31.37ID:GdMyLjrk保証できるならリアルタイムOSになるんじゃないの?
でもリアルタイムOSじゃないから保証できないよね?
要求が滅茶苦茶だよ
0864デフォルトの名無しさん
2014/11/25(火) 18:33:48.22ID:mXkdv2Yk無茶っぽくない?
0865デフォルトの名無しさん
2014/11/25(火) 18:46:21.48ID:+auTw7Mtドライバ内部で処理できるようにしてみるとか
0866デフォルトの名無しさん
2014/11/25(火) 20:32:04.74ID:/9fLtCNpそのオーバーヘッド込みで精度とみなすくらいじゃないの
どのくらいになるかは知らね
0867デフォルトの名無しさん
2014/11/25(火) 21:20:52.19ID:oFc8Qvhs0868デフォルトの名無しさん
2014/11/25(火) 23:54:17.20ID:gJKZVwWbCompletely Fair Scheduler(CFS)という公平なものに変わった
CFSでは赤黒木を使って、次に実行するプロセスを決める
決め方には、プロセスの実行時間と優先度を使う
プロセスが実行時間を使い切ったら、一旦停止する
(状態は実行から実行可能へ戻る)
ただし、優先度が1低くなる度に、
実行時間を1.25倍にして計算する
(2低いのなら、1.25^2)
だからプロセス数が数百あっても、
どのプロセスも必ずいつかは実行できるので、公平なのだ
0869デフォルトの名無しさん
2014/11/26(水) 04:07:53.96ID:dntXOEXZ「アプリが異常になった」訳じゃなくて正常動作として「最悪ケースなら(実質)いつまでも戻って来ない」んだろ。
UIが応答なし表示になるとかのは有るが、異常と判断する基準をOS側が提供しないんだから、
処理間隔の異常というものを検知したいなら自分で異常の基準を定義して検出するしかない。
ただ、検出側の処理自体をOSの上で動かすならそれの呼び出し自体が遅れてしまうけどね。
そんな訳で、そういう検出処理をしたいならリアルタイムOSやハードウェアで検出しときましょう。
0870デフォルトの名無しさん
2014/11/26(水) 05:26:14.82ID:xl1zdQ+K保証するのがリアルタイムOS
0871デフォルトの名無しさん
2014/11/26(水) 08:47:57.60ID:HsSUcqtYつ >>854
0872デフォルトの名無しさん
2014/11/26(水) 09:04:58.93ID:NOFH7tkjつ >>862-870
保証しない(できない)OSの「保証した値」を提示しろって無茶言ってるの理解してる?
0873デフォルトの名無しさん
2014/11/26(水) 09:07:35.76ID:HsSUcqtY0874デフォルトの名無しさん
2014/11/26(水) 09:37:36.48ID:dntXOEXZ> 「この時代(←それぞれの時代で)、この時間は保証しないとOSにならないよな」
> って基準はあって、OS会社は自社基準を元にOS作ってる筈ですよね。
そんなものはない。UIが応答なし表示になる時間などは各種タイムアウト値があるが、
どんなスケジューリングでも最大で(タイムスライス×同等以上の優先度を持つスレッド数)は待たされる。
スレッド数は特に制限がない上にドライバ等より高い優先度を設定している奴も居るので実質ほぼ無制限。
>>873
UIが応答なし表示になる時間とか提示したって、それに意味は無いでしょ?
少し似てるが目的に沿わない値が存在してるからといって、目的に沿う値が存在する保障にはならないよ。
>>847の質問は実は>>848で決着している。>>849で言うような目安の話なら>>859と>>860と>>868。
そして明確な値として上限を求めると、特に上限がないという結論に至り>>848の回答に戻ってくる。
0875デフォルトの名無しさん
2014/11/26(水) 10:00:25.57ID:HsSUcqtY>そんなものはない。
>スレッド数は特に制限がない上にドライバ等より高い優先度を設定している奴も居るので実質ほぼ無制限。
スレッド数の限界での時間が知りたいんじゃないんですよね。
想定しているプロセス数で、この程度の遅延が発生したら、
Windowsに障害が発生していると判断して、再起動を要求するというアプリが作りたいだけで。
で、正常に動作しているときは、その応答時間でバーコードとキーボードの判定したいっていうのもあるけど。
で、その上で、
>そんなものはない
と断言されるのが、
M$の中の人とか本だとか、ソースがあるならありがたいソースになるんだけど、
そうじゃないなら、
「リアルタイムOSじゃなければ保障は無い」って何スレも続くってこの上なく、、、(略
0876デフォルトの名無しさん
2014/11/26(水) 10:12:11.64ID:fGJ/K96a0877デフォルトの名無しさん
2014/11/26(水) 10:20:55.05ID:dntXOEXZアホなアプリの暴走次第では想定しているプロセス数とか一瞬で突破するしそんな前提そもそも設定できない。
Windows自体に障害が発生してスケジューリングに障害が出るとかそれこそその場でハングアップしてオシマイ。
つか、実行までの時間の保証されたタスクを無制限に作れる訳が無いのは小学生でも分かるだろ。
時間の保障を得る仕組みが有るとしたらそれは有限の権利を確保して行うもの以外あり得ない。
一般のスレッドがそんな権利を持ってるわけねーだろ・・・・
「この上なく、、、(略」てなんだ。その略した部分はお前自身に跳ね返る言葉な気もするが、略すなよ。
0878デフォルトの名無しさん
2014/11/26(水) 10:23:09.94ID:HsSUcqtYこいつキベンのヴぁかスギ。
その場合は、エラー処理に鳥羽すって、説明書いてあるだろ?
先ずは自分のこの上ないウザさを知って下さい。
0879デフォルトの名無しさん
2014/11/26(水) 10:35:01.03ID:GB07jGa20880デフォルトの名無しさん
2014/11/26(水) 11:07:18.00ID:fw6y48Bz0881デフォルトの名無しさん
2014/11/26(水) 11:25:43.46ID:HsSUcqtY了解です。数字が分からない今、それでテストしてOKかどうかにします。
>>880
海外メーカーの医療機器って超大手でもWindozばかりだよ?
国内はまだ、ITRONだとか、Linuxだとかで頑張ってたりするけど。
0882デフォルトの名無しさん
2014/11/26(水) 11:29:30.04ID:1fVYxz3Dこいつが自殺したらそれだけでダーウィン賞ものだ
0883デフォルトの名無しさん
2014/11/26(水) 11:43:51.75ID:WCMEKjWn大抵のOSはリアルタイム性妥協することで使い勝手よくなってんだから
メモリのフラグメンテーションもスワップも許さない、
最悪保証アルゴリズムしか使えないとかなったら
そのマシンの持つ能力追求できなくなる
0884デフォルトの名無しさん
2014/11/26(水) 11:45:49.47ID:1fVYxz3Dこいつはそんな話聞いてねえ
黙って嘘を教えればそれでいいんだよ
0885デフォルトの名無しさん
2014/11/26(水) 11:50:50.27ID:WCMEKjWnそしたらなおさらこんなとこで管巻いてないでMSにインシデント使って問い合わせろよ馬鹿
あと医療系多いって言っても事務ソフト除いてEmbedded系だろーが
0886デフォルトの名無しさん
2014/11/26(水) 11:58:58.02ID:HsSUcqtY電源制御とDoz Update制御があるだけで、
中の人は素のDozって知らないの?
0887デフォルトの名無しさん
2014/11/26(水) 12:57:06.05ID:Y564xVkZ> M$の中の人とか本だとか、ソースがあるならありがたいソースになるんだけど、
Advanced WindowsとかインサイドWindowsとかちゃんとソースになるものを提示したけど?
0888デフォルトの名無しさん
2014/11/26(水) 13:42:25.80ID:cap+vDqw0889デフォルトの名無しさん
2014/11/26(水) 14:11:28.83ID:1fVYxz3D0890デフォルトの名無しさん
2014/11/26(水) 14:41:23.77ID:cap+vDqw0891デフォルトの名無しさん
2014/11/26(水) 18:56:32.95ID:JyR9BdoN0892デフォルトの名無しさん
2014/11/26(水) 19:22:38.43ID:iN5Oa4ie程度の差こそあれど
みんな似たようなもん
0893デフォルトの名無しさん
2014/11/27(木) 01:39:26.78ID:isFZ5zeqタスクスケジューリングの計算式を公開しているけど、
M$は情報公開していないから、
Jeffrey Richterを信じるか信じないかの、宗教論争になる
翻訳間違いや誤植があるかも知れない。君は彼を信じられるか?
だから、M$に問い合わせて、金を払う人にだけ、
情報を渡すことで、商売が成立する
ユーザーには無料で使わせて、シェアを上げれば、
情報に課金できる。そういうビジネスモデル
トヨタのように、M$に金を払えば、他社と差別化できる
一方、金を払えない企業は、OSSのLinux,TRONなどを使う
一番手の企業は、金を払えばよいが、
二番手以降は同じ戦略(模倣戦略)を取ると、
一番手の企業を、絶対に抜けなくなる
だから、二番手以降の企業は差別化するか、
下位企業同士で組んで、規模で一番手を上回るか、の二択になる
そうすると、一番手の企業は不利になるため、
模倣戦略(同質化)をとるか、下位同盟を分断してくる
0894デフォルトの名無しさん
2014/11/27(木) 09:13:22.33ID:JBCoFq0U依存させて課金を釣り上げる布石なのだな…
0895デフォルトの名無しさん
2014/11/27(木) 09:20:09.98ID:VJNtlw/hそれでホクホクできるところも・・・
0896デフォルトの名無しさん
2014/11/27(木) 09:41:40.18ID:oxY/sHU5有料化とか値上げが待ってます
0897デフォルトの名無しさん
2014/11/27(木) 12:17:56.04ID:2Ncs6uO+化石みたいだな
0898デフォルトの名無しさん
2014/11/27(木) 13:06:48.00ID:Ywl31YqKsymbolフォントをCreateFontして、カスタムドローでフォント変更を
したけど表示されない。
文字コード0x21〜0x7e辺りなら表示できるけど、改行の0xbfは何かに化けて
しまうんですが、対処方法はないでしょうか?
VCプロジェクトの文字セットを、マルチバイトからunicodeにすれば
いいのかと思いましたが、他の部分の修正量が多いので試していません。
これをやらなければいけないのでしたら、改行マークを諦めます。
0899デフォルトの名無しさん
2014/11/27(木) 14:02:30.25ID:QnPNQERthogeW() で呼べば全部 unicode 化する必要はないよ
0900デフォルトの名無しさん
2014/11/27(木) 15:49:05.11ID:Ywl31YqKリストビューへの追加部分を適当に置き換えてみましたが、変化無しでした。
item.pszText = "\xbf";
SendMessageW(hwnd, LVM_SETITEM, 0, (LPARAM)&item);
詳細は省いてますが、pszTextメンバへの設定方法がよく分かりません。
MultiByteToWideCharで変換してからセットしてみましたが変化無し
(と言うか化けた文字が2文字になった)で、そもそもpszTextがLPTSTR
なので、ちと違う気がしてます。
0901デフォルトの名無しさん
2014/11/27(木) 16:06:00.59ID:uAA7J2EPhttp://ja.wikipedia.org/wiki/リターン記号
0902デフォルトの名無しさん
2014/11/27(木) 16:31:43.46ID:QnPNQERt0903デフォルトの名無しさん
2014/11/27(木) 16:35:52.55ID:QnPNQERtitem.pszText = "\x00\xbf";
SendMessageW(hwnd, LVM_SETITEM, 0, (LPARAM)&item);
これでもだめなん?
0904デフォルトの名無しさん
2014/11/27(木) 16:47:32.99ID:TFRDTSMwLVM_SETITEMWを使えば化けずに表示できたよ。
LVITEMW構造体を使う必要がある事に注意。
ただ、今時はフォントグリフに頼るより>>901の方が正解かと。
0905デフォルトの名無しさん
2014/11/27(木) 16:57:43.58ID:QnPNQERtおめでとう
0906デフォルトの名無しさん
2014/11/27(木) 17:33:33.68ID:Ywl31YqKSymbol使わず無事出来ました!
ありがとうございます!
0907デフォルトの名無しさん
2014/11/27(木) 19:06:01.26ID:YHce4I76リアルタイムOSでもないのにそんな情報にどれだけの価値が有るのかと。考えすぎだ。
ていうかそのビジネスモデルはRedHatとかOracleの方が遥かにアコギにやってるぞ。
>>897
ブラウザ戦争の頃みたいな感じだよな…そういや結局IEは有料化しなかったね。
0908デフォルトの名無しさん
2014/11/27(木) 19:17:29.72ID:OFYoVO0e一体ここ4年くらいは何だったのか
0909デフォルトの名無しさん
2014/11/27(木) 20:31:09.94ID:xreX/0Al0910デフォルトの名無しさん
2014/11/27(木) 23:36:02.34ID:VtF/vuC1リターン記号とキャリッジ・リターンってUnificationされてないんだ…
0911デフォルトの名無しさん
2014/11/28(金) 06:12:47.09ID:31zpnlyJ0912デフォルトの名無しさん
2014/11/28(金) 07:05:24.07ID:TSlIY7mwよそけなすのもお上手だね
0913デフォルトの名無しさん
2014/11/28(金) 09:26:12.05ID:VuGhkjacWin32APIスレで、
>リアルタイム、リアルタイム
って普段使ってないのに書いておいて、
他スレに偉そうに
>価値が有るのかと。考えすぎだ。
って書いてて、
キンモー
0914デフォルトの名無しさん
2014/11/28(金) 09:39:50.99ID:31zpnlyJわからないならレスしないでください
ウザイだけです
0915デフォルトの名無しさん
2014/11/28(金) 09:48:52.28ID:9oizjiTRリアルでな
0916デフォルトの名無しさん
2014/11/28(金) 10:33:21.34ID:31zpnlyJ0917デフォルトの名無しさん
2014/11/28(金) 17:23:55.57ID:4Q/0sUIl残念ながらプログラマはまだ当分「Linuxを使えない人達」の相手をしなきゃならんのだよ
0918デフォルトの名無しさん
2014/11/28(金) 17:33:59.62ID:dYLaj0CI0919デフォルトの名無しさん
2014/11/28(金) 18:05:10.44ID:zx6BULH30920デフォルトの名無しさん
2014/11/28(金) 18:26:08.56ID:8PxrEodW0921デフォルトの名無しさん
2014/11/28(金) 18:30:58.81ID:B+LAgn9V0922デフォルトの名無しさん
2014/11/28(金) 20:01:04.35ID:8rikF3woPC向けでソフト書くなら結局Windowsユーザを無視できなくなるが…
.NETがあるから「Win32API」を覚える価値があるかと言われると微妙かも。
Win32APIにしかない操作でアンマネージド云々とか、
それは面倒だから全部ネイティブとか、そういう時くらい?
>>913
意味分かってないんだねっていうか他スレって何だ、変な幻覚でも見てるのか。
>>916
そういう派生も有るが、本家はLinuxもリアルタイムOSでは無いがな。
0923デフォルトの名無しさん
2014/11/28(金) 20:38:48.22ID:73F3XtIX24時間以内に、というのもリアルタイム
0924デフォルトの名無しさん
2014/11/28(金) 20:50:08.80ID:8rikF3woリアルタイムOSって分類にはそれなりにまともな定義が有るんだよ。
http://e-words.jp/w/E383AAE382A2E383ABE382BFE382A4E383A0OS.html
http://japan.renesas.com/products/tools/os/child/os_overview_child.jsp
http://codezine.jp/article/detail/3702
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
0925デフォルトの名無しさん
2014/11/28(金) 20:59:31.12ID:BzFzdO6B0926デフォルトの名無しさん
2014/11/28(金) 21:02:07.62ID:9oizjiTR0927デフォルトの名無しさん
2014/11/28(金) 21:19:16.46ID:31zpnlyJ2chの貴重なリソースが無駄になる。
0928デフォルトの名無しさん
2014/11/28(金) 21:28:46.63ID:NjfSkzBZいらないと思う人は見に来なければいいだけなんだから
0929デフォルトの名無しさん
2014/11/28(金) 22:02:37.73ID:icrJvefw0930デフォルトの名無しさん
2014/11/29(土) 00:32:35.42ID:VwCgtTmZこの板にまで、荒らしに来るとはw
デル男の悪口ばかり言ってる、この基地外、
名誉き損で逮捕されたらよいのに
0931デフォルトの名無しさん
2014/11/29(土) 07:09:50.56ID:7Vg39hrL0932デフォルトの名無しさん
2014/11/29(土) 07:36:36.10ID:pwVAqDB90933デフォルトの名無しさん
2014/11/29(土) 08:55:09.72ID:Yl4TmGMj0934デフォルトの名無しさん
2014/11/29(土) 12:15:44.28ID:7Vg39hrLでもアッポレOSはWindowsと違って恐怖のiesys.exeとAgentBase.exeに感染しないから、
身に覚えのない誤認逮捕をされないんだお(笑)
0935デフォルトの名無しさん
2014/11/29(土) 12:17:01.52ID:zyNBmUjN逆汗して読めばいいだけじゃん
読む手間がCの10〜100倍かかる程度の違いしかない
DOSの時代はみんな読んでたじゃないか、いつから横着者ばかりになったんだろ
ネットの情報にうつつを抜かして本来やるべきことをやってないだよな俺もだけど
0936デフォルトの名無しさん
2014/11/29(土) 12:50:26.21ID:Osjvz5eZDOS時代だったらシステムコールをおさえるくらいだから10〜100倍かも知れんけど
いまは1万倍超えない?w 俺の技術力が低いのは認めるが
0937デフォルトの名無しさん
2014/11/29(土) 13:49:19.16ID:tRG4REso0938デフォルトの名無しさん
2014/11/29(土) 14:52:37.50ID:vgic/WS8今の方が遥かに楽だな。
使える道具が当時とは比べ物にならないくらい強力。
コンパイラが吐いたコードは定型文の塊だから、
逆汗ツールがAPIコールの引数まで全部拾ってきてくれるし。
0939デフォルトの名無しさん
2014/11/29(土) 14:52:42.16ID:5ryFjzxG0940デフォルトの名無しさん
2014/11/29(土) 15:24:25.40ID:HRpCUWwf0941デフォルトの名無しさん
2014/11/29(土) 19:05:53.56ID:H7nG43zBvirtualがポインタ経由になるから、ピンポイントで調べるなら逆汗でなくトレースのほうが楽
0942デフォルトの名無しさん
2014/11/30(日) 04:23:50.25ID:B2VgLsUL0943デフォルトの名無しさん
2014/11/30(日) 10:37:42.80ID:dOLRu3ch0944デフォルトの名無しさん
2014/11/30(日) 10:42:22.03ID:nOpZCiXZ0945デフォルトの名無しさん
2014/12/01(月) 08:25:57.74ID:guOSxUv10946デフォルトの名無しさん
2014/12/01(月) 15:10:39.33ID:q7F8Vl1K0947デフォルトの名無しさん
2014/12/01(月) 15:18:53.71ID:k/0vFpdT0948片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/12/02(火) 20:00:59.02ID:LvbUvIOq0949デフォルトの名無しさん
2014/12/02(火) 20:06:51.64ID:vKs1f4b20950片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/12/02(火) 20:17:19.36ID:LvbUvIOq0951デフォルトの名無しさん
2014/12/02(火) 20:35:43.16ID:LvbUvIOq0952片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/12/02(火) 20:59:47.81ID:LvbUvIOq知らなかった!
0953デフォルトの名無しさん
2014/12/02(火) 21:37:09.47ID:bMZolPlQ自分で作ったソフトのテストってどんな感じでやってますか
公開する/しない、バグったらやばい/そうでもない、とかで変わるかと思いますが
めんどくさいんだよなあ、テスト
0954デフォルトの名無しさん
2014/12/02(火) 21:43:27.14ID:LvbUvIOqチェックが必要な箇所にassertを書いてひととおりデバッグ実行。
単体テストを書いて機能ごとにテスト。
0955デフォルトの名無しさん
2014/12/03(水) 07:37:00.35ID:a2eWT4Vm他のプロジェクトでも使えそうな機能は最初から分離しておいて機能毎にテスト
プロジェクト特有の動作は機能追加毎にテスト
競合する機能の場合はそのグループの機能が全てできてから再テスト
でよくね?
0956デフォルトの名無しさん
2014/12/03(水) 09:58:20.33ID:3JSuoVx9仕様考えながら色々やってるときにテスト書くのも良い
0957デフォルトの名無しさん
2014/12/03(水) 11:50:55.80ID:VV6MKLd8フォーム系でデータ壊したりする箇所は目を血走らせるけど
ユーザーマニュアルをしっかり書くとテストすべき項目もはっきりしてくる
0958デフォルトの名無しさん
2014/12/03(水) 19:48:34.25ID:3JSuoVx90959デフォルトの名無しさん
2014/12/03(水) 21:21:18.98ID:Nc/E++OR0960953
2014/12/03(水) 21:36:09.80ID:CoU55iMQみなさんテストフレームワークとか使って、ちゃんと単体テストされてるんですね
本当はテスト書いた方がいいんだろうなと思いつつ、
単体はデバッガ使って限界値系のテストだけにしようかなと
全体のテストはユースケースでも整理して、それごとにデータ作ってやろうかな
AをやってからBをやるとバグるとかは、めんどくさいからユーザーからのエラー報告を待つとしよう
0961デフォルトの名無しさん
2014/12/03(水) 23:27:42.17ID:WRoQBeepどうも上手くできないな
0962デフォルトの名無しさん
2014/12/03(水) 23:33:19.58ID:fPpGIPtv0963デフォルトの名無しさん
2014/12/04(木) 14:09:41.02ID:FtZQow+Z0964デフォルトの名無しさん
2014/12/05(金) 00:38:48.81ID:sLsoQ3P2Heap32ListFirst(),Heap32First(),Heap32Next()等を使っては他の
ターゲットプロセスのヒープのアドレスやらサイズは確認出来たんですが、
ちょっと不安定なもので、そこでHeapWalk()を使ってみたいのですが、
デフォルトプロセス(自己プロセス?)での使用方法しか見つけられず
困ってます。
0965デフォルトの名無しさん
2014/12/05(金) 00:47:34.51ID:TK9vw08w他のプロセスに潜り込んで使用することはできる
CreateRemoteThreadの使い方を知れば自ずとできるようになる
0966デフォルトの名無しさん
2014/12/05(金) 00:49:22.91ID:TK9vw08w文献はAdvancedWindowsを読め
またはググれ
0967デフォルトの名無しさん
2014/12/05(金) 22:57:40.26ID:sLsoQ3P2取っ掛かりが無かったので助かりました。
0968デフォルトの名無しさん
2014/12/08(月) 21:10:59.33ID:8Z8H9bR3ImmGetCandidateList(ImmGetCandidateListCount)使えないの?
0969デフォルトの名無しさん
2014/12/08(月) 21:36:54.39ID:idZHWDVcIME (Input Method Editor) と Text Services Framework のアクセシビリティ
http://msdn.microsoft.com/ja-jp/library/cc421572.aspx
Text Services Framework について
http://msdn.microsoft.com/ja-jp/library/ms538047%28v=vs.85%29.aspx
0970デフォルトの名無しさん
2014/12/08(月) 21:59:10.14ID:8Z8H9bR3情報サンクス
よく読んでみる
0971デフォルトの名無しさん
2014/12/09(火) 13:05:19.12ID:g1fAS7xT0972デフォルトの名無しさん
2014/12/09(火) 15:32:03.40ID:n+vQrxZrプルダウン中に日付を変更したときにDTN_DATETIMECHANGEが来ます。
この際、指定した日付範囲を超えていたら警告メッセージボックスを表示したいのですが、
メッセージボックス表示の直後にDTN_DATETIMECHANGEがまた飛んできてメッセージボックスが表示、
以降ずっとメッセージボックス増殖の憂き目に遭います。
これはWinXPで確認される現象で、Win8では起こりません。Win8ではDateTimePickerのプルダウン表示が
メッセージボックス表示時に消えるためです。XPではプルダウンされたままです。
この問題を回避するため、WinXPでメッセージボックス表示のタイミングでDateTimePickerのプルダウン
を止めさせたいのですが、何か方法は無いですか?
0973デフォルトの名無しさん
2014/12/09(火) 15:41:56.48ID:OycEn0400974デフォルトの名無しさん
2014/12/09(火) 16:06:15.85ID:y0p4ekDeメッセージボックス表示中
0975デフォルトの名無しさん
2014/12/09(火) 16:45:43.53ID:n+vQrxZr優先されて解決できません。WM_NEXTDLGCTLももちろんダメ。
そもそもはDTN_DATETIMECHANGEを一旦処理終了させないとダメみたいです。
サブクラス化している場合だと、DefSubclassProcなりCallWindowProcなり
使えば解決できそうな部類ですが、ダイアログプロシージャの場合は
代替APIはないでしょうか?
これがない場合、一旦WM_APPでも投げて再処理するしか無さそうですね。
0976デフォルトの名無しさん
2014/12/09(火) 16:55:48.95ID:BrhrENT40977デフォルトの名無しさん
2014/12/09(火) 16:58:23.57ID:n+vQrxZrしかし使い方が悪いのか、これでは解決できませんでした。(沈黙の後落ちる)
WM_APPを投げてとりあえず永久ループは回避できましたが、なぜか
DTN_DATETIMECHANGEがもう一回だけ余計に飛んできてしまって
メッセージボックス表示が2回されてしまいます。
もっとスマートな実装方法は無いものか・・・・・
0978デフォルトの名無しさん
2014/12/09(火) 16:59:14.30ID:n+vQrxZrああ、そうか。単にフラグで多重表示制御できますね。
ありがとうございました。
0979デフォルトの名無しさん
2014/12/09(火) 17:11:12.62ID:TNRufxvyこういうことってあるのか
大変だな
0980デフォルトの名無しさん
2014/12/09(火) 17:16:29.62ID:g1fAS7xT.NETでもプロパティ一発で設定できると思うんだが
0981デフォルトの名無しさん
2014/12/09(火) 17:24:25.98ID:TNRufxvyhttp://forums.codeguru.com/showthread.php?484321-DTN_DATETIMECHANGE-loop!
0982デフォルトの名無しさん
2014/12/09(火) 18:31:36.52ID:n+vQrxZrまさにその通りです。
>>980
DateTime_SetRangeというのを見つけたので、これでいけそうだと試してみました。
Win8では選択できないところは見えなくなっているので、これはこちらの方がいい感じですが、
WinXPでは選択できないもののカレンダーは見えているので、単にクリックしても無反応
なだけになってしまい、仕様を知らないユーザーからするとなんで無反応なのか
分からずバグ扱いしてきそうなUIになってしまいました。
>>976
フラグ制御してみましたが、>>977と同じような挙動になってしまいました。(メッセージボックス2回表示)
0983デフォルトの名無しさん
2014/12/09(火) 18:51:35.15ID:3Aq4S10cそれは業界全体の悲願
クラウド、アプリケーションサービスは、仕様を押し付けるために推進している側面や、
テストをせずにリリースし、バグや不具合が出たら直ぐに隠せるから開発サイドが喜ぶんだよ
これをウインウインと洗脳できるまでクラウドを推進するぜ!
0984デフォルトの名無しさん
2014/12/09(火) 18:59:59.99ID:1aP9Ikf9>>>976
>フラグ制御してみましたが、>>977と同じような挙動になってしまいました。(メッセージボックス2回表示)
フラグ変更するタイミング間違ってんじゃないの?
メッセージボックス表示が原因でループしてるなら、正しくフラグ管理すればできるはずだけど。
さもなければ、メッセージループはメッセージボックス関係ないってことになる
0985デフォルトの名無しさん
2014/12/09(火) 19:14:10.30ID:n+vQrxZrそう思って色々追いかけましたが、DateTimePickerで日付を変更すると、
WinXPではDTN_DATETIMECHANGEが2回来てしまいます。
メッセージボックス云々は本質的に関係ない気がしました。
ちなみにWin8では1回しか来ません。
case IDC_DATE:
if (lpstNmHdr->code == DTN_DATETIMECHANGE && !bShowMsg) {
// DateTimePickerから日時を取得
SendDlgItemMessage(hwnd, IDC_DATE, DTM_GETSYSTEMTIME, 0, (LPARAM)&date);
※ログ出力埋め込み
if (日付判定でOK) {
何らかの処理;
// NG処理
} else {
bShowMsg = TRUE;
MessageBox(hwnd, "ダメヨダメダメ", "error", MB_OK);
日付を本日に戻す
bShowMsg = FALSE;
}
}
ログを出してチェックしましたが、なんで2回来るんでしょう?
MessageBoxやbShowMsgフラグを削除してももちろん変わりありません。
数ms以内の連続処理は受け付けないという処理でも入れたらいいのかな。
0986デフォルトの名無しさん
2014/12/09(火) 19:44:31.71ID:QNQd8y8TMessageBoxが表示されるのって
MessageBoxを閉じてもまた次のMessageBoxが表示されるって事?
それともMessageBox表示中に、またさらにMessageBoxが表示されてしまうって事?
ループって事は前者だと思うんだけどあってる?
0987デフォルトの名無しさん
2014/12/09(火) 19:47:38.25ID:g1fAS7xT処理継続させたいのにいちいち閉じなきゃいけないメッセージボックスはうざいしUIとしてもよくないと思う
0988デフォルトの名無しさん
2014/12/09(火) 20:59:08.64ID:QNQd8y8Tたぶんカレンダー自体の更新で1回、エディタでの更新(もしくはカレンダーを閉じる)でもう1回送られる感じ。
さて考える・・・
0989デフォルトの名無しさん
2014/12/09(火) 21:08:51.57ID:TNRufxvy0990デフォルトの名無しさん
2014/12/09(火) 21:21:04.62ID:h4M6D/xp0991デフォルトの名無しさん
2014/12/09(火) 21:28:17.00ID:QNQd8y8Tなぜ読まない
0992デフォルトの名無しさん
2014/12/09(火) 21:41:17.22ID:QNQd8y8TDTN_DATETIMECHANGE が来たら記憶していたものと比較
同じなら何もしない、違っていたら if (日付判定でOK) {} else {} に進むってやるかな
けど同じ日付を選択してもNGならメッセージを出したいってことは出来ないけど。
対策としては 「数秒以内は前回と同じ日付か確認し(以下略」とか。
0993デフォルトの名無しさん
2014/12/09(火) 21:49:05.26ID:vrPuSZebあれで良いんじゃないの?
0994デフォルトの名無しさん
2014/12/09(火) 22:03:00.10ID:n+vQrxZr素で組むと後者、これを抑制するために多重表示フラグを入れて前者、
という感じになります。
試行錯誤を繰り返しましたが、>>985のように制御した場合、
カレンダーの特定日付を選んだ場合は2回表示で治まりますが、
月を変更した場合(「<」「>」部分)だと、メッセージボックス
を表示中に後ろでどんどんカレンダーのみ切り替わって永久ループになります。
>>987
設計思想にもかかわってきますが、ツールチップは使わない方向で
作っています。フリーソフトならもっと簡潔にまとめたいと思いますが、
自分のミスで操作してるの疑わない人が相手だったりしますので、
あえて面倒な確認メッセージ表示にしています。
>>988
Win7でも2回ですか。情報ありがとうございます。
XPだけかな〜と漠然と思ってましたが、もうちょっと本腰入れて対応してみます。
0995デフォルトの名無しさん
2014/12/09(火) 22:04:52.85ID:n+vQrxZrまさに今その日付判定を行ってみたところですが、>>994の現象になってしまいました。
裏でころころ変わる日付がどんどん送られてしまいました。
>>993
探してみます。
0996デフォルトの名無しさん
2014/12/09(火) 23:09:19.49ID:/gO7PMz60997デフォルトの名無しさん
2014/12/09(火) 23:10:19.85ID:TNRufxvyあー見落としてた
スマソ
0998デフォルトの名無しさん
2014/12/10(水) 02:41:31.39ID:Cx1UTlfb0999デフォルトの名無しさん
2014/12/10(水) 06:45:40.51ID:+NCizlQY1000デフォルトの名無しさん
2014/12/10(水) 06:47:02.31ID:+NCizlQY10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。