多くのソフトで見られるテキストエリアみたいな
自由に日本語を入力できる機能を作りたくて、色々調べています。
しかし、色々調べてほんの数行のコードのテストから試しているのですが、
どれも上手く動かなかったり、imm.h に構文エラーが有ると100以上のエラーが出たりして
全く感触が掴めずにいます・・。
何か最低限でも動作するものが有れば何か掴めると思い
MSDNのimeサンプルを落としてみたのですが、何故かコンパイルすら動作せず;
さらに調べるうちに
「vistaでは動作しない」 「immについての解説書籍はない」 「少しの環境差でも動作しなくなる」
などの情報が目に付いて、
何が原因で動かないのか混乱しています;
とても多くのソフトで日本語入力を当たり前のように扱っているので
動作するのが当たり前だとは思うのですが・・。
immを扱った経験が有る方、
immを扱う手順や、注意点などが有りましたら
教えては頂けませんでしょうか、
環境はVisualC++2008 OS:XP Pro(SP3)です。
みなさんはどうやって日本語入力を実装しているのでしょうか・・?
immとは一体どういう手順で実装されるものなのでしょうか・・orz
No.2ベストアンサー
- 回答日時:
>多くのソフトで見られるテキストエリアみたいな
>自由に日本語を入力できる機能を作りたくて、色々調べています。
メモ帳と同じ事がしたいだけでしたら#1さんの回答を参考にしてください。
>「vistaでは動作しない」 「immについての解説書籍はない」 「少しの環境差でも動作しなくなる」
VistaからTSF(と呼ばれる物が)がIMEのエミュレーションを行っています。
(SP1以前はこのエミュレーションに問題があったのですがSP1で大分改善されています。)
MSは将来的にIMEをこのTSFに置き換えたいようです。
猫でもわかるのサンプルにある
http://www.kumei.ne.jp/c_lang/sdk3/sdk_278.htm
にあるようなコードはそのままVistaでは動かなかった覚えがありますが
::ImmDisableTextFrameService(-1);(TSFを無効にする)を
最初に実行するとVistaでも動くようになったと思います。
(XP SP2でもTSFが有効だと同じ問題が発生します。)
もしIMEの見た目や候補リスト等を全て自分で操作したいなら、
DirectX SDKのサンプルCustomUIの中にあるImeUi.cppというサンプルコードも参考になると思います。
TSFに関しても考慮されており、DirectXの部分を切り離して使う事も可能です。
http://msdn.microsoft.com/ja-jp/directx/default. …
>MSは将来的にIMEをこのTSFに置き換えたいようです。
そうなのですね;
>::ImmDisableTextFrameService(-1);(TSFを無効にする)を
>最初に実行するとVistaでも動くようになったと思います。
>(XP SP2でもTSFが有効だと同じ問題が発生します。)
なんと・・。
仕様変更時期なのですかね orz
>DirectX SDKのサンプルCustomUIの中にあるImeUi.cppというサンプルコード
SDKは入っているので、早速見てみました。
これが理想かもしれません・・!
何やら共有?のソースが多いらしく、扱い方が難しそうですが
少し切り張りして試してみようと思います。
ありがとうございましたっ
No.3
- 回答日時:
VC2008のエディションは何ですか?
お作りのアプリケーションのタイプは何でしょう?
確かコンソールアプリを作っているのですよね
Win32SDKで作成しているなら Imm系で制御といった場合もあると思います
.NET Frameworkで作成しているのですと Imm.hをインクリュードするのに必要なヘッダーがImm.hより先にインクリュードしないといけないといった制限がありそうです
ご回答ありがとうございます;
>Microsoft Visual C++ 2008 Express Edition
で
>Win32 Console Application(多分)
を使っています。
DirectXで3Dゲームを作っていて、
いわゆるオンラインゲームのチャットバーみたいな物を作りたくて、
1行分(100文字未満)を稼動中に取得して、
・ワードに反応するキャラクター
・命令文に目的語を付けて、複雑な操作を個人好みに簡略化できる仕組み
などを作りたく思っています orz
「1行分の日本語文字列を、稼動中にchar配列等に格納」さえ出来れば何でも・・
と言った感じです orz
imm32.lib というものも一応ライブラリでリンクしているはずなのですが・・
もう少し自分なりにも調べてみますね、
No.1
- 回答日時:
環境によっていろいろ方法が変わりますがほとんどの人はimmとか使ってないでOSに任せてるのではないでしょうか。
テキストエリアであればリソースのEDITTEXTかCreateWindowでTEXTコントロールを作るのがほとんどでしょう
ご回答ありがとうございます、
なるほど・・OSに任せられるならば楽なのですね;
DirectXでゲームとして作っているのですが、
稼動中のものに最前面にそれを表示させる・・事ができれば簡単そうに思えるのですが・・orz
用途によって仕組みが違うのですね;
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 画像編集・動画編集・音楽編集 【急】【Zbrush】3DCG初心者です。ノートPCでのZbrush動作環境につきまして 1 2023/08/19 17:38
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- 英語 会社で英語を使うことになっての英語の勉強方法 5 2022/07/03 11:49
- 日本語 自動詞と他動詞に関して 5 2022/11/15 21:03
- Windows 10 MicrosoftIMEでトラブル、助けてください m(_._)m 4 2023/05/16 14:11
- 日本語 「に」について 9 2022/10/25 16:32
- 仕事術・業務効率化 仕事ができない人間に向いている仕事は…? 5 2023/05/10 01:32
- 書類選考・エントリーシート 【急ぎです】指定校推薦の志望理由書の添削お願いしたいです! 商学部で1600字中1595字です 志望 1 2023/08/24 02:54
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる(続) 4 2023/03/21 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
読み取り専用が外れない
-
DirectXとOpenGLはどちらが動作...
-
ドラクエがプリセットされてるFOMA
-
C言語のif文について教えてくだ...
-
ソースのリンク先などの暗号化...
-
非道式6進カウンタと非同期式10...
-
PHPのプログラムが同時に呼び出...
-
Javadcriptでwebサーバー側にあ...
-
ajaxでhtmlを返して画面に描画…...
-
非同期通信を使うタイミングが...
-
F5などで更新すると、画像やCSS...
-
大量のデータを表として展開す...
-
制作したサイトが文字化けして...
-
ASP.NET(VB)VBソースからJavas...
-
8ビットダウンカウンタをVerilo...
-
カーソルの動きに合わせてDBか...
-
Ajaxでpostした内容のresponse...
-
JSTLを利用してJavascriptの結...
-
リンクを押すとEXEファイルを実...
-
ローカル用HTMLファイルの安全...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【JavaScript】confirmのボタン...
-
DirectXとOpenGLはどちらが動作...
-
[JavaScript] preven...
-
WEBページのリフレッシュについて
-
windows11ではアンドロイドアプ...
-
ASP.netで作成したシステムのip...
-
webシステムでchrome
-
JQuery サーバー上にアップする...
-
imm(日本語入力)が上手く行きま...
-
身のこなしの意味は動作ですか?
-
動作が重いJavaScriptを改善したい
-
ASP.NET 動的に行を増やすTable
-
DelphiでSelectDirectoryを..
-
読み取り専用が外れない
-
gifcatの挙動について
-
amazon販売の、microSD2枚→SDア...
-
Excel2019 VBA の objIE
-
エクセルマクロ ガントチャート作成方法について
-
リサイクルショップの「動作OK...
-
javascriptでバックグラウンド...
おすすめ情報