さっきまで知らなかったこと。
文字列へのポインタがNULLで、長さが0以外だったら、渡された文字列へのポインタと長さが取れること。
// ホスト名だけとれりゃいいやっていう状況 TCHAR url[] = _T("http://syoobi.jp:80/bbb/ccc.html"); URL_COMPONENTS uc; ZeroMemory(&uc, sizeof(URL_COMPONENTS)); uc.dwStructSize = sizeof(URL_COMPONENTS); uc.dwHostNameLength = 1; // 0以外の値。uc.lpszHostNameLengthはZeroMemory()でNULLになってる InternetCrackUrl(url, 0, 0, &uc); CString hostName(uc.lpszHostName, uc.dwHostNameLength);