- - PR -
カナ変換
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-19 09:11
ありがとうございます。
>dwSizeには必要なサイズが戻ってきていますか? はい、一応、値は戻って来ているようですが。 dwSizeを受け取るところで ImmGetConversionListの3番目の引数に文字列を渡しているのですが byvalで宣言されている、引数の値が変更されてしまうのは、なぜなのでしょうか? >あと、コードはコードタグで囲っていただけると読みやすいです。 そうか!タグで囲ってやればよかったんですね。 | ||||||||||||||||||||
|
投稿日時: 2004-05-19 12:58
諸農です。
3番目の引数内容が変化するのは、変ですね。。 以下は、こちらでの検証内容です。 参考になりますか。 リバースする文字に「重複」を使いました。 dwSizeは68で、オフセットは36、 取得できた逆変換文字列は、 「じゅうふく」 「ちょうふく」 「しげふく」 でした。 -P.S.- http://www.pinvoke.net のほうでImm32カテゴリを追加していただいたので、 最新版をアップしておきました。 #もちろんC#です(^_^;) _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||
|
投稿日時: 2004-05-19 15:10
こんにちは
こちらでも「重複」で試してみたところ dwSizeに96が戻ってきます。 そして、リストを取得するImmGetConversionListで エラーが発生してしまいます。 VB.NETとC#は文法は違えど、基本的に同じ動作をすると認識していたのですが、 間違っているのでしょうか? | ||||||||||||||||||||
|
投稿日時: 2004-05-19 15:53
諸農です。
[quote] こちらでも「重複」で試してみたところ dwSizeに96が戻ってきます。 そして、リストを取得するImmGetConversionListで エラーが発生してしまいます。 [/qutoe] 関数のエントリポイントを ImmGetConversionListA にされているようですが。。 ちなみにOSは何でしょうか? こちらはXP PROです。
同じ動作をすると思います。 あ、でも、それは同じ動作をするように書けば、ですが(^^ゞ _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2004-05-19 15:55 ] | ||||||||||||||||||||
|
投稿日時: 2004-05-19 16:05
>関数のエントリポイントを
> >ImmGetConversionListA > >にされているようですが。。 ImmGetConversionListWでも試してみましたが、だめでした。 >ちなみにOSは何でしょうか? >こちらはXP PROです。 こちらはWin2000Proです。 文字列がUnicodeとか、文字列終端の違いとかですかね。 ※そちらでも、3番目の引数が変更されてしまう現象はでますか? では。 | ||||||||||||||||||||
|
投稿日時: 2004-05-19 16:09
ごめんなさい。
前のスレッドの、「※」以降は勘違いです。 諸農さんのほうでもVB.NETの環境で試されたのかと思いました。 その前のスレッドの前半部分(僕の書き込みの引用を諸農さんの文かと勘違い) すいません。 | ||||||||||||||||||||
|
投稿日時: 2004-05-19 16:32
諸農です。
ただの「ImmGetConversionList」ではどうでしょうか?
変ですね。。 元々のコードはWin2000で作ったんです。 今日はたまたまXP PROを使っているんで。。
現象からすると、そのあたりとは考えにくいような。 あらためて、最初にアップされていたコードを見てみました。
の、宣言なんですが、ByRef lpCandidateList As IntPtr のところで、 ポインタを参照で渡しているのが私のコードとの差異かな。。。
それは発生しませんね。。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||
|
投稿日時: 2004-05-19 16:49
成功しました。
以下の3点の変更で実現できました。 1.ImmGetConvertListAを使用 2.ImmGetConvertListAの引数をすべて値渡しに変更 3.ImmGetConvertListの3番目の引数をバイト配列とし、 シフトJISのバイトコードに変換した後で処理する。 まだ、これがWIN98で動作するかどうかは分かりませんが。。。 |