トップページ > 過去ログ > 記事閲覧
DXライブラリと日本語入力
名前:MoNoQLoREATOR 日時: 2013/03/23 14:41

現在、日本語入力を実現させようと四苦八苦している次第です。 方法@ <KeyInputString関数を使う> 入力自体はできますが、入力中の文字が表示されず、変換候補も表示されません。 別の質問掲示板で質問するとwindows8特有かもしれないからここで聞いた方が良いという回答を頂きました。 また、以前にこの掲示板で同じような質問(hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2677&p=1)があったようですが、「Vista で入力中の全角文字列が表示されることが確認できている実行ファイル」を試したところ全く同じ症状が出ました。 方法A <独自に親ウィンドウ・INPUT子ウィンドウを作成し、独自にメッセージ処理を行う> 直接入力しかできませんでした。 おそらくDXライブラリはDxLib_Init()が呼ばれたときに直接入力以外の文字入力を禁止するようになっているのだろうと考えているのですが、これをどうにかすることはできないのでしょうか。 よろしくお願いします。

Page: 1 | 2 |

Re: DXライブラリと日本語入力 ( No.3 )
名前:MoNoQLoREATOR 日時:2013/03/25 00:02

返信ありがとうございます。 @について。 本当に「Text Services Framework API」を使用すれば解決する問題なのでしょうか。 言い換えれば、「Text Services Framework API」を”使用しないと解決できない”問題なのでしょうか。 以前の同じような質問への回答として管理人さんはこう仰っています。 >>以前 Windows7 で同様の現象がご報告されたので対処したのですが、 >>その現象が Vista でも発生していた、ということでした >>Vista でも Windows7 と同様の処理を行うことで入力中の文字が表示されるようになりました ということは、「Windows8でも同様の処理を行う」ことで解決できるのではないでしょうか。 どのような処理が行われたのかは全くわからないので憶測にしか過ぎませんが…。 Aについて。 結論から申しますと全角入力はできませんでした。 依然として直接入力以外のモードに切り替えることができません。 念のためDxLib_Initの前に記述して試してみましたが当然無意味でした。 DxLib_Initを呼ばなければ全角入力をすることができるので、入力を受け付ける部分のソースコードは間違っていないはずです。
Re: DXライブラリと日本語入力 ( No.4 )
名前:管理人 日時:2013/03/25 01:17

@ ご指摘の通り Windows8 の対応ができていないだけでした orz ( if( OSVersion >= WindowsVISTA ){ } というような条件分岐をしていたので今回は 前回とは違う原因だと思っていたのですが、そもそもOSバージョン検出に Windows8 が 含まれていなくて if( OSVersion >= WindowsVISTA ){ } の条件分岐が偽になっていました ) よろしければこちらをお使いください http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) > 本当に「Text Services Framework API」を使用すれば解決する問題なのでしょうか。 Text Services Framework API (TSF) を使用しても問題は解決します A 問題は解決しなかったとのことですが、@が上手くいけばAの問題は解決しなくても良いのでしょうか?
Re: DXライブラリと日本語入力 ( No.5 )
名前:MoNoQLoREATOR 日時:2013/03/25 11:34

お早いご対応ありがとうございます。 確認したのはVisualC++版のみですが、全角入力を行うことができました。(ただしBaiduIMEは無理でした) Aについて。 @が解決するかどうかに関わらず、Aも解決したいと考えています。 有効手段が複数あって困ることはないからです。 先程もう一度試してみたのですが、どういうわけか全角入力を行うことができました。 ただし、やはりBaiduIMEでは無理でした。 私はIME関係の処理は全てINPUT子ウィンドウがやっているからこの方法であれば絶対に成功すると考えていたのですが、これはそうではないということを示している…のでしょうね。 それともBaiduIMEだけが異端なのでしょうか。
Re: DXライブラリと日本語入力 ( No.6 )
名前:管理人 日時:2013/03/31 19:00

よろしければINPUT子ウィンドウのテストに使用されたプログラムを実行に 必要なファイルと一緒に圧縮してメールで送って頂けないでしょうか? 直接BaiduIMEで入力できない状況を確認できれば原因がわかるかもしれませんので もし送って頂けるのでしたらメールアドレスはこちらでお願いします BQE00322(あっとまーく)nifty.com ( (あっとまーく)を@に置き換えてください )
Re: DXライブラリと日本語入力 ( No.7 )
名前:MoNoQLoREATOR 日時:2013/04/03 14:08

わざわざそこまでして頂いて恐縮です。 さっそく送らせて頂きました。
Re: DXライブラリと日本語入力 ( No.8 )
名前:管理人 日時:2013/04/07 18:38

手元で調べた限りでは MoNoQLoREATORさんから送られてきたと思われる メールは見当たりませんでした・・・ どのような件名で送られましたでしょうか?
Re: DXライブラリと日本語入力 ( No.9 )
名前:MoNoQLoREATOR 日時:2013/04/08 09:02

DXライブラリと日本語入力の件 という件名です。
Re: DXライブラリと日本語入力 ( No.10 )
名前:管理人 日時:2013/04/14 16:17

ご返答ありがとうございます 載せて頂いた件名で検索してみましたが、やはり届いていないようです 申し訳ありませんがもう一度送って頂けないでしょうか?
Re: DXライブラリと日本語入力 ( No.11 )
名前:MoNoQLoREATOR 日時:2013/04/16 07:56

もう一度送ってみました。 ひょっとするとhotmailが機能していないのかもしれないと思い、GMAILからも送ってみようとしたところ、実行ファイルを含むファイルを送ることはできないそうです。
Re: DXライブラリと日本語入力 ( No.12 )
名前:Will 日時:2013/04/16 09:33

lzhで圧縮すれば内部解析されないのでGmailでも送信出来ますよ。
Re: DXライブラリと日本語入力 ( No.13 )
名前:MoNoQLoREATOR 日時:2013/04/18 08:30

>>Willさん それは知りませんでした。 ありがとうございます。 さっそくlzhで圧縮してGmailからも送ってみました。
Re: DXライブラリと日本語入力 ( No.14 )
名前:MoNoQLoREATOR 日時:2013/04/18 09:00

しかしながらGmailさんから Delivery to the following recipient failed permanently: と言われてしまいました。 つまりniftyに拒否されたため送れませんでした。 hotmailの方も同じことが起こっていてこちらに通知がなされていないだけなのではないかと考え始めました。 そこで、Axfcというアップロードサイトにアップしました。 wダブリューw1.axfc.net/uploader/so/2872671.lzh/dxjapanese ※お手数ですが ダブリュー を w に置き換えてください ※ダウンロードに必要なキーワードは自動的に入力されます INPUT子ウィンドウのテストに使用したプログラムとそのソースコード(VC++2012プロジェクト一式)をlzh形式で圧縮しました。 Binフォルダにプログラムが、Sourceフォルダにソースコードが入っています。 よろしくお願いいたします。 ※Releaseビルドすると何故か一瞬で終了してしまうためDebugビルドのプログラムが添付されています
Re: DXライブラリと日本語入力 ( No.15 )
名前:管理人 日時:2013/04/30 00:20

アップしていただいたサンプルプログラムを拝見致しました 手元でも BaiduIME では全角入力できませんでした 原因が分かり、BaiduIME も使用できるように修正を加えたバージョンをアップしましたので よろしければお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 因みに修正内容ですが、DXライブラリ内部で呼び出している WindowsAPI の CoInitializeEx の 第二引数を COINIT_MULTITHREADED から COINIT_APARTMENTTHREADED に変更したところ正常に 動作するようになりました ( COINIT_MULTITHREADED を渡していたのが正しくありませんでした )
Re: DXライブラリと日本語入力 ( No.16 )
名前:MoNoQLoREATOR 日時:2013/05/03 17:58

対応して頂きありがとうございます。 WindowsXPにて全角入力が可能であることを確認致しました。 解決する望みは薄いと思っていたため驚いています。 しかし、Windows8では全角入力を行うことができませんでした。 おそらくWindows8は特別なのだと思われます。 とはいえ私はこれで満足です。 長い間 本当にありがとうございました。
Re: DXライブラリと日本語入力 ( No.17 )
名前:管理人 日時:2013/05/04 18:05

私の環境では Windows8 でもBaiduIMEで全角入力をすることができました こちらでコンパイルしたテストプログラムをアップしましたので、 よろしければお試しになってみてください https://dxlib.xsrv.jp/file/KeyInputStringTestWin8.zip
Re: DXライブラリと日本語入力 ( No.18 )
名前:MoNoQLoREATOR 日時:2013/05/06 08:31

すみませんしばらく掲示板を見ていませんでした。 リンクが切れているので、おそらくもう削除なさってしまったのだと思いますが、もう一度貼って頂けませんか?
Re: DXライブラリと日本語入力 ( No.19 )
名前:管理人 日時:2013/05/12 03:25

すみません!URLを間違えていました・・・ orz 正しくはこちらになります https://dxlib.xsrv.jp/temp/KeyInputStringTestWin8.zip
Re: DXライブラリと日本語入力 ( No.20 )
名前:MoNoQLoREATOR 日時:2013/05/13 13:15

管理人さんのテストプログラムにおいてWindows8上での全角入力が可能であることを確認しました。 どうやら SetMultiThreadFlag(true); ではなく SetMultiThreadFlag(false); とすると成功するようです。
Re: DXライブラリと日本語入力 ( No.21 )
名前:管理人 日時:2013/05/19 11:18

ご情報ありがとうございます、手元でも SetMultiThreadFlag( true ); を使用すると 全角入力ができないのを確認しました SetMultiThreadFlag( true ); を使用しても全角入力ができるように修正しましたので、 よろしければお試しになってみてください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: DXライブラリと日本語入力 ( No.22 )
名前:MoNoQLoREATOR 日時:2013/05/20 09:25

VisualC++のみですが、正常に動作することを確認致しました。 問題は全て解決しました。 本当にありがとうございました。

Page: 1 | 2 |