SafeArrayGetUBound(EveryPatientInfo.parray,1,&UBound);
SafeArray在ADO编程中经常使用,它的主要目的是用于automation中的数组型参数的传递。因为在网络环境中,数组是不能直接传递的,而必须将其包装成Safe Array。实质上Safe Array就是将通常的数组增加一个描述符,说明其维数、长度、边界、元素类型等信息。Safe Array也并不是单独使用,而是将其再包装到VARIANT类型的变量中,然后才作为参数传送出去。在VARIANT的vt成员的值如果包含VT ARRAY|...那么它所封装的就是一个Safe Array,它的parray成员即是指向Safe Array中元素的类型可以是VARIANT能封装的任何类型,包括VARIANT类型本身。
创建SAFEARRAY:
方法一:使用SafeArrayAllocDescriptor在栈上创建一维数组
方法二:使用SafeArrayAllocDescriptor和SafeArrayAllocData在堆上创建一维数组
方法三:使用SafeArrayAllocDescriptor和SafeArrayAllocData在堆上创建二维数组
方法四:使用SafeArrayCreate在堆上创建一维数组
方法五:使用Safe ArrayCreate在堆上创建二维数组
方法六:使用Safe ArrayCreateEx创建包含结构的一维数组
访问SAFEARRAY:
方法一:使用Safe ArrayAccessData方法
方法二:使用SafeArrayGetElement和SafeArrayPutElement
SafeArrayGetUBound(EveryPatientInfo.parray,1,&UBound);的更多相关文章
- 常用数据与VARIANT之间的转换---从网上整理
//头文件 1 #pragma once class VariantConvert { public: VariantConvert(void); ~VariantConvert(void); pub ...
- C++使用VARIANT实现二维数组的操作
C++使用VARIANT实现二维数组的操作 VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short.long.double等,包括各类指针和数组.组件之 ...
- VB程序逆向反汇编常见的函数
VB程序逆向常用的函数 1) 数据类型转换: a) __vbaI2Str 将一个字符串转为8 位(1个字节)的数值形式(范围在 0 至 255 之间) 或2 个字节的数值形式(范围在 -32,7 ...
- 用ActiveX 创建自己的comboBox 控件(二)
3.0 添加事件 3.1 添加OnSelChange 事件 当用户选中列表项的时候触发该事件.(不只是选择改变时触发,本次选择和上次相同时也触发): 添加完成后,在ActivexcomboBox.id ...
- VB调用VC dll的返回方式
第一种类型:数值传递 注意:在VB中,默认变量传递方式为ByRef为地址,而传递值就是用ByVal,还要注意在C++中,int类型的变量是32位的,在VB中要用long型变量来配合.VC++部分: e ...
- [转]Marshaling a SAFEARRAY of Managed Structures by P/Invoke Part 4.
1. Introduction. 1.1 In parts 1 through 3 of this series of articles, I have thoroughly discussed th ...
- [转]Marshaling a SAFEARRAY of Managed Structures by P/Invoke Part 3.
1. Introduction. 1.1 In part 1 of this series of articles, I demonstrated how to transfer managed ar ...
- WINDOWS-基础:SafeArray的使用方法
1 SafeArray的作用 使用SafeArray SafeArray是VB中的数组存储方式.通过SafeArray,可以在VC++和VB间相互调用. SafeArray也是Automation中的 ...
- STL数组和com数组相互转换的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 STL的泛型数组是vetor,com的泛型数组类型是VARIANT.二者怎样能相互转化呢?就是说怎么把一个vector ...
随机推荐
- 条件随机场和CRF++使用
参考资料 条件随机场和CRF++使用: http://midday.me/article/94d6bd4973264e1a801f8445904a810d 基于CRF++的中文分词 http://ww ...
- Python实用黑科技——解包元素(1)
需求: 很多时候手上已经有了一个具有n个元素的列表或者元组,你打算把这些元素单独取出来(解包)放入n个变量组成的集合(这里的集合和Python自己的set不同)中. 方法: 显然,最好的办法就是直接用 ...
- 什么是挂载?mount的用处在哪?
关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大.奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗. 1.提一句Windows下 ...
- AT3576 Popping Balls
AT3576 Popping Balls 好题!一种以前没怎么见过的思路! %%ywy 以什么方式,什么位置统计本质不同的方案,才能不重不漏是处理所有计数问题的主心骨. 本题难以容斥.难以DP. 所以 ...
- YOLOv3的Darknet在OpenCV3.4.1(bug)下编译出错填坑
刚配置完环境 https://www.cnblogs.com/clemente/p/11029117.html 能正常跑原版 darknet ,但是跑了一下别人修改的版本出现了错误 查Google之后 ...
- CTF中PHP反序列化和命令注入的一次简单利用
代码来自第六届防灾科技学院网络安全技能大赛,侵删. 目标 获取Linux服务器根目录下的flag 代码 /*home.php*/ class home{ private $method; privat ...
- 【Java】给整数加上千分位分隔符
package com.testEmp; import java.text.DecimalFormat; public class NumberFormat { public static void ...
- ubuntu下如何使用apt-get安装arm64的交叉编译工具链?
答: sudo apt-get install gcc-aarch64-linux-gnu -y
- vscode如何右键选择浏览器运行html文件
我们利用Vscode软件编写html的时候,一般都想右键选择html文件,然后直接选择浏览器运行,但是默认是没有的: 下面鄙人给大家分享一下如何设置. 这里你会发现有好多类似的插件,你自己选择一个喜欢 ...
- Python写的大小写转换小工具
几行代码的小工具,用于进行如下转换 TRANSACTIONS ON CLOUD COMPUTING => Transactions On Cloud Computing orig = 'TRAN ...