原本尝试直接使用api修改路由表 但由于对路由表项这一结构体部分参数不熟悉 导致调用api时 出现传入参数有误的情况 所以添加路由表还是用cmd 的route命令
/k /c cmd中表示 执行后不自动退出与自动退出
修改路由表的API 包含头
#include <windows.h>
#include <Iphlpapi.h>
#include <Ws2tcpip.h>
#pragma comment(lib, "Iphlpapi.lib")
#pragma comment(lib, "WS2_32.lib")
GetIpForwardTable 参考 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365953(v=vs.85).aspx
CreateIpForwardEntry 参考 https://msdn.microsoft.com/zh-cn/library/windows/desktop/aa365860
SetIpForwardEntry 参考 https://msdn.microsoft.com/zh-cn/library/windows/desktop/aa366363
IP地址结构体
struct in_addr dest;
struct in_addr inadMask;
char szMaskIp[128];
dest.s_addr #define s_addr S_un.S_addr DWORD类型
inet_pton(AF_INET, dests.c_str(), &dest); 字符串类型转结构体
inet_ntop(AF_INET, &inadMask, szMaskIp, 16); 结构体转字符串
MFC IP Control 控件
直接.SetWindowTextW(str);
或.SetAddress()
mfc设置checkbox
checkbox = new CButton[itemNum];
checkbox[i].Create(cs, WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX, CRect(50, 60 + i * 25, 200, 75 + i * 25), this, i*10);
CFont * pfont = this->GetFont();
checkbox[i].SetFont(pfont);
mfc 设置radio button
设置第一个radio btn grout属性true
添加CButton类型变量 CHANGEADD
CHANGEADD.SetCheck(true); 设置选中
判断选中的radio btn
if (GetCheckedRadioButton(IDC_CHANGBTN,IDC_ADDBTN)==IDC_CHANGBTN)
{
}
执行bat脚本
ShellExecute(this->GetSafeHwnd(), _T("open"), _T("ordertemp.bat"), NULL, NULL, SW_SHOW);