winapi函數WinHttpSendRequest()需要第三個參數的大小和第五個參數的大小。
我該如何計算它?
我纏着一個功能,我直接通過字符串,大約是這樣的:C++獲取LPCWSTR和LPVOID的長度
void Req(LPCWSTR headers, LPVOID body) {
WinHttpSendRequest(hRequest, headers, (DWORD)strlen(headers), body, (DWORD)strlen(body), 0, 0);
}
Req(L"User-Agent: blabla/1.0\r\nConnection: Keep Alive", "asdf=qwer&abcd=1234);
上面的代碼不起作用。 :/
我希望你能幫助我。
'strlen'適用於窄字符串,不適用於寬字符串。 'void *'沒有長度。我建議爲第二個參數採用一個實際的字符串,如果需要,它會隱式轉換爲'const void *'。 – chris
我如何將它轉換爲const void *? – Forivin
如果你使用非const字符串,它會自動完成,否則它會轉換爲'const void *'。由於該函數採用非常量函數,因此假定它不修改它並不安全,並且修改類似字符串文字的內容非常糟糕。你總是可以接受一個常量字符串,並從中構建一個非常量字符串。並且可能使用實際的C++字符串,這對您的函數使用更自然。 – chris