このコードを使用して、しばらくの間 C++/CLI で文字列をマーシャリングしてきました 。最近、VS 2012 RC に更新して試してみました。シンプルなデザインがとても気に入りましたが、clix.h を含むプロジェクトはどれもコンパイルできませんでした。2010年にはうまくいきました...何が問題なのですか? 回答ありがとうございます。
コンパイラ出力は次のとおりです。
- 警告 C4346: 'clix::detail::IsManagedString::Result' 依存名は型ではありません。
- エラー C2988: テンプレートの宣言/定義を認識できません
- エラー C2059: 構文エラー: '<'
- エラー C2039: '結果': '`グローバル名前空間'' のメンバーではありません
- エラー C2143: 構文エラー: ';' がありません 前 '}'
コード ブロックのエラーは次のとおりです。
typename detail::Select<detail::IsManagedString<SourceType>::Result>::Type<
typename detail::StringTypeSelecter<encoding>::Type,
System::String ^>::Result marshalString(SourceType string) {
// Pass on the call to our nifty template routines
return detail::StringMarshaler<
detail::IsManagedString<SourceType>::Result ? detail::CxxFromNet : detail::NetFromCxx
>::marshal<encoding, SourceType>(string);
}
例、ソース ファイル:
#include "clix.h"
int main()
{
}
Clix ヘッダー ファイルは、このリンクにあります。