我目前正在研究 WinHttp API,并遇到了此处WinHttpConnect()
描述的函数。参数描述让我很担心。上述页面首先给出了函数原型
WINHTTPAPI HINTERNET WinHttpConnect(
[in] HINTERNET hSession,
[in] LPCWSTR pswzServerName,
[in] INTERNET_PORT nServerPort,
[in] DWORD dwReserved
);
继续参数说明。第二个输入参数解释如下(省略最后两句不相关的句子):
[in] pswzServerName
指向包含 HTTP 服务器主机名的以空字符结尾的字符串的指针。或者,该字符串可以包含站点的 ASCII IP 地址,例如 10.0.1.45。[...]
这就是我苦苦挣扎的部分。在 C 语言中,字符串要么由宽字符组成(如参数类型LPCWSTR
所暗示的那样),要么由字节组成(如措辞“IP 地址 [...] ASCII 格式”所暗示的那样)。我不清楚函数如何区分参数指向的内存位置上的字节是组成窄字符串的字节还是组成宽字符串的宽字符。
有人可以解释一下吗?