- - PR -
カナ変換
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-20 07:31
諸農です。
おおっ、良かったです。 是非、www.pinvoke.netに登録してください。
VBでの宣言の方法が良くわかっていないのですが、 関数エイリアス(エントリポイント)は ImmGetConvertListA/Wと言ったようにどちらか決めうち でないとダメなんでしょうか? また、関数の3番目の引数をバイト配列に変更とありますが、 ちょっと変な感じというか無駄な作業を関数呼び側に強いて いる感がありますね。。
確かに。。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2004-05-20 09:24
imm32.dllの呼び出しを、属性を使うようにしました。
エンコーディングは、Defaultでは文字化けしていました。ここの部分だけ、9x系、NT系で、エンコーダーを分ければいいと思います。 ついでに、取得できる「読み仮名」は、使用しているIMEに依存するようです。“重複”を入力した時の戻り値は、ATOK17で「チョウフク」「ジュウフク」(半角カナ)、MS-IME2002で「じゅうふく」「ちょうふく」「しげふく」(全角かな)(その後にゴミがいっぱい・・・)でした。 しまったぁ・・・「Imm32.Dllのラッパークラス」の意味でWR_Imm32なのだが、User32.Dllが混ざっている・・・ [ メッセージ編集済み 編集者: Jitta 編集日時 2004-05-20 09:56 ] | ||||||||||||
|
投稿日時: 2004-05-20 09:35
こんな方法でAPI関数が宣言できるのですか。。
僕が今までやっていた、VB6譲りの宣言方法だとImmGetConversionListA/Wを明確に宣言しなければならなかったのですが、これならCのように「ImmGetConversionList」で使用できるのですね。 | ||||||||||||
|
投稿日時: 2004-05-20 11:06
諸農です。
今、ATOK17の環境で試してみました。 確かに、IMEの違いで戻りが変わってきますね。。 あ、それと、ゴミがいっぱいの現象ですけど、最初にアップした私の コードに不具合があるんです。。すみませんm(__)m 関数から戻ってきた構造体のdwCountを確認して、逆変換文字列が いくつ含まれているかを確認する必要がありました。 戻りのバッファには、タイミングによっては何故かnullやらゴミやらが 続く事があるようです。。 この現象、最初に思ったのが、SHFileOperationの様にバッファの最後に はNull文字が連続して続くのかな、と思い「-3」なんていうとんでもない 決めうちをしていたんですが。。(^^;
と言う事で修正しました。 pinvokeの方も直しておきましたm(__)m _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2006-03-11 22:03
こんにちは!
vb.netの中に実行するのは正確です。 何故Asp中にエラーが出ましたか。 皆さんお願いいたします。 [ArgumentOutOfRangeException: 負の値ではない数値が必要です。 パラメータ名 : index] System.Text.UnicodeEncoding.GetCharCount(Byte[] bytes, Int32 index, Int32 count) +182 System.Text.Encoding.GetChars(Byte[] bytes, Int32 index, Int32 count) +28 System.Text.Encoding.GetString(Byte[] bytes, Int32 index, Int32 count) +15 vbImeConvert.vbImeConvert.GetReverseConversion(String AText) houshi.Meibo_add.ImeConvert2_Click(Object sender, EventArgs e) System.Web.UI.WebControls.Button.OnClick(EventArgs e) System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) System.Web.UI.Page.ProcessRequestMain() | ||||||||||||
|
投稿日時: 2006-03-12 00:09
引数 index が有効でない値です。 デバッグしてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-03-12 01:08
VB.net中できますが、ASP中何故できない?
|
«前のページへ
1|2|3