SendMessage(hIpControl, IPM_GETADDRESS, 0, (LPARAM)lpIPAddress);
    TextOut(hdc, 10, 10, (LPCWSTR)lpIPAddress , 20);
//where static LPDWORD lpIPAddress = (LPDWORD)malloc(sizeof(LPDWORD));


hIpControl是IP控件的句柄。当我运行这个文本出来只是显示随机的中国符号和东西。如何安全地检索IP地址并将其存储在字符串中。为了让我的应用程序正常工作,我需要用一个类似“192.168.1.4”的字符串。

最佳答案

IPM_GETADDRESS将地址返回为DWORD,而不是字符串。

DWORD dwAddr;
int iCount = (int)SendMessage(hwndCtl, IPM_GETADDRESS, 0, (LPARAM)&dwAddr);
wchar_t wchAddr[20];
StringCchPrintf(wchAddr, _countof(wchAddr), L"%ld.%ld.%ld.%ld",
    FIRST_IPADDRESS(dwAddr),
    SECOND_IPADDRESS(dwAddr),
    THIRD_IPADDRESS(dwAddr),
    FOURTH_IPADDRESS(dwAddr));

请注意,用户输入的四个象限可能少于全部四个(iCount在上面的示例中包含返回的四个象限的数量),因此您需要在现实生活中考虑这一点。

关于c - 从c中的IP地址控件中检索文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12240363/

10-11 15:46