私は次のチュートリアル使用してC#クラスのためのC++ラッパーを構築しようとしている:私は、私がビルドし実行すると pragmateek C++ wrapper for C# classプロジェクトがビルドに失敗:「gcroot.hは、この文書は、別のプロジェクトで開かれた」
をこのエラーが出る:
Error C1001 An internal error has occurred in the compiler. [project name] C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.12.25827\include\msclr\gcroot.h 110
私はそれは、次のんのエラーをクリックしてください: VSが110
void swap(gcroot<T> & _right)
{ //VS shows error on this line
using std::swap;
swap(_handle, _right._handle);
}
行目にgcroot.hを開き、私は複数のポップアップがすべての読み取りを促し得る:
"This document is opened by another project"
私はVS2017を使用しています、.NET 4.5
はこれにいくつかのトリック私は見ていないよはありますか? C++で使用するための.netクラスをラップする、より現代的/より標準的な方法がありますか?私の最終目標はC#で開発し、C++でクライアント用のAPIを提供することです。私のクライアントはプロジェクトに戻って戻ってきて、C#の人を失って、プロジェクトの一部をC++に切り替えることにしました。
私はすでにGoogleで長時間過ごしています。
更新: は、次のいずれかを追加するには、エラーをスローすることが発生します。
#include <vcclr.h>
#include <msclr\auto_gcroot.h>
私はgroutです。ごめんなさい。そうしなければならなかった。 – user4581301
それもまた*本当です! – fish