怎么用回调函数完成字符串命令的解析
如何用回调函数完成字符串命令的解析
首先呢 祝大家新年快乐~~~
我要做一个简单的网络游戏,有各种各样的命令。但是我不想这么解析命令:
比如 服务器向客户端发出hello 123命令 然后客户端就能调用void hello(int num)的代码 怎么用回调函数完成这个目的?
------解决方案--------------------
你这是客户端和服务器,不太适用回调吧?
------解决方案--------------------
Switch..case
------解决方案--------------------
void hello(int num)放入dll,客户端根据hello 123动态加载dll,GetProcAddress(hello)
------解决方案--------------------
这没满足楼主需求吧
楼主是要客户端回调服务单
------解决方案--------------------
用一个固定的函数模式:VOID foo(PVOID param)之类的。
typedef VOID (*CALL_FUNC)(PVOID param);
然后就可以开个数组 CALL_FUNC func[N];
你可以用一个string table一一对应这些函数,用(func[i])(param)调用它们,
或者函数较多就开个hash。
------解决方案--------------------
用哈希表,将命令与处理函数地址作为一个元组,收到命令后,直接查找哈希表,调用处理函数处理参数。
------解决方案--------------------
7楼方法不错
首先呢 祝大家新年快乐~~~
我要做一个简单的网络游戏,有各种各样的命令。但是我不想这么解析命令:
- C/C++ code
if(A命令){...} else if(B命令){....} else if(...){...}
比如 服务器向客户端发出hello 123命令 然后客户端就能调用void hello(int num)的代码 怎么用回调函数完成这个目的?
------解决方案--------------------
你这是客户端和服务器,不太适用回调吧?
------解决方案--------------------
Switch..case
------解决方案--------------------
void hello(int num)放入dll,客户端根据hello 123动态加载dll,GetProcAddress(hello)
------解决方案--------------------
这没满足楼主需求吧
楼主是要客户端回调服务单
------解决方案--------------------
用一个固定的函数模式:VOID foo(PVOID param)之类的。
typedef VOID (*CALL_FUNC)(PVOID param);
然后就可以开个数组 CALL_FUNC func[N];
你可以用一个string table一一对应这些函数,用(func[i])(param)调用它们,
或者函数较多就开个hash。
------解决方案--------------------
用哈希表,将命令与处理函数地址作为一个元组,收到命令后,直接查找哈希表,调用处理函数处理参数。
------解决方案--------------------
7楼方法不错