Windows char 和 Char 类型和字符串 Console::WriteLine()

Windows char and Char types and strings with Console::WriteLine()

我正在编写一个 Winsock 应用程序,有一次我需要形成 tcp 消息,这是一个网页的 http get 请求。

char clientmessage[] = "GET / HTTP/1.1\r\n\r\n";
Console::WriteLine(clientmessage);

当我尝试使用 Console::WriteLine() 方法打印消息时,它会打印 True。我认为这可能是该方法的问题,也许我需要像本教程中那样使用 puts()http://www.binarytides.com/winsock-socket-programming-tutorial/

感谢任何帮助。

它似乎隐式地将非托管指针转换为 System.Boolean。 为了使用 .NET API,您需要整理参数。在这种情况下,您需要将 clientmessage 编组为 System::String^。您可以使用 System::Runtime::InteropServices::Marshal::PtrToStringAnsi() 方法执行此操作。

char clientmessage[] = "GET / HTTP/1.1\r\n\r\n";
System::String^ str = System::Runtime::InteropServices::Marshal::PtrToStringAnsi(static_cast<System::IntPtr>(clientmessage));
Console::WriteLine(str);