C ++ CLI gcnew необъявленный идентификатор - PullRequest
2 голосов
/ 02 августа 2011
String* response_Page="";
std::string http_Response;

//WinHttp Request
//http_Response append (pszOutBuffer);

response_Page = gcnew System::String(respstring);

Я пытаюсь создать управляемую dll C ++ / CLI для использования в c #, плохо знакомую с C ++, это действительно сложно, я не могу получить много информации просто путем поиска.

Обновление: яиспользование поддержки общеязыковой среды выполнения, старого синтаксиса (/ clr: oldSyntax)

Ошибка при получении: ошибка C2065: 'gcnew': необъявленный идентификатор

Ответы [ 2 ]

4 голосов
/ 02 августа 2011

Ошибка вызвана использованием управляемого синтаксиса C ++ нового стиля с параметром компилятора / clr: oldSyntax. Либо используйте синтаксис старого стиля, либо используйте синтаксис нового стиля и не используйте флаг oldSyntax.

Единственная причина использовать флаг oldSyntax - если вы поддерживаете устаревший код. Помимо этой единственной причины, избегайте старого синтаксиса, это было отвратительно.

1 голос
/ 02 августа 2011

Вам нужно использовать ^ вместо *, чтобы использовать gcnew. Если вам нужен неуправляемый указатель, используйте * с новым

String^ response_Page="";

Кроме того, существует множество книг по C ++ / CLI; Вы должны рассмотреть возможность получения одного. Доступен формат электронной книги. http://manning.com/ и http://www.apress.com/

  • C ++ / CLI в действии (Мэннинг)
  • C ++ / CLI Язык Visual C ++ для .NET (Apress)
  • Pro Visual C ++ / CLI и платформа .NET 2.0 (Apress)
  • Эксперт Visual C ++ / CLI: .NET для программистов Visual C ++ (Apress)
  • Основы C ++ / CLI: язык Visual C ++ для .NET 3.5 (Apress)
  • Pro Visual C ++ / CLI и платформа .NET 3.5 (Apress)
...