質問: WSAAddressToString関数を使用してコンピューターの IP アドレスを取得しようとしています。彼らの Web サイトで msdn のドキュメントを調べましたが、構造内に構造が多すぎて、そこが間違っていると感じています。コードは、 こちらのペーストビン リンクで提供されています。正確にどこが間違っているのか教えてください。
回答: コードに WSAStartup関数を含め、既存のコードにいくつかの変更を加えた後、問題は修正されました。完全なコードはペーストビンにあり、変更されたセクションは以下にあります。
retval = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (retval != 0)
{
printf("WSAStartup() failed with error code %d\n", WSAGetLastError());
return 1;
}
else
printf("WSAStartup() is OK...\n");
size=256;
lp=pAddresses->FirstUnicastAddress->Address.lpSockaddr;
size2=pAddresses->FirstUnicastAddress->Address.iSockaddrLength;
if(WSAAddressToStringA(lp,size2,NULL,op,&size)!= 0)
{
printf("This thing has failed \n");
printf("errordetail: %i\n", WSAGetLastError());
return 1;
}
else
printf("\t The ip address is = %s\n", op);