关于GetAdapterIndex()的问题!
IPHelper的GetAdapterIndex()函数需要一个参数(Adapter的name)才能得到它的index;
Adapter的name是通过GetAdaptersInfo()来得到的;
现在name 已经得到了,是用一个CString类型的变量来接收的;
内容是这种格式:{52234678-C691-46F7-9C23-1EF34328F188};
但是现在的问题是GetAdapterIndex()里面需要的参数(name)类型是LPWSTR;
我将 CString 转成 WCHAR 就会造成内容的丢失,导致使用GetAdapterIndex()的时候返回值是55 (指定的网络资源或设备不再可用。);
怎么样才能使GetAdapterIndex完整的得到name的内容?
[解决办法]
兄弟阿,你要是还用VC++6,的MFC,建议赶快升级
[解决办法]
{52234678-C691-46F7-9C23-1EF34328F188}估计这个不能作为AdapterName传入GetAdapterIndex(), 但GetAdaptersInfo也能返回Index, 如下:
#include "stdio.h "
#include "windows.h "
#include "iphlpapi.h "
int main(void)
{
IP_ADAPTER_INFO iai[10] = { 0 };
ULONG cchBufLen = sizeof( iai );
if( GetAdaptersInfo(iai, &cchBufLen) == NO_ERROR )
{
PIP_ADAPTER_INFO pipai = iai;
do
{
printf( "Adapter Name: %s\n ", pipai-> AdapterName);
printf( "Description: %s\n ", pipai-> Description);
printf( "Adapter Index: %d\n\n ", pipai-> Index); // 这个Index可以吧
pipai = pipai-> Next;
}while( pipai != NULL );
}
return 0;
}