相关推荐
-
SAFEARRAY向一维、二维数组转换
这里说明二维数组向SAFEARRAY转换的方法。二维转换如果会了, 一维转换原理相同,只是指定SafeArrayGetElement的索引(第二个参数)不同。 // 定义动态的二维数组VARIANT** arg3;注:这里必须是VARIANT类型,否则在执行SafeArrayGetElement时,用于存储数据的本地数组(第三个参数)下标不
-
数组Marshalling
在托管代码和本地代码之间传递数组,是interop marshaling中间比较复杂的一个问题。本文从数组的定义开始,介绍数组marshalling的三种方法,并对blittable类型等概念做进一步的讨论。当托管代码需要和本地代码互操作时,我们就进入了interop的领域。interop的场景形形色色,不变的是我们需要把数据从一个世界marshal到另一个世界。在讨论数组marshall
-
[转]Marshaling a SAFEARRAY of Managed Structures by P/Invoke Part 1.
1. Introduction. 1.1 I have previously written about exchanging SAFEARRAYs of managed structures with unmanaged code viaCOM interop. 1.2 In this new series of articles, I shall expound on the exch...
-
Marshal类 两个方法StructureToPtr和PtrToStructure实现序列化 字节 数组 转换
我们主要是使用Marshal类里的两个方法: 第一个是StructureToPtr,将数据从托管对象封送到非托管内存块。 第二个是PtrToStructure,将数据从非托管内存块封送到新分配的指定类型的托管对象。 只要有了这两个相互转换的方法,我们就可以实现序列化了。 首先我们先来看下序列化 序列化: 有一个前提条件,那就是我们必须要知道需要序列化对象的大小。 第一步:我们先求出对
-
SAFEARRAY(安全数组)使用详解
SAFEARRAY(安全数组)使用详解一,何谓SAFEARRAY(安全数组):winddows操作系统与使用 SAFEARRAY 定义。 下列 SAFEARRAY 结构是 SAFEARRAY 典型、 一般定义:typedef struct FARSTRUCT tagSAFEARRAY { unsigned short cDims; // 安全数组的大小 un
-
COM中的安全数组SAFEARRAY、与在VC++(VARIANT) C#(object)中调用
最近在做WEBGIS项目,要调用以前一些VC的DLL,所以使用COM进行封装,在C#中传数组头痛了几天,今天终于调试出来了。由于COM中不能直接使用数组,所以经常使用到SAFEARRAY与VARIANT的转换 SAFEARRAY* pSA; SAFEARRAYBOUND aDim[1]; //定义安全数组维数aDim[0].lLbound=0; aDim[0].cElem...
-
如何构造一个元素类型为Struct的SafeArray
在有些时候,我们需要构造一个元素类型为Struct的SafeArray,在MSDN并没有文档解释到底应该如何去做到这一点,下面的代码片断解释了如何去构造这样一个SafeArray。假设我们有如下的Struct: struct myStruct {
-
SafeArrayAccessData,SafeArrayUnaccessData使用
SafeArray是VB中的数组存储方式。通过SafeArray,可以在VC++和VB间相互调用。SafeArray也是Automation中的标准数组存储方式。 1. SafeArrayAccessData 函数原型: HRESULT SafeArrayAccessData( SAFEARRAY * psa, void HUGEP ** ppvData ); 这个函数用于获取SafeArray的数据指针,并锁定SafeArray数组的数据。
-
SAFEARRAY 和 CComSafeArray 的使用
SAFEARRAY 和 CComSafeArray 的使用 SAFEARRAY是为了处理未知语言在COM客户之间传递数组的挑战,而定义的一个数组结构。跟VARIANT一样,SAFEARRAY也是自描述的通用数组。 SAFEARRAY的定义如下: typedef str
-
COM/DCOM中如何传递数组
因为COM/DCOM对象都不在Client程序运行的内存空间(内进程COM对象除外,即便如此,为了统一接口,内进程的COM也不得传递指针),而且在Win32中所有的程序都有自己独立的2GB的内存空间,程序与程序之间传递指针(内存地址)是毫无意义的,而数组、字符串等大量的数据在程序中都是分配一定的内存空间,然后用指针加内存偏移量来存取数据的,这时,如何在COM/DCOM对象中如何传递呢?
-
数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用 Array 而不是 ArrayList?
下面列出了 Array 和 ArrayList 的不同点: Array 可以包含基本类型和对象类型,ArrayList 只能包含对象类型。 Array 大小是固定的,ArrayList 的大小是动态变化的。 ArrayList 提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。 对于基本类型数据,集合 使用自动装箱来减少编码工作量。但是,当处理固定大...
-
COM中使用的数组-SafeArray
1 使用SafeArray SafeArray是VB中的数组存储方式。通过SafeArray,可以在VC++和VB间相互调用。SafeArray也是Automation中的标准数组存储方式。 1.1 SafeArray处理函数 COM提供了一套API用于处理SafeArray。为了保证程序和SafeArray结构无关,程序中建立、读取、更改和释放SafeArray都应该通过
-
COM之VARIANT类型,以及SafeArray
VARIANT简介 在COM中,我们经常会碰到VARIANT这种类型,用于表示参数。它的别名有tagVARIANT,VARIANTARG VARIANT是一个大的联合体,可以表示多种类型的参数。 重要成员 VARTYPE vt —— 表示这个VARIANT内部存储的变量类型。 然后就是对应的数据成员了。比如vt为VT_I8,那么对应的数据在llVal;比如vt为VT_R4,那么数据在fltVal中。 获取成员 使用V_VT宏,可以获取VARIANT数据的类型; 使用V_R4()可以获取floa
-
SafeArray
首先介绍SafeArray使用,在介绍SafeArray中的结构。看完该节文章,SafeArray的陌生感一扫而去。 SafeArray 在ADO编程中经常使用。它的主要目的是用于automation中的数组型参数的传递。因为在网络环境中,数组是不能直接传递的,而必须将其包装成 SafeArray。实质上SafeArray就是将通常的数组增加一个描述符,说明其维数、长度、边界、元素类型等
24 楼 fuwang 2009-10-22 23:21
23 楼 flashcloud 2009-10-22 21:10
22 楼 frankiehuang 2009-10-22 16:26
換了公司,不用了。
21 楼 greateWei 2009-10-21 19:44
非常不错的产品,推荐使用。
20 楼 alexma 2009-10-21 14:42
自己到 jira 的官网上查,都有,对于小团队来说很便宜,如果是学校用好像还是免费的。
19 楼 ruvuoai 2009-10-21 10:24
18 楼 asialee 2009-10-21 09:34
做了什么好用的插件?
感觉jira的报表导出功能不是很好,做了一些要求很苛刻的插件。
还有是把很多系统都集成到jira里面了,做成一个一站式的系统。
17 楼 wiflish 2009-10-21 09:07
Redmine也是很不错的选择
+1
Redmine对于中小型公司来说,是一个不错的项目管理工具。
16 楼 runbeck 2009-10-21 08:52
15 楼 letsflytogether 2009-10-21 08:11
项目管理,缺陷跟踪
14 楼 fight_bird 2009-10-21 01:07
13 楼 figo_cool 2009-10-20 21:00
12 楼 whaosoft 2009-10-20 20:44
11 楼 zelsa 2009-10-20 20:25
Redmine也是很不错的选择
10 楼 eyejava 2009-10-20 19:50
做了什么好用的插件?
9 楼 advantech 2009-10-20 15:41
8 楼 asialee 2009-10-20 15:38
7 楼 andyhan 2009-10-20 15:17
6 楼 gxgxyjy062 2009-10-20 15:09
5 楼 fanlei77 2009-10-20 14:40