09/06/20 18:01:34
>>189
OSで応答する分APIが遅い
196:デフォルトの名無しさん
09/06/20 18:52:31
>>187
有難うございます!!
197:デフォルトの名無しさん
09/06/20 18:54:46
>>195
は?
198:デフォルトの名無しさん
09/06/20 19:11:46
システムフックするソースとか見ると、DLL側で良く
#pragma data_seg(".ShareForHook")
HHOOK MouseHook = NULL;
#pragma data_seg()
を眼にするんだが、何でこれをする意味が良く分からない。
単純にHHOOK MouseHook = NULL;じゃ駄目なの?
199:デフォルトの名無しさん
09/06/20 19:15:11
#pragma data_segってのはプロセス間での共用メモリスペースを作るオプションでな
その中で宣言された変数はどこのプロセスで変更しても全てのプロセスに伝わるわけだ
何で必要なのかはCallNextHookExの第一引数見れば分かる
2000以降は要らないんだっけかな
200:デフォルトの名無しさん
09/06/20 19:15:12
理由もちゃんと書いてあるだろ
201:デフォルトの名無しさん
09/06/20 19:26:23
>>197
ライブラリの関数は同じ実行ファイル内にリンクされるのでコストは自分と定義した関数と同じ
APIの場合は、IPCを通じてOS内部にある関数本体のアドレスに引数を渡して結果を受け取るためコスト増
202:デフォルトの名無しさん
09/06/20 19:31:04
ああこいつ馬鹿か
203:デフォルトの名無しさん
09/06/20 19:34:53
素直に頭が悪くて理解できないと言えよw
204:デフォルトの名無しさん
09/06/20 19:36:31
printfもOSのAPI内部で呼ぶっつーの馬鹿
205:デフォルトの名無しさん
09/06/20 19:37:02
自分で定義した関数で、想定されうるあらゆるデバイスに対して出力できる処理かいてるのか
206:デフォルトの名無しさん
09/06/20 19:38:39
>>199
有難う!
MSDNでのSetWindowsHookEx関数では
>グローバルフックは共有リソースであり
と書いてあった
正直まだ解せない部分もあるけど、システムフックの最低限必要のマナーなのね
207:199
09/06/20 19:43:48
ああ、理解力なさそうだね
208:デフォルトの名無しさん
09/06/20 20:15:17
>>189=>>195=>>201=>>203
209:デフォルトの名無しさん
09/06/20 21:39:29
>>190
ImmGetConversionListを使う方法を教えていただき、どうもありがとうございました。
結論からすると、やはり逆変換はMSIME2002ではできて、ATOK2006ではできなかったです。
ソースコードは下記をそのまま使いました。
URLリンク(athomejp.com)
ATOKの2006は鬼門バージョンなんですかねw
210:デフォルトの名無しさん
09/06/20 21:54:53
まぁ、そんなもんじゃね?
あとは、実際の動作をエミュレートするかだな。
211:デフォルトの名無しさん
09/06/20 21:56:13
プログラム書いていていつも思うのは
LeftとRightとかBeginとEndとか
長さが違うのが無性に腹立つんだが
欧米人には美的感覚ってものが無いのか?
212:デフォルトの名無しさん
09/06/20 22:02:25
>>211
まずプログラミング言語ありきってか
213:デフォルトの名無しさん
09/06/20 22:12:34
外人さんのデモ見てると、プロポーショナルフォントだったりするしな・・・
214:190
09/06/21 00:06:52
>>209
2006ではだめですか。ATOK2005は確か出来たはずなんですが… 残念です。
215:sage
09/06/21 01:02:46
自分は漢字の読み仮名の取得には
IFELanguageを使ってるが。