`
love19820823
  • 浏览: 934208 次
文章分类
社区版块
存档分类
最新评论

用户自定义结构数据与VARIANT转换

 
阅读更多

用户自定义结构数据与VARIANT转换

cheungmine

将用户自定义的C结构数据存储成VARIANT类型,需要时再将VARIANT类型转为用户自定义的结构数据,有十分现实的意义,既然我们不想为这样的结构数据写一个COM包装类。虽然有很多方法和手段生成这样的VARIANT,但是,多数时候可能需要一个更加简单的,灵活的方法。我在做远程过程调用的C接口时,忽然联想到,既然RPC可以把任何数据以字节的形式发送,那么,就可以利用这个机制,把结构打包成字节数组。而字节数据是可以很方便地存储在VARIANT中。

这个过程是广为人知的,但是,真正把结构列集成字节数组,如果不想使用某些标称的序列化的方法,而全部自己写,的确要费一番功夫。不是

技术有多难,是很繁琐。我把前2年写的代码翻出来,简单调用一下,就有了这篇文章。采用我的方法,C/C++程序员可以把自己定义的结构放到VARIANT、CComVariant、COleVariant等各种VARIANT中,也可以反向转换。而VARIANT是可以很方便地在COM接口中传递。这样,就多了一种在自动化COM接口中传递自定义结构的手段。

不多说废话,全部内容见下面的代码,我还会上传整个工程。

struct2variant.cpp 如下:

其中:rpcapi.h可以参考如下:

rpcapi.c如下:

整个工程的代码随后上传:

http://download.csdn.net/source/2445024

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics