Дело было так....
В переменной pszOutBuffer хранится ответ.
А теперь сам вопрос: как с*ка вернуть pszOutBuffer
C++:
std::string HTTPS_Request(LPCWSTR method, LPCWSTR https, LPCWSTR object_name, LPSTR data)
{
DWORD dwSize = 0;
DWORD dwDownloaded = 0;
LPSTR pszOutBuffer;
BOOL bResults = FALSE;
HINTERNET hSession = NULL, hConnect = NULL, hRequest = NULL;
DWORD data_len = strlen(data);
std::string result = "";
hSession = WinHttpOpen(L"WinHTTP Example/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
if (hSession) hConnect = WinHttpConnect(hSession, https, INTERNET_DEFAULT_HTTPS_PORT, 0);
if (hConnect) hRequest = WinHttpOpenRequest(hConnect, method, object_name, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE);
if (hRequest) bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, (LPVOID)data, data_len, data_len, 0);
if (bResults) bResults = WinHttpReceiveResponse(hRequest, NULL);
if (bResults)
{
do
{
dwSize = 0;
WinHttpQueryDataAvailable(hRequest, &dwSize);
pszOutBuffer = new char[dwSize + 1];
if (!pszOutBuffer) dwSize = 0;
else
{
ZeroMemory(pszOutBuffer, dwSize + 1);
if (WinHttpReadData(hRequest, (LPVOID)pszOutBuffer, dwSize, &dwDownloaded))
{
result = pszOutBuffer;
printf(result.c_str());
}
delete[] pszOutBuffer;
}
} while (dwSize > 0);
}
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
return result;
}
В переменной pszOutBuffer хранится ответ.
А теперь сам вопрос: как с*ка вернуть pszOutBuffer