1

ネイティブ ライブラリを使用する c++/cli ライブラリをコンパイルしようとすると、いくつかのエラーが発生し、c++/cli プロジェクトにはマーシャリング用の msclr ヘルパーが含まれています。次のヘッダーを追加すると

#include <msclr\marshal_cppstd.h>

エラーが発生します

Error   1   error C2059: syntax error : '<class-head>'

他の数人もフォローアップしています。

構文エラーは、外部 (サード パーティ) の C++ ライブラリのヘッダー ファイルを指しています (そのため、ヘッダーを変更できません)。

namespace SomeExternalLibNamespace
{
   namespace interface // problem might be here (interface is a keyword in c++/cli)
   {

marshal_cppstd.h をインクルードせず、独自のメソッドを使用して手動でマーシャリングを行うと、すべてがコンパイルされ、正常に動作します。

4

3 に答える 3

0

「インターフェイス」が実際にキーワードである場合、それが明らかにエラーの原因です。たとえば、 : namespace interface_ で試してから、再コンパイルして結果を確認してください。

于 2013-03-08T10:46:00.070 に答える
-2

引用符 : "" を使用して、カスタム ヘッダー ファイルを含める必要があります。

#include "msclr\marshal_cppstd.h"
于 2013-03-08T10:36:44.600 に答える