■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build50
751
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:13:36
>>749
っ #define
でも、複数人で開発する時にこれをしたら吊ってもらう
752
名前:
749
:2007/03/13(火) 19:17:50
>>751
そうじゃなくて、受け取ったメッセージを表示するプログラムなんですが
メッセージIDで表示しても、なんのメッセージかわからないんで文字列名称に変換したいんです。
753
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:24:27
>>749
grep "#define WM_" winuser.h | awk 'printf "{%s, \"%s\"}\n", $2, $2'
後は検索できるように構造体およびリスト作成
754
名前:
749
:2007/03/13(火) 19:26:38
>>753
結局は手作業で変換するしかないってことでしょうか?
結構誰でも思いつきそうな機能なのでそんなAPIないかな〜と思ったんですが
755
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:32:41
そういうAPIもあるけど教えない。言わない。書かない。
756
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:41:24
どうやら態度が気に入らないと言ってるらしいぞ
757
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:49:22
質問です。
タスクマネージャの様に各プロセスのメモリ使用量やGDIオブジェクトを知りたいのですが
どうやれば良いんですか?
758
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:49:36
今から755のご機嫌をとるスレになります
759
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:53:06
>755
のご機嫌を取るAPI教えてください
760
名前:
デフォルトの名無しさん
:2007/03/13(火) 19:56:10
TerminateProcess
761
名前:
749
:2007/03/13(火) 20:01:37
自己解決しました。
>>755
にカチンときたので教えません。
バーカ!
762
名前:
デフォルトの名無しさん
:2007/03/13(火) 20:02:50
>>758
流れ読むの面倒くさいから聞いちゃう。
>>755
は何に対して発言しているのですか?
763
名前:
デフォルトの名無しさん
:2007/03/13(火) 20:11:25
>>753
文字列化演算子でいいんじゃね? スレ違いだけど
764
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:16:06
ファイルパスとして妥当であるかを調べるAPIってありませんか?
765
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:26:33
PathGetCharTypeでぐるぐる回す?
766
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:45:59
Vista時代になったらDirect3Dとかも覚えないと
もうWindowsプログラマとして食べていけないんだろうか
GDIは全部エミュレーションになって激遅らしいじゃん
既存のGUI業務アプリの全Direct3D化なんて言われたら
自殺するしかない
767
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:46:47
糞ビスタ
768
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:48:20
きっと適当なラッパーが登場して万事おk
769
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:50:26
CUIアプリしか作らない俺には縁のない話だぜ
770
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:52:33
>>766
それほど深刻じゃないみたいよ。
ヒマみて.NET Framework 3.0にでも手をだすたら?
771
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:54:49
>>766
http://www.microsoft.com/japan/msdn/windowsvista/top10/
こっからしらべていってみ
772
名前:
デフォルトの名無しさん
:2007/03/13(火) 21:58:19
WPFとXNAの相性が悪すぎるのがなぁ・・・
773
名前:
デフォルトの名無しさん
:2007/03/13(火) 22:03:20
WinFXの話題があがったから、ここの住民に聞くけど。
Microsoft Expressionって、元はクリーチャハウスのアレなのか?
こいつが、Flashキラー?
どんな経緯なんだよ!!
774
名前:
デフォルトの名無しさん
:2007/03/13(火) 22:46:43
パフォーマンスチューニングなんて飾りです
顧客には#ifdef切り替えてるだけなのが判らんのですよ
775
名前:
デフォルトの名無しさん
:2007/03/13(火) 22:47:19
ごばく だぜ
776
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:20:27
低レベルな質問で申し訳ありませんが・・・
CreateWindowEx でウィンドウ表示をするとき、HINSTANCEで本物を渡すのをズボラして
NULLを渡しても問題ないんでしょうか?
HINSTANCEは、関数が要求するときに渡すためだけにある数合わせ程度の引数でしかない、
とそういう認識をしているのですが(本当はアプリを区別するためみたいだけど)
試しにCreateWindowExでNULLを入れてみたらウィンドウ自体はちゃんと出てしまったものですから
デフォルト値としてゼロを与えるようなコードを書いちゃってもいいものかと悩んでしまいまして・・・
777
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:26:24
>>776
問題ありです
悩む暇があったら
HANDLE GetCurrentProcess(VOID)
を使って下さい
778
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:27:35
わかりました。ありがとうございます
779
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:29:55
え?なんでGetCurrentProcessなわけ?
780
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:36:16
hInstance
Windows 95/98:ウィンドウに関連付けられたモジュールのインスタンスハンドルを指定します。
Windows NT/2000:このパラメータは無視されます。
781
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:41:16
>>779
楽だから
782
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:48:06
俺はGetWindowLong派
783
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:48:55
むしろstatic HINSTANCE hInstanceとLPCREATESTRUCTでだなwwwwww
784
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:49:48
>>782
ニワトリが先か卵が先かってやつだなw
785
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:52:26
オレの場合、どっかのサンプルコードにあった
GetModuleHandle
使ってるけど、これってまずい?
786
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:52:42
楽だからってプロセスハンドル渡すのはどうなのか
787
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:53:32
プロセスハンドルとインスタンスハンドルってまったく別アドレスに格納されてるんじゃ枚か?
788
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:57:01
int main(){
printf("%x\n", GetCurrentProcess());
printf("%x\n", GetModuleHandle(NULL));
}
ffffffff
400000
789
名前:
デフォルトの名無しさん
:2007/03/14(水) 00:57:45
>>777
は間違ってるよね?
GetModuleHandle に NULL 渡すのがいいよね?
790
名前:
デフォルトの名無しさん
:2007/03/14(水) 01:58:18
LoadIcon で試してみた
GetCurrentProcess() 失敗
GetModuleHandle(NULL) 成功
引数が無視される場合は関係ないが
どっちにしても GetModuleHandle(NULL)
にしておけば問題ないと思った
791
名前:
デフォルトの名無しさん
:2007/03/14(水) 01:59:30
GetCurrentProcessとGetCurrentThreadが返すのは擬似ハンドルだよ。
792
名前:
デフォルトの名無しさん
:2007/03/14(水) 02:22:09
そもそもいまごろ9xまでサポートしなければならないのか?
793
名前:
デフォルトの名無しさん
:2007/03/14(水) 05:03:01
業務用アプリなら仕方がないのかもね
個人向けなら普通に切り捨てるけど、
そもそもサポートが打ち切られた9xが入ったPCを
ネットに繋げてるだけでもはや公害だし
794
名前:
デフォルトの名無しさん
:2007/03/14(水) 05:14:36
しばらく前に、中小企業のエンドユーザのとこに行ったら
9Xが現役で動いていて、自分がずーと前に携わったPGの
ショートカット(その会社とは無関係な製品)がデスクトップ
に張ってあって、涙が出そうになったことある。
795
名前:
デフォルトの名無しさん
:2007/03/14(水) 08:19:34
>>794
会社の導入コスト/教育費...etcの償却やいろいろあるからねー
手間ではあるし。
796
名前:
デフォルトの名無しさん
:2007/03/14(水) 08:27:51
>>785
それは問題ない。Win32のモジュールハンドルとインスタンスハンドルは等価。
普通はWinMainのあの引数にもGetModuleHandle(0)の戻り値が渡されている。
797
名前:
デフォルトの名無しさん
:2007/03/14(水) 08:44:16
>>796
素でしらんかった
798
名前:
デフォルトの名無しさん
:2007/03/14(水) 08:46:53
ってことは、わざわざグローバルとかに hInst って置かなくても
常に GetModuleHandle(NULL) 呼び出しとけばおk?
まさかそんなとこが、クリティカルにパフォーマンス落とすこともないだろうし
799
名前:
デフォルトの名無しさん
:2007/03/14(水) 08:51:23
DLLを作る場合に問題が出る。
800
名前:
デフォルトの名無しさん
:2007/03/14(水) 08:59:15
あー全くその通りでした
ありがとうございます
801
名前:
デフォルトの名無しさん
:2007/03/14(水) 09:11:56
>>794
今年に入って、Win3.1上で動いてるAccessアプリのメンテをする羽目になったぞ。
データを持ち帰ろうとして、ファイルのコピーのやりかたを思い出せず、お客さんに教えてもらったぞ。
802
名前:
デフォルトの名無しさん
:2007/03/14(水) 16:05:12
>>801
vm 上で動作してるんなら別だけど
Win3.1 のデータを持って帰るのって大変そう…
フロッピーだったりしてね
803
名前:
デフォルトの名無しさん
:2007/03/14(水) 18:53:36
>>802
用紙とかw
804
名前:
デフォルトの名無しさん
:2007/03/14(水) 18:55:58
ファイルのコピーって紙のファイルだったのかーーー!!!
805
名前:
デフォルトの名無しさん
:2007/03/14(水) 18:58:47
プログラムマネージャーはエクスプローラーみたいに見えて
ランチャーでしかないからな
ファイルマネージャーを起動しなくちゃw
806
名前:
デフォルトの名無しさん
:2007/03/14(水) 19:37:53
DOS窓叩いた方が早いな
807
名前:
デフォルトの名無しさん
:2007/03/14(水) 19:46:37
そしてlsと叩いてエラーが返ってくる
808
名前:
デフォルトの名無しさん
:2007/03/14(水) 20:09:49
お前らいくらなんでもバカにしすぎだwww
809
名前:
デフォルトの名無しさん
:2007/03/14(水) 20:58:37
Visual C++ 2005 Express Edition ダウソしたんですが、
templete.obj : error LNK2001: 外部シンボル "__imp__DefWindowProcW@16" は未解決です。
WinAPI使おうとするとエラーが出ます。何でですか?
810
名前:
デフォルトの名無しさん
:2007/03/14(水) 21:02:17
Platform SDKかWindows SDK入れろ。
その上でリンカにuser32.libを読み込ませろ。
811
名前:
デフォルトの名無しさん
:2007/03/14(水) 21:06:59
>>809
がMSの手順どおりのセットアップしてないから
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
今回のみ当座の問題として解決するなら
#pragma comment(lib, "user32.libウンコ")
をソースに
812
名前:
デフォルトの名無しさん
:2007/03/15(木) 00:53:43
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3750.txt
上の打ち込んだソース中で、WndProc中のWM_SETFOCUSの処理でSetFocus関数によってidFocusのIDを持つウィンドウにフォーカスが移るから
WM_SETFOCUSは二度と送られないと思ったのですが、MessageBoxのあるところにブレークポイントを置くと半永久的にメッセージが送られ続けるのですが、何故ですか?
813
名前:
デフォルトの名無しさん
:2007/03/15(木) 01:21:51
ブレークポイントでストップしたときにアクティブになるウィンドウは何かね。
814
名前:
◆ohD6m3l5jg
:2007/03/15(木) 01:51:56
すみませんWindows板から誘導されてきました。
動的リンクの実装について答えられる方に質問です。
バカみたいな疑問で恐縮ですが、あるDLLが、同じDLL内にある関数(もちろんEXPORTED)を呼ぶ時
LoadLiblary + GetProcAddress を使ったとします(そんな必然性はない事は承知)。
こういうバカコードを実行したら、Windowsは内部的な動作としては、
指定のDLLは(呼び側自身であるわけで)既にロード済みだから、LoadLiblaryは何もせず、
ハンドルだけ返し、GetProcAddressは おとなしく目的の関数のポインタ返してくれるだけで、
ロードのオーバヘッドはかからないように実装されてるんでしょうか?
実際動かしてみたのですが、エラーにはなりませんでした。
815
名前:
デフォルトの名無しさん
:2007/03/15(木) 02:19:29
>>814
その場合、LoadLibrary はそのDLLのリファレンスカウントをインクリメントする。
816
名前:
デフォルトの名無しさん
:2007/03/15(木) 02:22:17
>>814
>LoadLiblaryは何もせず、ハンドルだけ返し
Yes。但し気をつけなきゃいけないのは同一プロセスに既にマッピングされてるDLLをLoadLibrary()しても
参照カウントは増えるのでLoadLibrary()した回数分だけFreeLibrary()しないといけない
>GetProcAddressは おとなしく目的の関数のポインタ返してくれるだけで
>ロードのオーバヘッドはかからないように実装されてるんでしょうか?
こっちはNo。GetProcAddressは自プロセスにマッピングされてるDLLのハンドルから
関数名(あるいは序数)に相当する関数のアドレスをDLLのエクスポートセクションから走査する。
だから単純に関数を呼び出すのとLoadLibrary()+GetProcAddress()を使ったのでは
オーバーヘッドに差が出る。と思う(実際やった事ないので絶対とは言えない)。
817
名前:
デフォルトの名無しさん
:2007/03/15(木) 03:33:58
>>816
静的インポートしても
エクスポートセクションの走査がプロセスの起動時間に埋め込まれるだけでっしゃろ?
818
名前:
デフォルトの名無しさん
:2007/03/15(木) 04:09:47
>>817
静的にDLLをインポートして、EXEからDLLの関数を呼び出す場合は
もちろん内部でLoadLibraryとGetProcAddress呼んでるけど
>>814
が聞きたいのはDLLから自身の関数をGetProcAddress経由で呼んだらって話だと思う。
GetProcAddress経由は
>>816
の通りだけどDLLから自身の関数を参照する時は
>>814
みたいな特殊な事しない限り普通に参照できるものだと思ってる(EXEが自身の関数を参照するのと同じ話)。
あれ、もしかして俺ひどい勘違いしてる?もう寝たほうがいいな。
819
名前:
デフォルトの名無しさん
:2007/03/15(木) 04:15:34
> あるDLLが、同じDLL内にある関数(もちろんEXPORTED)を呼ぶ時
って確かに書いてるね
ごめん見逃してた
820
名前:
デフォルトの名無しさん
:2007/03/15(木) 08:43:04
814の場合もそうだが、既に読み込まれていることがわかっていて、
一時的にハンドルを使いたい(まだFreeLibraryされないことがわかっている)場合は、
GetModuleHandleが便利。
LoadLibraryだと参照カウントがインクリメントされるが、
GetModuleHandleなら参照カウントはインクリメントされない。
821
名前:
デフォルトの名無しさん
:2007/03/15(木) 10:26:02
どうしてオブジェクト指向なwin32apiのプログラムがないですか
822
名前:
デフォルトの名無しさん
:2007/03/15(木) 11:02:36
つ【.NET】
823
名前:
デフォルトの名無しさん
:2007/03/15(木) 11:27:15
>>815-820
の皆さんどうも有難うございました。
824
名前:
デフォルトの名無しさん
:2007/03/15(木) 11:27:32
Win32API はオブジェクト指向だ。
オブジェクトはハンドルという形にはなっているけども
825
名前:
デフォルトの名無しさん
:2007/03/15(木) 11:48:57
あの長ったらしいハンガリアン記法は何とかなりませんか
826
名前:
デフォルトの名無しさん
:2007/03/15(木) 12:14:40
825を変化させるほうがよほど堅実的だな
827
名前:
デフォルトの名無しさん
:2007/03/15(木) 12:57:19
>>810-811
サンクスです。動きましたー
828
名前:
デフォルトの名無しさん
:2007/03/15(木) 18:30:24
環境:WinXP、VisualStudio.NET2005
スクロールバーについて質問です。
editControlHandle_ = CreateWindow(L"EDIT",L""
,WS_CHILD|WS_VSCROLL|WS_VISIBLE|ES_AUTOVSCROLL|ES_MULTILINE|ES_READONLY
,0,0,640,480,WindowHandle(),0,ApplicationInstance(),NULL);
こんな感じでエディットコントロールを作った後
SetWindowText(editControlHandle_, output.c_str());
でそこにテキストを転送しています。
新しいテキストほど下に下に追加されていく、という形にしているので
スクロールバーは常にマックスの状態に保ち、常に一番下の行を表示したいと思っています。
SCROLLINFO si;
ZeroMemory(&si,sizeof(SCROLLINFO));
si.cbSize = sizeof(SCROLLINFO);
si.fMask = SIF_ALL;
GetScrollInfo(editControlHandle_,SB_VERT,&si);
si.nPos = si.nMax;
SetScrollInfo(editControlHandle_,SB_VERT,&si,true);
試しにこのコードで実行してみたところ、スクロールバーは確かに一番下にいくんですが
肝心のエディットコントロールがそれに追随せず、ずっと一番上の行が表示されています。
どこを直せばいいでしょうか・・・
829
名前:
デフォルトの名無しさん
:2007/03/15(木) 18:37:22
EM_SETSEL
830
名前:
デフォルトの名無しさん
:2007/03/15(木) 20:51:31
ぐぐったり晩飯食べたりしながら悶々としてやっと終わりました
SendMessage(editControlHandle_, EM_SETSEL, MAKELONG(0xffff,0xffff)-1,MAKELONG(0xffff,0xffff));
SendMessage(editControlHandle_, EM_REPLACESEL, -1,(LPARAM)newLog.c_str());
SendMessage(editControlHandle_, EM_REPLACESEL, -1,(LPARAM)L"\r\n");
大半のコードを上の三行に書き換えてやっと解決。ヒントくれた
>>829
ありがとう
831
名前:
デフォルトの名無しさん
:2007/03/16(金) 03:10:25
ウィンドウメッセージのパラメータについて質問です。
例えばWM_MOVEメッセージのLParamはシフト演算によってy座標が、
ビット演算によってx座標が取得できます。
なぜこのような演算でxやyの座標が取得できるのでしょうか。
シフト演算やビット演算そのものは分かるのですが、どうしてこのような演算でxやyの値が分かるのでしょうか。
とても初歩的な質問ですが、ご回答願えると幸いです。
832
名前:
デフォルトの名無しさん
:2007/03/16(金) 03:15:09
下位16ビットにX座標、上位16ビットにY座標が入ってるから。
下位16ビットが1、それ以外が0をlParamとの論理積で下位16ビットのみを取り出し、
lParamを右に16ビットシフトすれば上位16ビットのみが取り出せる。
833
名前:
デフォルトの名無しさん
:2007/03/16(金) 03:21:57
>>831
lparamは32ビットのデータ。
一つの変数に2つのデータ(xy座標)を入れる為に16ビットに区切ってデータを入れてる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| || |
|← y座標データ . →||← x座標データ →|
こんな感じ。
834
名前:
デフォルトの名無しさん
:2007/03/16(金) 05:11:07
bit演算分かってたらその逆を考えるっていう自然な手順で結論できそうなものだが…
まぁあれだ、慣れみたいなものが必要かもね
835
名前:
デフォルトの名無しさん
:2007/03/16(金) 07:30:25
HIWORD(x)
LOWORD(x)
でええやん
836
名前:
デフォルトの名無しさん
:2007/03/16(金) 07:35:08
GET_X_LPARAM()とGET_Y_LPARAM()を使わないと、
マイナスの値とか渡ってきたときが痛い目に遭う。
837
名前:
デフォルトの名無しさん
:2007/03/16(金) 07:49:14
EDITコントロールやRICHEDITコントロールにペーストできる限界値ってありますか?
OSはWindows XPです。
838
名前:
837
:2007/03/16(金) 07:53:56
メモ帳には長い文字列もペーストできるのに、
自前のダイアログのEDITやリッチエディットにはペーストできない・・・
839
名前:
デフォルトの名無しさん
:2007/03/16(金) 08:00:50
>>838
エディットは上限を指定出来るじゃん。
CEdit::SetLimitText
840
名前:
デフォルトの名無しさん
:2007/03/16(金) 08:04:29
>>839
それはWinAPIじゃない
841
名前:
デフォルトの名無しさん
:2007/03/16(金) 08:07:04
ありがとう。
やらないか?
842
名前:
デフォルトの名無しさん
:2007/03/16(金) 08:17:35
最大4MBまで
843
名前:
デフォルトの名無しさん
:2007/03/16(金) 08:19:03
>>836
いや、ちゃんと動作分かってたら痛い目見ないからw
その2つのマクロも結局LOWORD&HIWORDですよと
844
名前:
デフォルトの名無しさん
:2007/03/16(金) 08:38:54
メモ帳はエディットコントロールのメモリを直接いじってるから
コントロールの上限こえても大丈夫ぽい
845
名前:
デフォルトの名無しさん
:2007/03/16(金) 09:20:31
"c:\\test.txt"といった文字列を渡して
自前のアプリからExplorerと同じコンテキストメニュー(できれば1・2個メニューを追加して)を表示させる方法を教えてください。
846
名前:
デフォルトの名無しさん
:2007/03/16(金) 10:14:26
>>845
エスパーすぎるわ。
GetSystemMenuとかの話?
847
名前:
デフォルトの名無しさん
:2007/03/16(金) 10:23:36
IContextMenu2,3?
848
名前:
デフォルトの名無しさん
:2007/03/16(金) 11:55:42
ウィンドウ内で右クリックしたとき、[Aを編集する] とか [Bを編集する] とか
そういう項を含んだ右クリックメニューが出てくるようにしたいのではなかろうか。
俺、このエスパー検定準一級に受かったら結婚するんだ
849
名前:
デフォルトの名無しさん
:2007/03/16(金) 12:00:19
エスパーエスパーって
普通に理解できる質問だと思うんだが・・・?
回答はできないが(゚Д゚)
850
名前:
デフォルトの名無しさん
:2007/03/16(金) 12:10:05
ESPktkr
851
名前:
デフォルトの名無しさん
:2007/03/16(金) 12:22:07
一行目と2行目の関連というか動作がわからないところがエスパー加減なんだと思う
852
名前:
デフォルトの名無しさん
:2007/03/16(金) 12:33:11
cドライブルートの中のtest.txtのIShellFolderとITEMIDLISTからIContextMenuを取得
IContextMenu::QueryContextMenuでメニュー項目を新規に作成したメニューに追加
独自項目を追加後普通にメニュー表示
選ばれたのが独自項目ではなければIContextMenu::InvokeCommand
じゃないの?
超能力がいるか?
853
名前:
デフォルトの名無しさん
:2007/03/16(金) 12:37:22
>>852
それで何を説明した気になってるんだ?
てか誰もファイルの実体をどーのこーの何て書いてない
飽くまで"c:\\test,txt"という文字列だ
854
名前:
デフォルトの名無しさん
:2007/03/16(金) 12:57:40
>>853
マジで言ってるの?
それはエスパー云々以前に「対話能力がない」ってレベルだと思うぞw
855
名前:
デフォルトの名無しさん
:2007/03/16(金) 13:00:40
"c:\\test.txt"ではなく、"c:\\test,txt"であるところが重要。
856
名前:
デフォルトの名無しさん
:2007/03/16(金) 13:37:58
>>853
はうんこ
857
名前:
デフォルトの名無しさん
:2007/03/16(金) 13:38:59
>>855
フォルダか拡張子付いてないファイルだろ。それは重要ではない
858
名前:
デフォルトの名無しさん
:2007/03/16(金) 14:26:22
質問者が、現時点でどのくらいできるのかわからない
↓
説明メンドクセ
859
名前:
デフォルトの名無しさん
:2007/03/16(金) 17:14:47
> COMがわかりません
と読めた
860
名前:
デフォルトの名無しさん
:2007/03/16(金) 17:17:24
アンカー抜けてた
>>853
な
861
名前:
デフォルトの名無しさん
:2007/03/16(金) 18:46:41
>>830
OpenJane の一番下のログ( (・∀・)カンリョウ!! )のように、
Client高さを1行に絞りきることがあるなら
前置で CRLF し、末尾にはCRLF置かないほうが良いよ。
SendMessage(handle, EM_SETSEL, -1, -1);
if (GetWindowTextLenght(handle)) {
SendMessage(handle, EM_REPLACESEL, -1,(LPARAM)_T("\r\n"));
}
SendMessage(handle, EM_REPLACESEL, -1,(LPARAM)log-string);
862
名前:
デフォルトの名無しさん
:2007/03/16(金) 20:44:29
開いたコンソールにメニューを追加したく、
AllocConsole();
hwConsole = GetConsoleWindow();
HMENU hmConsole = GetSystemMenu(hwConsole, FALSE);
AppendMenu(hmConsole, MF_STRING, IDM_TEST, "Test");
hMsg = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)GetMessageProc,
NULL, GetWindowThreadProcessId(hwConsole, NULL));
みたいなコードを書いてみたのですが、メニューの Test を選んでも、
さっぱり GetMessageProc にメッセージが来ません。
どこが間違っているのでしょうか?
863
名前:
デフォルトの名無しさん
:2007/03/16(金) 21:35:09
>>843
んなこと言い出したらLOWORD&HIWORDだって結局はキャストじゃん
864
名前:
デフォルトの名無しさん
:2007/03/16(金) 21:38:47
ウィンドウのサイズを変更するときに縦にしか変更できなくする方法ってどうやればいいですか?
865
名前:
デフォルトの名無しさん
:2007/03/16(金) 21:40:50
>>864
WM_GETMINMAXINFO
866
名前:
デフォルトの名無しさん
:2007/03/16(金) 21:51:03
>>865
ありがとうございます
867
名前:
デフォルトの名無しさん
:2007/03/16(金) 23:10:12
>>862
AllocConsoleで作ったコンソールは、別プロセスの別スレッドなんじゃないの?
サブクラス化も駄目なはず。
ReadConsoleInputはイベントは取れてもIDM_TESTまでは拾えないはず。
ってことで、あとはDLL作って潜り込ますしかないんじゃない?
868
名前:
デフォルトの名無しさん
:2007/03/16(金) 23:53:11
>>867
SetWinEventHookでイベント捕まえるしか手がないと思うんだがどうよ
869
名前:
デフォルトの名無しさん
:2007/03/17(土) 00:14:35
MSAAの関数か
870
名前:
デフォルトの名無しさん
:2007/03/17(土) 01:05:39
>>832-836
丁寧な回答をありがとうございます。
よく分かりました。
871
名前:
デフォルトの名無しさん
:2007/03/17(土) 01:09:33
>>868
やってみました。
AllocConsole();
hwConsole = GetConsoleWindow();
idConsoleThread = GetWindowThreadProcessId(hwConsole, &idConsoleProcess),
hEventHook = SetWinEventHook(EVENT_SYSTEM_MENUSTART, EVENT_OBJECT_FOCUS,
NULL, WinEventProc, 0, idConsoleThread,
WINEVENT_OUTOFCONTEXT);
これだと WinEventProc にイベントが飛びません。
thread id 指定のかわりに process id を指定しても駄目でした。
両方とも 0 にしてグルーバルフックにすると動きますが、さすがにそれはどうかと……。
うーん、なんで thread id を指定すると駄目なんだろう。
872
名前:
デフォルトの名無しさん
:2007/03/17(土) 01:56:31
>>871
idConsoleThread = GetWindowThreadProcessId(hwConsole, &idConsoleProcess),
最後の,は;だろうが、
どっちにしろAllocConsoleしたコンソールのスレッドIDは、この方法では取得できない
873
名前:
デフォルトの名無しさん
:2007/03/17(土) 01:57:14
コンソールウィンドウって仮想マシンだったよな
あれは結構別物だと思ってたんだけど、ただのウィンドウなの?
874
名前:
872
:2007/03/17(土) 02:04:36
>>871
さらに、コンソールの本当のスレッドは、idConsoleProcessの下にはない
だからSetWinEventHookでプロセスIDとしてidConsoleProcessを指定しても、
コンソールの本当のスレッドまでフックが届かない
コンソールの本当のスレッドIDを取得する方法は俺も知らん
Global HookしてプロセスIDでチェックするしかない気がするな
875
名前:
デフォルトの名無しさん
:2007/03/17(土) 02:34:23
>>874
ありがとうございます。あとはイベントを捕まえればいいのですが、
EVENT_OBJECT_INVOKEDってVistaオンリー・・・
EVENT_OBJECT_FOCUSとかで地道に捕まえるしかないっぽいですね。
そのうえ取得できるのは定義したメニューのIDM_TESTじゃなくて、上からの順番だけ・・・
もう泣きそうです。
876
名前:
デフォルトの名無しさん
:2007/03/17(土) 02:41:13
コンソールウィンドウってCSRP(csrss)の持ち物だったっけ?
877
名前:
デフォルトの名無しさん
:2007/03/17(土) 03:06:33
>>875
だめだ、簡易編集オンになってて範囲指定中だと、
発生したイベントがブロッキングされてしまいました・・・
もう泣いてもいいですか。
878
名前:
デフォルトの名無しさん
:2007/03/17(土) 03:13:28
>>876
だな、そのあたりからスレッドID探せるかもしれんな
879
名前:
デフォルトの名無しさん
:2007/03/17(土) 03:23:29
こういう時こそデバッガの出番じゃね?
追ってけばそのうちわかる気がしね?
じゃあ任せた。
880
名前:
デフォルトの名無しさん
:2007/03/17(土) 06:04:33
スレッドID分かっても、大して意味ないよ。複数のコンソールが同一のスレッドで動くから。
イベント処理プロシジャの中でHWNDとか見てどこから飛んで来たのか判断する必要は同じ。
しかしMSAAって日本語の資料少ないな。
881
名前:
デフォルトの名無しさん
:2007/03/17(土) 16:47:10
Jane Doe Styleのスレッド一覧を表示するようなウィンドウってどうやって作るんですか?
882
名前:
デフォルトの名無しさん
:2007/03/17(土) 16:50:20
ソース公開されてなかったか?
883
名前:
yyy
:2007/03/17(土) 16:58:39
はじめまして。
http://amaznode.fladdict.net/
のような、amazonのAPIを使ったものを
作りたいのですがFlashのみで開発できるものなのでしょうか?
初歩的な質問で申し訳ありません。
分かる方がいましたら、アドバイスを頂けると助かります。
884
名前:
デフォルトの名無しさん
:2007/03/17(土) 17:00:25
このクマクマに「スレタイを読め」と言って通じるだろうか
885
名前:
デフォルトの名無しさん
:2007/03/17(土) 17:02:45
>>883
激しく板違い
886
名前:
デフォルトの名無しさん
:2007/03/17(土) 17:21:55
>>883
しかもマルチかよ。
http://pc11.2ch.net/test/read.cgi/tech/1131627583/72
887
名前:
デフォルトの名無しさん
:2007/03/17(土) 18:44:00
>>884
たぶん「API」という言葉にしか目が行っていないのだろう
888
名前:
デフォルトの名無しさん
:2007/03/17(土) 19:19:12
もしかするAPIという言葉が理解できてないのかも知れない
889
名前:
デフォルトの名無しさん
:2007/03/17(土) 19:29:04
和んだ
890
名前:
デフォルトの名無しさん
:2007/03/17(土) 19:44:41
わんだ?
891
名前:
デフォルトの名無しさん
:2007/03/17(土) 20:02:06
早大レイプ部の和んださんって今何やってるの?
892
名前:
デフォルトの名無しさん
:2007/03/17(土) 20:18:39
かずんだ?
893
名前:
デフォルトの名無しさん
:2007/03/17(土) 20:46:34
>>883
質問自体が論外だが、
このスレでの関連性を問うなら、これぐらい?
http://www.microsoft.com/japan/products/expression/default.mspx
894
名前:
デフォルトの名無しさん
:2007/03/17(土) 21:58:23
>>883
あれはな、よく聞けよ?
APIじゃなくてamazon web service。 わかったか?
amazon web serviceかAWSで検索してこい。
895
名前:
デフォルトの名無しさん
:2007/03/17(土) 21:58:25
>>881
リストビュー
896
名前:
デフォルトの名無しさん
:2007/03/17(土) 22:04:24
>>882
>>895
遅ればせながらありがとうございました
897
名前:
デフォルトの名無しさん
:2007/03/18(日) 00:51:53
WindowsSDKとMFCの違いを教えてください。
898
名前:
897
:2007/03/18(日) 00:56:29
VCで提供しているクラスライブラリを使わず開発するって事なのかな
以下それについての疑問
@MFCを使わず開発する上での利点
AMFCとSDKの開発効率はどちらが上か?
B同じ技量のプログラマがそれぞれMFC、SDKで組んだ場合の実行速度に違いはあるのか?
以上3つの疑問点があります。
899
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:07:16
実際に自分でやってみて確認するのが一番。
900
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:10:09
ケースバイケースとしか言いようがない気が・・・
MFCはSDKを使い慣れた人のためのもの、というのは覚えておいたほうがいいと思う
901
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:15:29
場合によりけりだな。
軽く触る程度ならMFCで。今後使い回すつもりなら
いずれどっちも学ぶ必要があるからお好きな方から。
902
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:16:45
俺は最近はSDKのが好きかもしれん。
心の迷いだろうから、WTLでも触ってフレームワークの奴隷に戻るつもりだが。
903
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:24:52
@MFC側はXerox Perkが論じたフレームワークが主モデルであり、
Windows SDK群の一握りしかラッパー化されていない。
利点については割愛。
A一般的なGUI操作が前提ならば、MFCベースが優勢。
しかし、@で述べたとおりMFCのクラス群だけではカバーできない部分もあり、
所々でSDKの関数を利用する。
B何の実行速度?MFCにはオーバーヘッドが大きいクラスが多々あるが?
904
名前:
897
:2007/03/18(日) 01:29:53
>>899-903
なるほど。
要するに幅広く応用するのであればSDKに精通していた方が有利なわけですね
905
名前:
左を見ろ→&&rrlo;鹿馬、だ右はちっこ &&rlro;」
:2007/03/18(日) 01:31:17
906
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:31:33
>>904
もう一つ付け加えておくとSDKベースでの開発だとVC以外のコンパイラ(例えばBCC)
でも通るMFCはVCコンパイラじゃないと無理
907
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:39:20
警告やクエッションといったシステムのアイコンを取得したいのですが、
LoadIconだと32x32しかとれないですよね。
16x16を取る方法はないのでしょうか。
908
名前:
デフォルトの名無しさん
:2007/03/18(日) 01:40:47
LoadImage
909
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:06:47
>>908
LoadImageでOEMイメージを取得するということですか?
下記のようにしてみましたが、
「指定されたリソースの種類がイメージファイルに見つかりません。」と取得できませんでした。
どこか間違っています?
HANDLE h =
::LoadImage(NULL, MAKEINTRESOURCE(OIC_WARNING), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE);
910
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:15:17
LR_SHARDを付けたらいけました、すみません。
けどアイコンは縮小されたような汚いのしか取れなかったです。。
HANDLE h =
::LoadImage(NULL, MAKEINTRESOURCE(OIC_WARNING), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_SHARD);
911
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:23:33
> 縮小されたような
LR_DEFAULTSIZEを指定したらそりゃ32x32に縮小されるだろ
> 汚いのしか
LR_CREATEDIBSECTION付けろ
つーかMSDN嫁
912
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:33:17
>>911
IMAGE_ICONを指定した場合はLR_CREATEDIBSECTIONなんて関係ないが・・・。
お前さんもMSDN嫁。
913
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:34:20
肝心のMSDNへのリンクがない件について
914
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:45:11
>>913
MSDNくらい自分で検索できるだろ・・・。
http://msdn.microsoft.com/library/ja/jpwinui/html/_win32_loadimage.asp
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/resourcereference/resourcefunctions/loadimage.asp
915
名前:
デフォルトの名無しさん
:2007/03/18(日) 02:56:12
>>907-914
その流れはワロタwwwwwwwwwwwww
916
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:00:13
ネタなら笑えるが社会人になってマジでやるやつがいる件
917
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:01:08
まあ「ちゃんと読んでます」って応える人間が多いこと多いこと・・・
918
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:04:29
MSDN読んでます。
910はサイズにGetSystemMetrics(SM_CXSMICON)を指定してLR_DEFAULTSIZEを付けていました。
LR_CREATEDIBSECTIONつけてLR_DEFAULTSIZE外しても、
サイズ0でLR_DEFAULTSIZEでも同じでした。
プログラムのアイコンとかだと綺麗に出るんですが、
警告とかはギザギザで縮小したような?感じになっています。
919
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:07:28
警告のアイコンってそもそも16x16が存在しないんじゃね?
920
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:19:42
いまどき作った人が他界したようなMFCを使うなんざきちがい沙汰ですが。
921
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:23:18
>>920
922
名前:
デフォルトの名無しさん
:2007/03/18(日) 03:50:14
>>919
イベントビューアとかで使っているので聞いてみたのですが、ないのかもしれませんね。
諦めて適当なのを組み込んで済ませます。お世話になりました。
923
名前:
デフォルトの名無しさん
:2007/03/18(日) 11:34:15
MFCのソースはapiの使い方のサンプル集として使える。
MFCをまったく使わない場合でも
924
名前:
デフォルトの名無しさん
:2007/03/18(日) 15:51:11
みんな、Vistaの新APIどう使ってる?
vc2005eeとplatformSDKをダウンロードしたんだけど、
VistaのAPIとかヘッダーファイルに定義されてないやん・・・。
platformSDKはwindowsSDKに変わったとかどっかで聞いたんだけど、
こっちをインストールしないといけないわけ?
925
名前:
デフォルトの名無しさん
:2007/03/18(日) 15:55:41
>>924
そういうこと。
全てLoadLibaryで明示的リンクをする、
ドキュメントはオンラインのMSDNライブラリを見るにしても、
構造体や定数の定義なんかはSDKのヘッダが見れないと不便だろ。
Windows SDKはPlatform SDKの後継だから、
Platform SDKをインストールせず初めからWindows SDKを入れて構わなかったのに。
926
名前:
デフォルトの名無しさん
:2007/03/18(日) 16:00:27
Windowd SDKだと.NET Framework 3.0 SDKが統合されてる関係か
Windows 2000がサポートされなくなった罠
927
名前:
デフォルトの名無しさん
:2007/03/18(日) 17:32:24
> Windows 2000がサポートされなくなった
Win2kで動作しなくなるということ?
928
名前:
デフォルトの名無しさん
:2007/03/18(日) 17:52:26
今のPlatformSDKだって、前のバージョンのOSであるNT4では完全には動作しないような・・・
違ったっけ
929
名前:
デフォルトの名無しさん
:2007/03/18(日) 18:26:25
SDKが動くもなにもSDKは動く物じゃないだろうが
930
名前:
デフォルトの名無しさん
:2007/03/18(日) 18:44:16
インストールに弾かれるのか?
931
名前:
デフォルトの名無しさん
:2007/03/18(日) 19:42:02
なんで実行環境と開発環境が分けて考えられないんだ?
932
名前:
デフォルトの名無しさん
:2007/03/18(日) 20:29:21
ターゲットとしてWin2kがサポートされなくなったってこと。
実際にはWinXPあたりをターゲットに選んで注意深く組めば動くだろうけど
933
名前:
デフォルトの名無しさん
:2007/03/18(日) 20:52:42
うーんと・・・.NETクライアントが
.NETフレームワークのバージョン情報を取得する方法というのは
どのようなものなのでしょうか?
予想1: レジストリ
予想2: 特定のDLLのバージョン取得関数
予想3: Microsoft.NET\Framework内のフォルダの名前
スレ違いで怒られたら申し訳ございません。
934
名前:
デフォルトの名無しさん
:2007/03/18(日) 20:59:41
発想が逆
クライアントの側がバージョンを指定するんだよ
スレ違いだからこれ以上のコメントがあったら.NETのスレでよろしく
935
名前:
933
:2007/03/18(日) 23:14:08
申し訳ございませんでした。
.NETスレで何も無かったのでマルチしてしまいました。
どうもありがとうございました。
936
名前:
デフォルトの名無しさん
:2007/03/19(月) 04:04:37
【ネガティブ派遣根性チェック】
3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□派遣先に尻尾を振り、いつまでも派遣を続けることが大切だ
937
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:19:12
VC2005,MFCでデフォルトのままUnicodeベースでビルドをしているのですが、
WritePrivateProfileString()で文字列を書き出すと、
INIファイルの中身がUnicodeになっていません。
Unicode専用の文字を入れると??になっています。
MSDNの記述ではWritePrivateProfileStringW()が呼ばれるはずなんですけど、
なにか設定が足りないのでしょうか?
938
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:22:19
WritePrivateProfileStringWなどはマルチバイト文字列と変換して読み書きする仕様だったはず。
A版で書いてW版で読んだりなんてことができるようにと聞いた覚えがある。
939
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:25:38
>>938
ということは、Unicode専用文字はINIファイルには記録できないということなのでしょうか?
エディットボックスで入力される文字をINIファイルで扱いたいのですが。
940
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:30:05
Unicodeでないとダメな理由があるの?
941
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:37:03
逆にWritePrivateProfileStringWでないとダメな理由があるの?
自分で読み書きすればいいだけ。
942
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:45:20
ダイアログで入力された情報をINIファイルに記録しておきたいんですが、
Unicodeアプリである以上、Unicode文字が入力されることもあるので、
それらの入力をINIファイルに保存できないのは痛いなと思いまして。
アプリ内で参照するファイル名とかにUnicodeを使われていたら、
それらのファイル名情報もINIファイルでは保存できないということ…?
943
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:47:52
WritePrivateProfileStructを使えばいいじゃないか。
944
名前:
デフォルトの名無しさん
:2007/03/19(月) 17:52:48
>>938
のような動きをするということは.INIはデフォルトのANSIコードセットを使うというルールになってるんだろう。
どうしてもANSIコードセットに変換できないUNICODE文字を使いたいなら、
HEX文字列に変換して書き出すとか工夫がいりそうだね。
INIは古いレジストリ使えやゴラー
普通のアプリでレジストリ使うな、ApplicationSetting使えゴラー(いまここ)
ユーザーは振り回されて大変じゃのう。
945
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:01:54
レジストリはまだ推奨事項だろ。レジストリに書けないような大きな連中を
どこに書くかって話でねーの。
946
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:04:03
違います。
947
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:06:11
デフォルトはwin.ini使う仕様だからそこにUnicode書かれたら困るし
iniそのものが過去の互換性のためにあるんだろ
948
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:20:03
Application Settingsなんか.NETしか使えネーじゃん。
それとも何か、アンマネージだと「普通のアプリ」じゃネーとか言うのかこのスレで(w
949
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:22:17
>Application Settingsなんか.NETしか使えネーじゃん。
( ゚Д゚)・・・
950
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:29:20
>Application Settingsなんか.NETしか使えネーじゃん。
( ゚ω゚)・・・
951
名前:
デフォルトの名無しさん
:2007/03/19(月) 19:42:02
何?
RegOpenKeyEx
RegQueryValueEx
くらいのステップでApplication Settingsにさわれる
Win32APIがあるってーの?
まさかIXMLDOMを叩くなんて話じゃねーよな?
952
名前:
デフォルトの名無しさん
:2007/03/19(月) 20:08:50
UTF-7で書きなさい。
953
名前:
デフォルトの名無しさん
:2007/03/19(月) 20:44:41
アプリの設定なんてデータ交換に使うわけでもないんだから
好きなフォーマットにしる
954
名前:
デフォルトの名無しさん
:2007/03/19(月) 20:55:19
つまり、Unicode対応アプリケーションでは
INIファイルを使うなということになるんですかね。
でも、VC2005はデフォルトでUnicode設定になってるのに、
INIファイルにUnicode文字を書き込めないという書き込みが全然出てこないですね。
これらの組み合わせって、そこまで使われていないものなのでしょうか。
955
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:06:51
エクスプローラやコモンダイアログ(ファイル開くなど)で現在参照してるディレクトリを
変更させることってできますか?
956
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:15:36
>WritePrivateProfileString
>注意 この関数は、16 ビット Windows ベースのアプリケーションとの互換性を保つ目的でのみ提供されています。
>Win32 ベースのアプリケーションでは、初期化情報をレジストリに格納してください。
MSDNにこう記述があるにもかかわらず、これだけいつまでも使われ続けているAPIも珍しい。
アプリやフォーム間でのデータの受け渡しまでこれ使ってる糞プログラムのメンテをやらされてるから欝だ。
957
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:15:49
まぁ実際のINIファイルの文字コードがどうなってるかは別として
GetPrivateProfile〜系APIにもちゃんとUNICODE版があるわけだが
958
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:20:36
>>957
あるっちゃあるが
>>938
のとおり。
959
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:22:39
>>954
出来ないとか駄目だとか言う前に工夫をしてみるのも大事だと思うが。
APIがUnicode版だろうと、INIファイルの文字コードはANSI(MS-Kanji)固定だぜ。
URLエンコードとかBASE64とかISHとか好きな符号化方式で変換して格納すれば済むと思うが。
960
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:23:37
あ、ANSIの何が悪い!
961
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:27:44
APIの問題ではなく、ファイル仕様の問題、みたいですネ
962
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:40:53
Unicodeがらみの話で wprintfやwcoutを使ってコンソールに文字を出力すると、
結局ANSIコードに変換してしまうので、途中にUnicodeにしかない文字が入っていると、
その文字以降何も出力されなくなる。
WriteConsoleW以外にUnicode特有の文字をコンソールに出力する手段はないのかな?
963
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:45:28
>wcout
localeは?ってWIN32APIじゃないな
964
名前:
デフォルトの名無しさん
:2007/03/19(月) 21:48:59
>>962
無い。
でもBoost.Iostreamsで、ReadConsoleWを呼ぶストリームバッファを作って
wcoutの代わりにするのはいけると思う。
965
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:11:24
INIファイルをunicodeのBOM付きで予め作成しておくとよいかも?
そうか、↓みたいにUTF-7
[.ShellClassInfo]
IconFile=%USERPROFILE%\デスクトップ\FAQ\FAQ\faq.ico
IconIndex=0
[.ShellClassInfo.A]
IconFile=%USERPROFILE%\デスクトップ\FAQ\FAQ\faq.ico
[.ShellClassInfo.W]
IconFile=+ACU-USERPROFILE+ACUAXDDHMLkwrzDIMMMw1wBc-FAQ+AFw-FAQ+AFw-faq.ico
966
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:19:22
やっぱりシステムの根っこに書き込みを行うのは抵抗あるんだよなあ
ディレクトリごと削除するだけでアンインストールが完全に終わるINIの方が好き
967
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:22:49
レジストリなんて設定ファイルに毛の生えたようなのが固まってるだけだよ。たぶん
968
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:25:27
自分でXMLパーサ書いてそれに記録させてる。
その程度作るのは大した手間じゃないし。
969
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:35:58
>>962
スレ違いだから詳しくはよそで聞いて欲しいが、VC8はロケール関連にバグがある。
970
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:43:54
>>964
うむやはりWriteConsoleWしかないですか、iostreamを書くのは俺の力量じゃ無理そうで
WriteConsoleラップした自家製printfでやっときます。
>>963
>>969
ローケルやVC2005のバグの件は了解しています。
これにかかるとUNICODE特有の文字だけでなく2バイト文字が全然でなくなりますから。
971
名前:
デフォルトの名無しさん
:2007/03/19(月) 22:44:44
そろそろカチンときそうです。
972
名前:
デフォルトの名無しさん
:2007/03/19(月) 23:02:00
>>954
Using Unicode in INI files
http://www.codeproject.com/file/unicode_ini.asp
965も書いてるけど
既存のUTF-16LEのINIファイルがある場合はそのコードで
無い場合は実行環境(日本語winならCP932)に合わせて保存されるらしいんだよな。
実際やってみると〜W版、〜A版関係なくそうなる。
OSが9x系のときはどうなるか知らないが…
973
名前:
デフォルトの名無しさん
:2007/03/20(火) 01:07:20
ゲームプログラムで質問です。
StrechBltで2倍に拡大して描画するのと画像サイズを2倍にしてそのまま表示するのとではどちらのほうが描画が早いですか
974
名前:
デフォルトの名無しさん
:2007/03/20(火) 01:15:13
やってみれ
975
名前:
デフォルトの名無しさん
:2007/03/20(火) 01:15:43
>>973
こんなところでいつ着くともしれないレスを待つより、自分でやってみた方が
早いと思うよ。
976
名前:
デフォルトの名無しさん
:2007/03/20(火) 01:25:37
>>972
98SEで試してみた所、UnicodeのINIファイルにANSIで追記された。
NT系でしか働かないのだろうな、その機能は。
Meだけ対応とかだったら嫌だな。
977
名前:
デフォルトの名無しさん
:2007/03/20(火) 06:59:53
>>956
INIほどじゃないがGetVersion()もよく使う。
9x/NT系の判別をする場合、戻り値の最上位ビットを見ればすむから。
GetVersionEx()はその目的にはちょっとめんどくさい。
978
名前:
デフォルトの名無しさん
:2007/03/20(火) 07:04:34
VC++についてるsignal.hにはなんでSIGKILLがないの?
signalで9番に関数登録しようとしただけでエラーになるし。
979
名前:
デフォルトの名無しさん
:2007/03/20(火) 07:15:52
?どっちにしろSIGKILLはキャッチできないじゃん。
980
名前:
デフォルトの名無しさん
:2007/03/20(火) 07:34:09
>>979
そうなんですか。どうもです。
981
名前:
954
:2007/03/20(火) 09:31:36
>>972
なるほどたしかにあらかじめエディタでUnicode形式でファイルを作成し、
それに対してWriteProfileしてみたところ、Unicodeのまま書き込めました。
>>976
のおっしゃる情報によると、NT系しか動かないようなので、
厳密にやろうとするとまた考えないといけないのでしょうけど、
今回のものは2000以降限定と言ってしまっても問題無いので、
そうなるとこれでも大丈夫ですよね。
みなさんありがとうございました。
982
名前:
デフォルトの名無しさん
:2007/03/20(火) 20:44:56
コントロールを作っていて困ったことがあったので質問させて下さい。
WH_GETMESSAGEフックを使って親ウィンドウのメッセージを盗みたいと思ってます。
コントロールはクラス化していて、GetMsgProcでインスタンスへのポインタを使うために、
グローバルなCAtlMapを使って、dwThreadIdとthisを関連づけて保持しています。
またSetWindowsHookExの戻り値もクラスのメンバとして保持してます。
そしてGetMsgProcでは、
MSG *msg = (MSG*)lParam;
CControl *pThis = g_hookMap[GetWindowThreadProcessId(msg->hwnd, NULL)];
このようにポインタを取得して、メッセージによって処理したり、CallNextHookExを呼び出したりしています。
ここで問題がありまして、msg->hwndにNULLが渡されることがあります。
(ちょっと調べた感じだとPostThreadMessageで渡されたメッセージでしょうか)
このときはpThisを使ってフックプロシージャのハンドルを取得できないため、
CallNextHookExを呼び出すことができないので、仕方なくreturn 0;で処理を中断しています。
msg->hwndがNULLでもちゃんとフックプロシージャのハンドルを取得できる
もっと上手いやり方がありましたらお教え下さい。
983
名前:
デフォルトの名無しさん
:2007/03/20(火) 20:58:44
親ウィンドウをサブクラスかでは駄目なのか?
984
名前:
982
:2007/03/20(火) 21:10:27
>>983
サブクラス化も試してみました。
具体的にはWM_CLOSEを取得して確認ダイアログを出したいのですが、他のメッセージは取得できるのに
なぜかWM_CLOSEは取得できないまま終了してしまいました。
そこでフックを試してみたら上手く取得できたので、フックでやろうとしているのですが。。
985
名前:
デフォルトの名無しさん
:2007/03/20(火) 21:30:10
GetMessageフックはフックを受け取るスレッドのコンテキストで動くから
GetCurrentThreadId()でいいんじゃネーノ
986
名前:
デフォルトの名無しさん
:2007/03/20(火) 21:44:59
> フックを受け取る
もとい
メッセージを受け取る
987
名前:
982
:2007/03/20(火) 22:44:15
>>985
,986
おー!できるようになりました。ちゃんといろんなAPIを知っておかないとダメですね。
ありがとうございました!!
988
名前:
デフォルトの名無しさん
:2007/03/20(火) 23:08:51
次すれまだぁぁあんあん
989
名前:
デフォルトの名無しさん
:2007/03/21(水) 03:52:22
つ t[茶]
つ
http://pc11.2ch.net/test/read.cgi/tech/1174416295/
990
名前:
デフォルトの名無しさん
:2007/03/21(水) 14:28:23
つか何度見ても2がおっかしー。
新しいのにはもうないけど。
991
名前:
デフォルトの名無しさん
:2007/03/21(水) 17:33:48
/  ̄ ̄ '´ ̄ ̄ヽ、
ノ/. /二二二ヽヽ \
<V/, '/ 人 | ヽハ夊 、 |
〃 {_{`ヽ Vヽノリ| l >" i|
ハ小l● ● レ|、 | |
|│ l⊃ rー- ⊂⊃|ノ |│
/⌒ヽ.| .ヘ ヽ ノ jレ/⌒i !
\ /:::レ l>,、 __, イァ/ /ノ
. /:::::/ / ヘ:::|三/::{ヘ、__∧
`ヽ< ヾ:∨:::/ヾ:::彡
992
名前:
デフォルトの名無しさん
:2007/03/21(水) 18:27:52
_
/〜ヽ
(。・-・)< うめてくだちゃい
゚し-J゚
993
名前:
デフォルトの名無しさん
:2007/03/21(水) 18:54:32
梅
994
名前:
デフォルトの名無しさん
:2007/03/21(水) 19:02:46
コソーリ
ttp://wiki.livedoor.jp/program1/
最初に作った人とは違いますが・・・
このスレのファンです
時々質問したまま何も返さないのは私です
どうもすみません
995
名前:
デフォルトの名無しさん
:2007/03/21(水) 19:24:54
_
/〜ヽ
(。・?・)
゚し-J゚
996
名前:
996
:2007/03/21(水) 19:45:04
自己解決しました。
>>996
にカチンときたので教えません。
バーカ!
997
名前:
デフォルトの名無しさん
:2007/03/21(水) 19:53:14
どう見てもオナニープレイです 本当にお疲れ様でした
998
名前:
994
:2007/03/21(水) 19:56:26
ごめんなさい。
これぐらいしかできないのです・・・
999
名前:
994
:2007/03/21(水) 20:00:49
評判が悪ければ取り下げますです。
1000
名前:
デフォルトの名無しさん
:2007/03/21(水) 20:01:35
/ ⌒ヽ
/ \
,.-‐''⌒ヽ ,.=、 ヽー、
,〃/∠彡ニ\ (.fゃ) | j
/ ミ彡三ヘ`=´ | |
/ ミ彡三∧ j ./
ト ャ''" ミ彡三∧. //
」i _;''_, ミ彡'ニミヘ、 〃
リ ´ ̄ リ´ f'`ij }/「i|
ヽ- '´/ソ'川||
ヽ一 「彡'川ll.|||
T _ / ´ j||.川||
` ̄了、 i! 川.川|
_」. \ | j| 川|ト、
_/ ̄ \ \ '_/./川 `
 ̄ `  ̄ ´
ネゴトワ・ネティエ[Negtva Netie]
(ルーマニア.1935〜54)
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.