社区
Delphi
帖子详情
COM 高手请进:如何把一个数组参数传进组件?
neweb
2002-03-14 11:12:20
有一系列坐标点(个数>=3)如[(10,10),(10,70),(30,30),(30,70),(70,30)]要传进ASP组件,如何做?
我一点头绪都没有,希望能给点启发性的代码?
...全文
184
8
打赏
收藏
COM 高手请进:如何把一个数组参数传进组件?
有一系列坐标点(个数>=3)如[(10,10),(10,70),(30,30),(30,70),(70,30)]要传进ASP组件,如何做? 我一点头绪都没有,希望能给点启发性的代码?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CeleronII
2002-03-15
打赏
举报
回复
首先定义一个Variant类型的数组,用VarArrayCreate函数来创建。
在COM服务器端,接口也声明OLE VARIANT类型,这样一来就可以直接传了。
jjianxin2001
2002-03-15
打赏
举报
回复
因为COM/DCOM对象都不在Client程序运行的内存空间(内进程COM对象除外,即便如此,为了统一接口,内进程的COM也不得传递指针),而且在Win32中所有的程序都有自己独立的2GB的内存空间,程序与程序之间传递指针(内存地址)是毫无意义的,而数组、字符串等大量的数据在程序中都是分配一定的内存空间,然后用指针加内存偏移量来存取数据的,这时,如何在COM/DCOM对象中如何传递呢?
在Win32中引入了一新变量Variant,可以通过Variant传递数组。具体的实现方法,用Delphi实现为:
Server(COM/DCOM程序)端:
procedure TTestDCOM.Send4(Size: Integer; D1: OleVariant);
type
TData=array [0..999] of Byte;
Var
Data:TData;
i:Integer;
begin
for i:=0 to Size-1 do begin
Data[i]:=D1[i];
end;
end;
Cleint端:
Var
D1:OleVariant;
begin
D1:=VarArrayCreate([0,99],varByte);
{
D1[1]:=45;
.... //将值存入D1中
}
S.Send4(99,D1); //S是TestDCOM对象
end;
neweb
2002-03-15
打赏
举报
回复
看了你们微软式的帮助,我终于搞定了,谢谢各位!
chechy
2002-03-14
打赏
举报
回复
应该就是这样吧:
aa[0, 0];
aa[0, 1];
...
neweb
2002-03-14
打赏
举报
回复
我没有把意思说明白,是这样的,客户程序是ASP,
<%
'10 10 30 30 70
'10 70 30 70 30
dim aa(5,2)
aa(0,0) = 10
aa(0,1) = 10
aa(1,0) = 10
aa(1,1) = 70
.
.
.
aa(4,0) = 70
aa(4,1) = 30
someObj.function1 aa
%>
组件里怎么得到这个数组?要基本原样,比如:
point1(aa[0,0],aa[0,1])
chechy
2002-03-14
打赏
举报
回复
var
a: OleVariant;
a := VarArrayCreate([0, 4], varVariant);
a[0] := VarArrayOf([10, 10]);
a[1] := VarArrayOf([10, 70]);
...
a[4] := VarArrayOf([70, 30]);
strip
2002-03-14
打赏
举报
回复
字符串 BSTR就好了,最简单,
Bardo
2002-03-14
打赏
举报
回复
定义一个数组
然后赋值给变体
传出来
传进去都行!
Sencha Touch---Getting Started with Sencha Touch 2
Getting Started with Sencha Touch 2 First, you'll need to download the freeSencha Touch 2 SDKandSDK Toolsfrom the Sencha website. You'll also need: A web server running locally on your co...
sencha touch学习笔记一:web工程下的示例
网上不少教程说引用Sencha Touch的两个文件就可以用sencha编程了,可是我试了一下,结果不理想。 新建
一个
web工程,在新建的HTML文件中引用sencha touch解压包中的sencha-touch.js和resources文件夹中的css文件夹中的sencha-touch.css。再编写
一个
自己的js文件app.js(命名随便)。 HTML代码如下: to
Sencha Touch 开发环境搭建(一)
最近正在学习 android + HTML +Css +JS 搭建 android APP的开发模式。通过上网查阅资料,选定了Sencha Touch 来进行学习,由于中间走过了不少弯路,所以特地记载下载自己的学习过程以便后期学习使用。第一步:安装JDK+JRE,此处不多说,有问题请百度。第二步:安装Tomcat,不多说,有问题参照第一步。第三步:下载Sencha Touc...
在MyEclipse和Tomcat下配置Sencha Touch环境
首先要配置开发环境。这个很简单,只要到官方网站下载Sencha Touch压缩包即可http://www.sencha.
com
/products/touch/。 开发工具随便
一个
编辑器,记事本也可以的。 本人用的是MyEclipse+Tomcat,Sencha Touch用的是1.01版本(使用MyEclipse+Tomcat我为了以后例子可以跟后台交互) 其实可以直接浏览本地静
Delphi
5,943
社区成员
262,942
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章