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);
我正在编写一个 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);