2011-08-02 124 views
2
String* response_Page=""; 
std::string http_Response; 

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

response_Page = gcnew System::String(respstring); 

我想創建一個託管的C++/CLI dll用於C#,新的C++,它非常複雜,不能通過搜索獲取​​大量信息。C++ CLI gcnew未聲明的標識符

更新:我使用公共語言運行庫支持,舊語法(/ clr:oldSyntax)

四處錯誤:錯誤C2065:gcnew「:未聲明的標識符

回答

4

該錯誤是由使用新風格託管的C++語法和/ clr:oldSyntax編譯器選項造成的。請使用舊式語法或使用新式樣語法,並且不要使用oldSyntax標誌。

使用oldSyntax標誌的唯一原因是如果您維護遺留代碼。除了這個原因之外,避免使用舊的語法,它很糟糕。

+0

是否有可能創建可在c#中使用的託管dll新樣式語法 –

+0

@Milan:是的,這當然是可以的。不要忘記.Net運行時的版本需要在DLL和應用程序之間兼容。 – Skizz

1

您需要使用^代替*使用gcnew。如果你需要一個非託管的指針,然後使用*與新的

String^ response_Page=""; 

此外,還有很多C++/CLI書籍;你應該考慮得到一個。電子書格式可用。 http://manning.com/http://www.apress.com/

  • C++/CLI中的行動(曼寧)
  • C++/CLI在Visual C++語言爲.NET(Apress出版)
  • 臨的Visual C++/CLI和.NET 2.0平臺(Apress出版)
  • 專家的Visual C++/CLI:.NET的Visual C++程序員(Apress出版)C++/CLI的
  • 基礎:在Visual C++語言爲.NET 3.5(Apress出版)
  • 臨的Visual C++/CLI和.NET 3.5平臺(Apress)
+1

這意味着不使用/ oldSyntax :) – leppie