C++ 新手到指针
我需要将C++ 新手到指针,c++,C++,我需要将cs值放在对象客户机的括号内。我已经这样处理了cs变量: CString cs (bar_->GetHostName()); CString cs (bar_->GetHostName()); WinHttpClient client(cs); client.SendHttpRequest(); 但仍然无法将值放入以下代码中: WinHttpClient client(/* dont know what value to put here */); clien
cs
值放在对象客户机的括号内。我已经这样处理了cs
变量:
CString cs (bar_->GetHostName());
CString cs (bar_->GetHostName());
WinHttpClient client(cs);
client.SendHttpRequest();
但仍然无法将值放入以下代码中:
WinHttpClient client(/* dont know what value to put here */);
client.SendHttpRequest();
错误消息:
Error 1 error C2664: 'WinHttpClient::WinHttpClient(const std::wstring &)' : cannot convert parameter 1 from 'const char [15]' to 'const std::wstring &' c:\test.cpp
编辑:
CString cs (bar_->GetHostName());
WinHttpClient client(/*??*/);
client.SendHttpRequest();
wstring httpResponseHeader = client.GetHttpResponseHeader();
wstring httpResponse = client.GetHttpResponse();
writeToStorage(httpResponse.c_str());
我的函数writeToStorage
假设向文本文件写入内容。看起来,正在覆盖没有字符串的文件。。我不知道为什么:(您需要提供std::wstring
)
这个问题解释了转换:写WinHttpClient客户端(L“text”);
而不是WinHttpClient客户端(“text”);
Abyx是正确的。您应该在字符串之前写L。但它只适用于常量字符串。L是一个将char[]转换为wchar\u t[]的宏-Unicode字符数组。要进行动态转换,您必须使用函数。看起来您正在使用MFC的CString
,并且希望将cs
传递到WinHttpClient
以下是您的操作方法:
CString cs (bar_->GetHostName());
std::string s((LPCTSTR)cs);
WinHttpClient client(s);
client.SendHttpRequest();
如果WinHttpClient有一个接受wchar*的重载构造函数,那么您可以这样做:
CString cs (bar_->GetHostName());
CString cs (bar_->GetHostName());
WinHttpClient client(cs);
client.SendHttpRequest();
但是,如果您想传递其他答案中提到的纯文本,请执行以下操作:
WinHttpClient client(_T("Text"));
client.SendHttpRequest();
代码>比使用<代码> L>代码> “L”不是一个宏,它是宽字符串文字的一部分。