本程序通过调用动态链接库获取局域网内可用IP。
为了获取动态链接库中的结构体类型变量,可以在调用动态链接库时传入相同结构的结构体参数。
例:
//动态链接库,通过调用IPscan()可以获得参数值:ip_scan_reply
DLL
.h
typedef struct
{
char echo_ip[100][16];
BOOL error_message;
}IP_SCAN_REPLY;
//声明函数为导出函数返回参数、形参类型要和函数本身保持一致
extern "C" _declspec(dllexport) void IPscan(IP_SCAN_REPLY * ip_scan_reply);
.cpp
void IPscan(IP_SCAN_REPLY * ip_scan_reply)
{
/**************
函数体
**************/
(* ip_scan_reply) = result;
return;
}
下面是调用上述动态链接库并获取动态链接库执行结束后的参数
ip_scan_reply
的方法。
//MFC调用动态链接库
//定义相同结构的结构体
typedef struct
{
char echo_ip[100][16];
BOOL error_message;
}IP_SCAN_REPLY;
//按钮事件
void CLocal_Area_Network_IP_ScanDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//定义dll的句柄
HINSTANCE hDll = NULL;
//定义结构体变量,用于存储从动态链接库返回