回调函数的实现 & 结构体的继承
------------------------------------------------------------------------------------
[1]
------------------------------------------------------------------------------------
#pragma once //消息类型定义
static const DWORD MESSAGE_TYPE_2PARAM = ; // 两个填充参数 static const DWORD SVCMSG_CONTENT_LEN = ; // 即时消息内容最大长度
static const DWORD SVCMSG_RESULT_LEN = ; // 即时消息结果最大长度 #pragma pack(8)
//回调消息
typedef struct STRUC_BASIC_MESSAGE{
DWORD dwSvcType;
DWORD dwMsgType;
} BASIC_MESSAGE, *pBASIC_MESSAGE; //回调消息
typedef struct STRUC_BASIC_MESSAGE_EX : public BASIC_MESSAGE{
char chContent[SVCMSG_CONTENT_LEN];
char chResult[SVCMSG_RESULT_LEN];
} BASIC_MESSAGE_EX, *pBASIC_MESSAGE_EX; //消息回调函数原型
typedef DWORD (__stdcall *pMsgBack)(const BASIC_MESSAGE *struMessage); #endif
------------------------------------------------------------------------------------
[2]
------------------------------------------------------------------------------------
pMsgBack m_pMsgFunc; // 服务框架打印消息回调 CMSERVICE_API int WINAPI CMSvc_SetMsgCallback(const pMsgBack msgfunc)
{
if (NULL == msgfunc)
{
return -;
}
CGlobal::SnglPtr()->m_pMsgFunc = msgfunc;
return CMSvc_NO_ERROR;
}
------------------------------------------------------------------------------------
[3]
------------------------------------------------------------------------------------
void CGlobal::PrintMsgUtf8(const std::string & sMsg)
{
if (NULL == m_pMsgFunc)
{
return;
} BASIC_MESSAGE_EX msgEx;
//需要根据具体的服务器类型修改下面的参数
msgEx.dwSvcType = cms_8100::MT_SERVICE_CMS;//数据服务器
msgEx.dwMsgType = MESSAGE_TYPE_2PARAM;
wstring wsTime = GetCurTimeWStr();
string sMsgWithTime = myutils::UTF8_W2A(wsTime) + sMsg;
strcpy_s(msgEx.chContent, sMsgWithTime.c_str());
strcpy_s(msgEx.chResult, "");
m_pMsgFunc(&msgEx);
}
------------------------------------------------------------------------------------
回调函数的实现 & 结构体的继承的更多相关文章
- C语言中free()函数释放struct结构体中的规律
并不是什么新鲜的事情,不过值得注意.首先我们知道,在使用struct来定义并声明一个变量时,将会自动划分出一个连续的储存空间(虽然根据某些对齐原则会出现内存间隙,但是大体上来说还是连续的)这一块连续空 ...
- Libev源码分析01:Libev中的监视器结构(C结构体实现继承)
在Libev的源码中,用到了一种用C实现类似C++中继承的技巧,主要是用宏和结构体实现. 在Libev中,最关键的数据结构就是各种监视器,比如IO监视器,信号监视器等等.这些监视器的多数成员都是一样的 ...
- c# 函数练习;结构体、枚举类型
* 结构体 1.就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 注意:枚举类型和结构体都属于值类型. 2.定义的方法: struct student { public in ...
- C++模板学习:函数模板、结构体模板、类模板
C++模板:函数.结构体.类 模板实现 1.前言:(知道有模板这回事的童鞋请忽视) 普通函数.函数重载.模板函数 认识. //学过c的童鞋们一定都写过函数sum吧,当时是这样写的: int sum(i ...
- DLL 函数中使用结构体指针作函数参数(C# 调用 C++ 的 DLL)
存在的问题: 问题1:C++ 与 C# 同样定义的结构体在内存布局上有时并不一致: 问题2:C# 中引入了垃圾自动回收机制,其垃圾回收器可能会重新定位指针所指向的结构体变量. 解决方案: 问题1方案: ...
- 使用标准模板find函数来对结构体容器进行查找
最近在写一个项目,项目中需要获得类下面的所有对象,所以我采用了map容器,以string为关键字,list容器为内容来进行查找,而list中是一些struct结构体.由于在插入操作的时候需要判断该对象 ...
- (C/C++) 用函数返回一个结构体
方法一: 参数里含有指向指针的指针. 注意:如果函数参数里只有一个指向结构体的指针,是无法正确地返回结构体的值的.原因在于在编译的时候,会对入参p产生一个备份_p. 参考此文:http://www.c ...
- _stat函数/struct stat 结构体使用笔记
内容来自互联网,非原创,方便以后查看. 另,关于获取文件信息——_stat函数的使用详见 http://blog.csdn.net/frank_liuxing/article/details/1860 ...
- C语言结构体的“继承”
这里说的继承有点像C++里的父类和子类,实际上是结构体类型的强制转换,最近看Linux内核源码时经常接触到这种方法,在这里就当作是一个简单的学习吧. 下面给出一个Demo,很简单,分别定义了一个fat ...
随机推荐
- ZooKeeper启动过程2:FastLeaderElection
前一篇文章中说到,启动ZooKeeper集群时,需要分别启动集群中的各个节点,各节点以QuorumPeer的形式启动,最后到达startLeaderElection和lookForLeader. 先说 ...
- JS 验证一组input框是否为空的方法
function checkInput() { var $tr = $("#tb_confirmed .scrollContent").find("tr"); ...
- 如何为Eclipse设置代理
看图,不解释:
- (function($){...})(jQuery) 含义
最近在项目js文件末端中发现这样的代码,对于前端技术比较薄弱的我,着实还是有点晕,好在查阅到了相关资料,现解释如下: (function($){ $.plugin = new org.plugin. ...
- Http Framework
http request clientVolley https://android.googlesource.com/platform/frameworks/volley聚划算用的litehttp h ...
- 0911 Socket网络编程
1.实现ftp上传.下载功能 1.1 循环接收数据直到接收完毕 server端接收client发送的命令(比如说ifconfig),然后server端将命令执行结果反馈给客户端,这时候有个问题,ser ...
- BZOJ 3687 简单题
bitset维护某个和是否存在. bit<<x:所有子集的和+x. #include<iostream> #include<cstdio> #include< ...
- HDU 5405 (树链剖分+线段树)
Problem Sometimes Naive 题目大意 给你一棵n个节点的树,有点权. 要求支持两种操作: 操作1:更改某个节点的权值. 操作2:给定u,v, 求 Σw[i][j] i , j ...
- DirectX游戏编程入门
刚开始学习D3D,安装完DirectX9后,在VS2008中新建Win32项目· ----------------------------------------------------------- ...
- Web 数据可视化
/***************************************************************************************** * Web 数据可 ...