用户自定义结构数据与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
分享到:
相关推荐
一个Variant类型转换成CString的函数,调试过,可以用。
TIA博途_通过Variant操作数组实现华氏度数据批量转换成摄氏度的具体方法
将用户自定义的C结构数据存储成VARIANT类型,需要时再将VARIANT类型转为用户自定义的结构数据,有十分现实的意义,既然我们不想为这样的结构数据写一个COM包装类。虽然有很多方法和手段生成这样的VARIANT,但是,...
主要实现vc与com组件之间数据类型的转换(VARIANT与基本数据类型转换)
将 _variant_t 类型的变量,转换成任意类型
WINDOWS程序设计中最常用的一些消息: 2 1 窗口消息:WM_CREATE,WM_DESTROY,WM_CLOSE 2 2 键盘消息:WM_CHAR,WM_KEYDOWN,WM_KEYUP 2 ...六、VARIANT 、_variant_t 与 COleVariant 17 七、其它 18
一般说来,你可以用Variant 变量存储任何数据类型,对它执行各种操作和类型转换。需要注意的是:这违反了Pascal 语言的一贯原则,有悖于良好的编程习惯。variant 变量的类型检查和计算在运行期间才进行,编译器不会...
用ADO做数据库,有个麻烦的事情就是_variant_t变量的使用,使用本例中封装的CConvert类转换就方便了。
MOVE_BLK_VARIANT范例
C语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言...
VB中各种数据类型转换函数 1. 各种进制转换函数 一般的数据进制包括十进制,二进制,十六进制.十进制就是我们日常生活用到的数据进制,因此也是我们最熟悉和清楚的;二进制是计算机的基础进制,主要是因为便于用...
详细讲述数据类型VARIANT的用法及SAFEARRAY的用法,可以通过此类型在组件中传递数据
delphi-变体类型(variant)的介绍(流与变体类型的相互转换变体类型常用的函数
10多个vc 数据类型转换编程实例,如何给VARIANT类型赋值、如何将BSTR类型转换成CString类型、如何将CString类型转换成TCHAR类型、如何将BYTE类型转换成WORD类型、如何将BYTE转换成KB、MB和GB、如何将COLORREF类型...
数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。 数据仓库 ,由数据仓库之父比尔·恩门...
变体类型Variant是一种数据结构( ),可用于表示任何其他数据类型。 您定义各种可能的类型,并且变体在任何时候只能代表这些类型之一。 一个很好的用法是代表您的React / Redux应用程序状态的一部分。 const Any = ...
TIA博途中DB数据块清零的具体方法示例
数据仓库是一个面向主题、集成、时变、非易失的数据集合,是支持管理部门的决策过程。...数据仓库也常常被视为一种体系结构,通过将异种数据源中的数据集成在一起而构成,支持结构化和专门的查询、分析报告和决策制定。
variant, Eggs.Variant 是 C 11/14/17 泛型,类型安全,可以识别的联合 Eggs.Variant简介英镑 Eggs.Variant 为英镑 C 11/14/17 型,类型安全,可以区分。 参见 http://eggs-cpp.github.io/variant/的文档。要求库...
variant 用法,包括函数,变量如何使用