我正在使用c ++中的winHTTP API,并且已经开始为我的应用程序编写包装器类。为简单起见,我有许多函数可以采用字符串参数,并在winHTTP调用中使用它们。但是,其中许多要求数据为LPVOID或LPCWSTR。我可以通过使包装函数采用LPVOID或LPCWSTR参数来使其全部工作,但我更喜欢字符串参数。那么,从刺痛到LPVOID / LPCWSTR有什么隐秘的方法吗?
我的尝试(如下)刚刚产生了胡言乱语
bool httpWrapper::setPostData(const string &postData){
_postData = (LPVOID)postData.c_str();
_postData_len = 47;
return false;
}
任何帮助将非常感激
谢谢
最佳答案
用这个:
bool httpWrapper::setPostData(const string &postData){
_postData = (LPWSTR)postData.c_str();
_postData_len = 47; // Something else, actually.
return false;
}
LPWSTR _postData;
您可以将LPWSTR传递给需要LPCWSTR的方法。因此,您可以使用字符串。
顺便说一句,您是否只是尝试传递字符串本身?我希望它也能起作用,并且比发布LPWSTR更好。
因此,在这种情况下,它看起来像:
bool httpWrapper::setPostData(const string &postData){
_postData = postData;
_postData_len = 47; // Whatever.
return false;
}
string _postData;