我正在使用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;

10-08 06:01