Kazuki IWAMOTO
iwm****@maid*****
2003年 11月 18日 (火) 00:30:45 JST
岩本一樹です。 > コンパイル時にUNICODEかMBCSを決定して、2つのバイナリを同梱よりも、 >1つのバイナリで実行時に動的にAPIを取得してどちらのAPIを使うか決める方法も >あると思いつきました。普通はやらない方法ですが、小規模プログラムでありかつ >UNICODEにしたときの利点が多いimimeならば、この方法も検討する価値がありそうです。 具体的にはim-ime.dllがロードされたときDllMainでimm32.dllをLoadLibraryで ロードし、OSを判定してWindowsNT/2000/XPならばGetProcAddressで UNICODE系のAPIを取得します。APIを取得できないかWindows95/98/MEならばMBCSのAPIを 取得します。そして変数fUnicode(TRUE:UNICODE,FALSE:MBCS)を設定します。 それ以降は#fidefの代わりに、if文でfUnicodeの値を元に分岐させます。 そのDllMainとグローバル変数fUnicodeの場所ですが、gtkimcontextime.cとimime.cの どちらでも不適切な気がするので、dllmain.[ch]を新たに追加します。 この方針で作っていきたいと思います。 岩本一樹 iwm****@maid*****