私は現在、C++ で記述され、MS Access バックエンドで True OLE DBGrid を使用するプロジェクトに取り組んでいます。GUI を変換してアラビア文字を表示できるようにする必要があるまでは、これですべてうまくいきます。DBGrid は Unicode を使用しないため、Unicode を使用せずにデータベースから文字を表示する方法が必要です。現在、地域の言語設定をアラビア語に設定しています。これを行ったときに、グリッドにアラビア語の文字を表示するように強制できますが、コードでは実行できません。実行時に英語とアラビア語を切り替える必要があります。データベースからデータを取得し、次のコードを使用して非 Unicode に変換できます。
_bstr_t tmp(vHolder.bstrVal, FALSE); //wrap the BSTR
CString Caption(static_cast<const char*>(tmp)); //convert it
RetCaption = Caption;
これで、アラビア語を AfxMessageBox に投稿でき、正しく表示されますが、非 Unicode 文字を受け入れて正しく表示するようにグリッドを取得できないようです。
何か案は?