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 ...
随机推荐
- django 问题总结(八)
1.第一步创建项目,不成功,命令不报错一直不创建文件夹 django-admin.py startproject mysite2 原因: django-admin.py ,py文件的默认打开方式不对, ...
- No Desktop License Servers available to provide a license
远程桌面连接失败,提示:“no Remote Desktop License Servers available to provide a license” 原因:没有remote desktop l ...
- vue 动态渲染数据很慢或不渲染
vue 动态渲染数据很慢或不渲染 原因是因为vue检测速度很慢,因为多层循环了,在VUE 2.x的时候还能渲染出来,1.x的时候压根渲染不出来.解决方式:在动态改变数据的方法,第一行加上 this.$ ...
- php中的<?= ?>和<?php ?>有什么区别么?
<? ?>是短标签<?php ?>是长标签在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的短标签:<? ?>同 ...
- token的解码及 判断值不为空的方法
token 的解码要使用插件:jwt-decode 判断值不为空的方法: function isEmpty(value){ return ( value === undefined || value ...
- 负载均衡 | Nginx+Tomcat 动静分离实现负载均衡
0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 基本配置这个文件,就可以实现负载了.但是里面的各 ...
- linux下如何将dts转换成dtb?
答: 使用dtc工具,如: <kernel source code dir>/scripts/dtc/dtc -I dts -O dtb -o <dtb filename> & ...
- vscode在软件内部查看html渲染效果的插件
使用方法: Usage press 'F1' and type "Show Live Server Preview" F1,然后输入Show Live Server Preview ...
- Mysql 查询当前数据上一条和下一条的记录
获取当前文件上一条与下一条记录的原理是上一条的sql语句,从news表里按从大到小的顺序选择一条比当前ID小的新闻,下一条的sql语句,从news表里按从小到大的顺序选择一条比当前ID大的新闻. 如果 ...
- PCL中有哪些可用的PointT类型(4)
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=269 PointWithViewpoint - float x, y, z, ...