下面这段C++代码什么意思 新手求教
typedef
BOOL
(PASCAL FAR * LPFN_TRANSMITPACKETS) (
SOCKET hSocket,
LPTRANSMIT_PACKETS_ELEMENT lpPacketArray,
DWORD nElementCount,
DWORD nSendSize,
LPOVERLAPPED lpOverlapped,
DWORD dwFlags
);
[解决办法]
BOOL PASCAL FAR my_func1 (
SOCKET hSocket,
LPTRANSMIT_PACKETS_ELEMENT lpPacketArray,
DWORD nElementCount,
DWORD nSendSize,
LPOVERLAPPED lpOverlapped,
DWORD dwFlags
);
BOOL PASCAL FAR my_func2 (
SOCKET hSocket,
LPTRANSMIT_PACKETS_ELEMENT lpPacketArray,
DWORD nElementCount,
DWORD nSendSize,
LPOVERLAPPED lpOverlapped,
DWORD dwFlags
);
LPFN_TRANSMITPACKETS call_back;
call_back = &my_func1;
call_back( .....);//这时相当于调用my_func1
call_back = &my_func2;
call_back( .....);//这时相当于调用my_func2
[解决办法]
定义一个LPFN_TRANSMITPACKETS函数指针类型。
LPFN_TRANSMITPACKETS fn;
fn指向一个函数的入口地址。函数的返回类型是 FAR *,
参数表是(
SOCKET hSocket,
LPTRANSMIT_PACKETS_ELEMENT lpPacketArray,
DWORD nElementCount,
DWORD nSendSize,
LPOVERLAPPED lpOverlapped,
DWORD dwFlags
);