掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBのPrinterオブジェクトでUnicodeを印字するには? (ID:51043)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。 Visual C++は全くのド素人です。 現在、VBでファイルにあるUnicodeを印字するプログラムを作成中です。 例えば、ファイルには以下のような文字コードが列挙されています。 ---------------------------------------- 0020 0021 ... FFE5 ---------------------------------------- この16進数のUnicodeを取得して、文字としてプリンタに送信します。 VBでは、Unicodeの文字を表示する関数ChrWとPrinterオブジェクトで 実装しています。 ---------------------------------------- 'SJISに無い領域にもUnicode文字を持つフォントを指定 Printer.Font = "Arial Unicode MS" For i = XX To XX '印字処理 Printer.Print ChrW(取得した文字コード) '処理状況を表示するプログラム Progressbar.Value = XX Next ---------------------------------------- しかし、VBでは入出力時にUnicodeをSJISコードに内部で変換しているらしく SJISコードにないUnicode領域の文字は全て"?"に置き換えられてしまいます。 Unicode(0x3042) ⇒ あ (VBで表示可能) Unicode(0x8a21) ⇒ ごんべんに今という文字(VBでは表示不可) このため、印字すると"あ"は表示されますが、下の文字は"?"で印字されます。 VCではこのような内部的な変換(Unicode ⇒ SJIS)を行わないように 指定可能と聞いたのですが。。。 そのため、印字部分全てをVCで外部DLLとして作成するか考えたのですが、 できればVBで制御したいため、プリンタに文字を送る部分VBでは Printer.Print ChrW(取得した文字コード)の部分のみを 外部モジュールDLLとしてVCで作成できないでしょうか? 例えば、VBのプリンタオブジェクト(Printer)のハンドルと文字コードを 引数にそのプリンタに文字を送るといったことは可能でしょうか?? わけのわからない質問で申し訳ございませんが、御教授御願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.