私は C++ でテキスト ライターを作成しています。これは、フレーズの文字列を持ち、各 char 値に適切なビットマップ フォントを表示します。
今のところ、通常の文字では機能していますが、アクセントや À、Á、Â、ã などの他の文字に対して奇妙な値が得られます。
私はこれをやっています:
int charToPrint = 'a';
//use this value to figure which bitmap font to display
ビットマップ フォントにはこれらの文字がありますが、この行では取得するはずの値が得られません。たとえば、 ã の場合は 195 、Çの場合は 199などです...
プロジェクトの文字セットをマルチバイトから Unicode に変更しようとしましたが、char->int 変換では何も起こらないと思います...
この変換を文字で取得するにはどうすればよいですか?
編集:私は Visual Studio 2012、Windows 7 を使用しています。これはビットマップ フォントを使用した OpenGL アプリケーションです。char値に従って、各文字の位置/幅/高さをマップしたので、文字aはビットマップ フォントの位置 97 にあります (プラス幅が考慮されます)。
描画するには、文字コードに基づいて位置を計算するだけです。
表示したいフレーズの文字列があり、各文字をループして charCode を計算し、描画関数を呼び出します。
これらのアクセント付きの文字では、負の値が得られるため、描画関数は何もしません (たとえば、Ç の位置 -30 はありません)。これらの値を適切に取得して描画関数に送信する方法を理解する必要があります。