開発環境:
WindowsXP Pro SP2
Visual Basic 6.0 Pro SP6
お世話になります。
RTFをHTMLに変換するソフトを作成しようと思っているのですが、
リッチテキストボックスのTextRTFプロパティの値が、OS(98/Me、2000/XP)で異なるようで困っています。
上記の確認は、リッチテキストボックスの内容が変わったら、TextRTFプロパティの値をテキストボックスに書き出すソフトを作成し、98とXPで実行して行いました。
Visual Studio Installer 1.1でインストーラを作成し、RCHTXJP.DLL、RICHED32.DLL、RICHTX32.OCXもインストールされるようにして試しましたが、結果は変わりませんでした。
さらに、OS側に元から入っているものを無効にし、作成したソフトをインストールしても結果は変わりませんでした。
98とXPに入れたDLL、OCXが同一にも関わらずこのような結果になってしまうようです。
これが正常で当たり前なことなのかも判断できないため、ご質問させていただきました。
OSが98/Me、2000/XPのどちらでも、同一のTextRTFの値を取得することは可能でしょうか?
元となっているRichEditはOSごとにかなり仕様が変わっています。
# 機能が追加されていく、と書くべきなのか?
一方でVB6のRichTextBoxはRichEdit Ver.1.0をラッピングしたもの
に過ぎません。さらに、このRichEdit Ver 1.0も実は2形態あって、
A,OSが2000以降では、Ver 3.0を内部で呼び出している。
B,それより前のOSでは単体で実装している。
となっています。
で、AとBでは様々なところで違いが出ています。有名なところ
だけでも、Aの内部文字コードはUnicode、Bのそれは日本語版だと
Shift-JISというかなりの違いがあります。
この文字コードやフォント、言語の指定に関するところは、それ
だけで異なってしまうでしょうから、RichEdit Ver 1.0を元に
したコントロールを使う限りは普通に発生する違い、ということ
になると思われます。
K.J.K.さん、ご返事ありがとうございます。
内部でさらに呼び出しているとは思いもしませんでした。
RichEdit Ver 1.0を基にしている以上、
OSによって差が出てきてしまうのは仕方が無いことなのですね。
ご丁寧にありがとうございました。
地道にOS(RTFのバージョン)ごとにコードを書いていくことにします。
ツイート | ![]() |