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

    

    

    

    

    

    

最新文章

  1. 使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档
  2. tomcat报错java.lang.IllegalArgumentException: Document base XXXXX does not exist or is not a readable directory
  3. NGUI 学习笔记
  4. 最佳 Linux 发行版汇总
  5. TMS320C64X+ 中使用EDMA3中断
  6. 解决ScrollView里如果有动态更新的ChildView时会自动滚动到底部的方法
  7. Selenium2+python自动化26-js处理内嵌div滚动条
  8. sass开发过程中遇到的几个坑
  9. JodaTime library not available - @DateTimeFormat not supported
  10. 【Android测试】【第五节】LogCat——命令行
  11. js技巧总结
  12. 并发MD5计算方法
  13. Linux 命令 - at: 在指定的时间执行任务
  14. 【ANT】构建文件build.xml
  15. leetcode@ [22]Generate Parentheses (递归 + 卡特兰数)
  16. asp.net Hierarchical Data
  17. java中的反编译
  18. Keil中查看.c和.h文件的路径
  19. vue.js组件传值
  20. java 日志脱敏框架 sensitive,优雅的打印脱敏日志

热门文章

  1. mysql查询字段中含有中文
  2. IO之复制文件的四种方式
  3. 如何使用SendGrid发送邮件
  4. centos6安装sshpass
  5. tkinter入门-布局方式pack(), grid(), place()
  6. nginx优化后的主配置文件
  7. LC 722. Remove Comments
  8. 单元测试unittest及报告生成(两种报告模板)
  9. switch语句 initialization of 'XXX' is skipped by 'case' label 原因及解决办法--块语句的作用
  10. SSM整合junit单元测试之org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):