std :: exceptionとstd :: runtime_errorのUnicode版を作成したかったのです。
だから私は、C++標準ライブラリから実装を取り出して、ユニコードをサポートするように変更するのが良い方法だと考えました。Visual C++標準ライブラリのキーワード
だから私は、ビジュアルC++でヘッダ例外と stdexcept提供をプルアップコードをコピーし、自分の変更を行いました。
事は、私が_CRTIMP_PURE
を削除しない限り、私はそれをリンクすることができなかったです。 また、すべてのメンバー関数から接頭辞_EXCEPTION_INLINE __CLR_OR_THIS_CALL
を削除しました。
これはうまくいっていますが、私はこれらのことが何をしているのか非常に不思議です。
_EXCEPTION_INLINE
それは文字通り#define _EXCEPTION_INLINE
として右のそれの上に定義された、と私のグーグルでのスキルは、彼らが何をすべきか上の任意のドキュメントを見つけることができません。
だから、誰でもこれらの目的を知っていますか?そしてなぜ私はクラスから接頭辞_CRTIMP_PURE
を取り除くまでリンクしていませんか?
あなたが 'unicode'と言うとき、 'char *'と 'std :: string'はUTF-8に完全に適しているので、あなたが実際に意味するのは「UTF-16」だと思います。 UTF-16に変換します。 –
コピーして変更した後、少なくとも 'std :: exception'と' std :: runtime_error'の名前を変更しましたか?コンパイラが提供するハッキングされたライブラリクラスを共存させることは、災害のためのレシピのように思えます。 –
@BenjaminLindley:WindowsではUnicodeは常にUTF-16としてエンコードされているので、Microsoftの* Unicode *と* UTF-16 *は互換性をもって使用されていると思います。 –