ブックタイトルTET5
- ページ
- 30/228
このページは TET5 の電子ブックに掲載されている30ページの概要です。
秒後に電子ブックの対象ページへ移動します。
「ブックを開く」ボタンをクリックすると今すぐブックを開きます。
このページは TET5 の電子ブックに掲載されている30ページの概要です。
秒後に電子ブックの対象ページへ移動します。
「ブックを開く」ボタンをクリックすると今すぐブックを開きます。
TET5
3.3 C++バインディング注記C++で書かれた.NETアプリケーションについては、C++バインディングを通じてではなく、TET .NET DLLに直接アクセスすることを推奨します(ただしC++バインディングを用いるべきクロスプラットフォームアプリケーションを除く)。TETディストリビューションに、この組み合わせを演示する.NET CLIで使用するC++サンプルコードを含んでいます。tetlib.h Cヘッダファイルに加えて、C++用のオブジェクト指向ラッパも提供されており、TETのクライアントから利用することができます。このラッパはヘッダファイルtetlib.hを必要とします。このヘッダファイルはtetlib.hをインクルードします。tet.hppはテンプレートベースの実装を内容として持ちますので、対応するtet.cppモジュールは必要ありません。C++オブジェクトラッパを使うことは、API関数と、すべてのTET関数名のTET_接頭辞とによる関数的アプローチを、よりオブジェクト志向なアプローチへ置き換えます。C++の文字列処理TETのテンプレートベースの文字列処理アプローチでは、文字列処理に関して以下の使用パターンが使えます:> C++標準ライブラリ型std::wstringの文字列が基本文字列型として用いられます。これは、UTF-16またはUTF-32で符号化されたUnicodeキャラクタを持つことができます。これはデフォルト動作であり、カスタムデータ型(次項参照)がwstringに対して大きな利点を持たないかぎり、新しいアプリケーションに対する推奨アプローチです。>文字列処理のためのカスタム(ユーザ定義)データ型を、そのカスタムデータ型がbasic_stringクラステンプレートのインスタンス化であり、かつユーザが与える変換メソッドによってUnicodeとの相互変換が可能であるかぎり、用いることができます。この技法は、TETディストリビューション内のglyphinfo.cppサンプルの中で演示されています。デフォルトインタフェースは、TETメソッドとやりとりされるすべての文字列がネイティブwstringであると見なします。wchar_tデータ型のサイズによって、wstringはUTF-16で(2バイトキャラクタ群)、またはUTF-32で(4バイトキャラクタ群)符号化されたUnicode文字列を内容として持つと見なされます。ソースコード内のリテラル文字列は、ワイド文字であることを示すために先頭にLをつける必要があります。リテラル内でUnicodeキャラクタは\u・\U文法で作成できます。この文法は標準ISO C++に含まれているのですが、コンパイラによってはこれに対応していないものがあります。その場合にはリテラルUnicodeキャラクタは16進数で作成する必要があります。注記EBCDICベースのシステムの場合、wstringベースのインタフェースに対するオプションリスト文字列を作成する際には、オプションリスト内にEBCDICとUTF-16のwstringが混在することを防ぐため、さらに変換を行う必要があります。この変換に便利なコードと利用法が、追加モジュールutf16num_ebcdic.hppにあります。C++のエラー処理TET API関数は、エラー発生時にはC++例外を発生させます。これらの例外はクライアントコード内でC++のtry/catch節を用いてキャッチする必要があります。さらなるエラー情報を提供するために、TETクラスはパブリックなTET::Exceptionクラスを提供しており、このクラスは、詳細なエラーメッセージ、例外番号、例外を発生させたTET API関数の名前を取得するためのメソッドを公開しています。TETルーチンが発生させたネイティブなC++例外は期待どおりに動作します。以下のコードは、TETが発生させた例外をキャッチします:30 3章: TETライブラリの言語バインディング