- 浏览: 531806 次
- 性别:
- 来自: 山东济南
文章分类
最新评论
-
dragon_8844:
非常不错,nice
java.util.concurrent 多线程框架 -
wusendong:
很好的文章!受益匪浅,谢谢!
java.util.concurrent 多线程框架 -
SINCE1978:
你也关注并发啊
java.util.concurrent 多线程框架 -
lku1314:
这个不错 刚刚找到这个组建 以前孤陋寡闻了 像lz学习!标 ...
quartz 在WEB中应用小结 -
lliiqiang:
人们对于目标需要的需求明确的去做,对于目标以外的因素是随机的执 ...
flex和后端的数据交互(一)--XML和HTTPService
从昨天开始搞一个画图的ocx控件,在网页中调用它,通过javascript给它赋值;调用一个控件中一个画图方法AddNewStream()的时候,怎么试都说是有 “类型不匹配”的错误;控件是用C++写的,
这是方法:
这是人家给的一个调用AddNewStream方法的例子:
[b]我自己不懂C++,我现在遇到的问题是该方法的最后一个参数是VARIANT类型的,我怎么用javascript给这个ocx控件中的该方法赋值?[/b]
请各位不吝赐教!
jack 大哥,能说得清除一点吗?
用其他脚本语言怎么操作啊?象vbscript。我需要的是一个二维数组类型的参数!
MS:传个数组就可以吧。。。JS不都是数组么?
数组我试过了,参数要求的是二维数组,我传递的也是二维数组,象这样:
我传递的是point,可是不行!
MS:传个数组就可以吧。。。JS不都是数组么?
这是方法:
void AddNewStream(short stream_seqid, short stream_showflag, unsigned long stream_color, LPCTSTR stream_name, LPCTSTR stream_unit, double stream_scale, LPCTSTR stream_remark, short m_nPenStyle, short m_nPenWidth, short m_nNumValidDataRT, VARIANT * m_dValueRT) { static BYTE parms[] = VTS_I2 VTS_I2 VTS_UI4 VTS_BSTR VTS_BSTR VTS_R8 VTS_BSTR VTS_I2 VTS_I2 VTS_I2 VTS_PVARIANT ; InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, parms, stream_seqid, stream_showflag, stream_color, stream_name, stream_unit, stream_scale, stream_remark, m_nPenStyle, m_nPenWidth, m_nNumValidDataRT, m_dValueRT); }
这是人家给的一个调用AddNewStream方法的例子:
static int bbb=0; bbb++; VARIANT var; VariantInit(&var); SAFEARRAYBOUND rgsabound[2]; m_vvvv.ClearAllStream(); m_vvvv.SetHorizontalTimeUnit(5,"秒"); //设置横坐标单位及其描述,0显示到年、1显示到月、依次类推 m_vvvv.SetHorizontalX2Time(1); //是否将横坐标转换成时间:1代表转换、0代表不转换 m_vvvv.Set_ChartType(0);//显示棒图或曲线图:1代表曲线图;0代表棒图 int nLength = 10; rgsabound[0].lLbound=0; rgsabound[1].lLbound=0; rgsabound[0].cElements=nLength; rgsabound[1].cElements=2; var.vt=VT_R8|VT_ARRAY; var.parray=SafeArrayCreate(VT_R8,2,rgsabound); long index[2]; double data; index[0]=0; index[1]=0; data=132.184906; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=0; index[1]=1; data=12*60*60+10; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=1; index[1]=0; data=132.337234; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=1; index[1]=1; data=12*60*60+30; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=2; index[1]=0; data=132.003876; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=2; index[1]=1; data=12*60*60+40; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=3; index[1]=0; data=132.221054; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=3; index[1]=1; data=14*60*60+10; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=4; index[1]=0; data=132.383438; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=4; index[1]=1; data=14*60*60+30; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=5; index[1]=0; data=131.439148; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=5; index[1]=1; data=15*60*60+20; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=6; index[1]=0; data=131.950562; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=6; index[1]=1; data=15*60*60+30; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=7; index[1]=0; data=132.065659; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=7; index[1]=1; data=15*60*60+50; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=8; index[1]=0; data=132.047348; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=8; index[1]=1; data=17*60*60+20; //时间 SafeArrayPutElement(var.parray, index, &data); index[0]=9; index[1]=0; data=132.123352; //实际值 SafeArrayPutElement(var.parray, index, &data); index[0]=9; index[1]=1; data=18*60*60+30; //时间 SafeArrayPutElement(var.parray, index, &data); m_vvvv.AddNewStream(bbb,true,RGB(100+bbb*20,200-bbb*30,30*bbb*50),"GaoXingAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXXXXXXXXXXXXXXXX","GaoXing",bbb,"GaoXing",1,1,10,&var); //添加曲线数据 ::SafeArrayDestroyData(var.parray); ::VariantClear(&var);
[b]我自己不懂C++,我现在遇到的问题是该方法的最后一个参数是VARIANT类型的,我怎么用javascript给这个ocx控件中的该方法赋值?[/b]
请各位不吝赐教!
评论
8 楼
jack
2007-05-24
多半是要改的,给不同的脚本调用,这样写太过随意了点
7 楼
daoger
2007-05-24
哦!谢谢各位了,我在搞搞看看,是在不行就得更换ocx控件中的参数类型了!
6 楼
qiezi
2007-05-24
看看这篇有没有帮助:
http://www.5inet.net/HomePage/FrontPage/069941.html
按这篇的说法你应该是没办法成功调用了,除非它的接口更改,或者是你包装一层接口。
http://www.5inet.net/HomePage/FrontPage/069941.html
按这篇的说法你应该是没办法成功调用了,除非它的接口更改,或者是你包装一层接口。
5 楼
jack
2007-05-24
variant类型虽然号称支持随意类型,但是真正支持的种类依然是有限制的。如果实在不行,就转换成可以支持的类型去操作。
如果是二维数组,可以考虑当作一维数组来传递,或者干脆用一维数组来构建二维数组。
如果是二维数组,可以考虑当作一维数组来传递,或者干脆用一维数组来构建二维数组。
4 楼
daoger
2007-05-24
jack 写道
js里面调用variant类型,没有试过,不过在其他的script语言中遇到过类似的问题。记得当初的用法是 明确 “调用类型”,比如你是传入是int,那么调用的时候做一次类型转换,或者指定类型 ,用这样的方式来传值
i=0;
funcall((int)i);
i=0;
funcall((int)i);
jack 大哥,能说得清除一点吗?
用其他脚本语言怎么操作啊?象vbscript。我需要的是一个二维数组类型的参数!
3 楼
daoger
2007-05-24
抛出异常的爱 写道
引用
Delphi 2.0引进了一个功能强大的数据类型,称为变体类型( Va r i a n t ),主要是为了支持O L E自动化
操作。实际上, D e l p h i的Va r i a n t封装了O L E使用的Va r i a n t,但D e l p h i的Va r i a n t在D e l p h i程序的其他领域
也很有用。正如不久就要学到的, Object Pascal是唯一能在运行期间和编译期间识别Variant 的语言。
Delphi 3引进了一个新的被称为O l e Variant 类型,它跟Va r i a n t基本一致,但是它只能表达与OLE 自
动化操作相兼容的数据类型。本节介绍Va r i a n t ,然后介绍O l e Va r i a n t,并对两者进行比较。
1. Va r i a n t能动态改变类型
有时候变量的类型在编译期间是不确定的,而Va r i a n t能够在运行期间动态地改变类型,这就是引
入Variant 类型目的。例如,下面的代码在编译期间和运行期间都是正确的:
Va r i a n t能支持所有简单的数据类型,例如整型、浮点型、字符串、布尔型、日期和时间、货币以
及O L E自动化对象等。注意Va r i a n t不能表达Object Pascal对象。Va r i a n t可以表达不均匀的数组(数组的
长度是可变的,它的数据元素能表达前面介绍过的任何一种类型,也可包括另一个Va r i a n t数组)。
操作。实际上, D e l p h i的Va r i a n t封装了O L E使用的Va r i a n t,但D e l p h i的Va r i a n t在D e l p h i程序的其他领域
也很有用。正如不久就要学到的, Object Pascal是唯一能在运行期间和编译期间识别Variant 的语言。
Delphi 3引进了一个新的被称为O l e Variant 类型,它跟Va r i a n t基本一致,但是它只能表达与OLE 自
动化操作相兼容的数据类型。本节介绍Va r i a n t ,然后介绍O l e Va r i a n t,并对两者进行比较。
1. Va r i a n t能动态改变类型
有时候变量的类型在编译期间是不确定的,而Va r i a n t能够在运行期间动态地改变类型,这就是引
入Variant 类型目的。例如,下面的代码在编译期间和运行期间都是正确的:
v a r V: Va r i a n t ; b e g i n V:='Delphi is Great!'; //Variant 此时是一个字符串 V: = 1 ; / / Variant 此时是一个整数 V: = 1 2 3 . 3 4 ; / / Variant 此时是一个浮点数 V: = Tr u e ; / / Variant 此时是一个布尔值 V:=CreateOleObject('word.Basic'); //Va r i a n t此时是一个OLE 对象 e n d ;
Va r i a n t能支持所有简单的数据类型,例如整型、浮点型、字符串、布尔型、日期和时间、货币以
及O L E自动化对象等。注意Va r i a n t不能表达Object Pascal对象。Va r i a n t可以表达不均匀的数组(数组的
长度是可变的,它的数据元素能表达前面介绍过的任何一种类型,也可包括另一个Va r i a n t数组)。
MS:传个数组就可以吧。。。JS不都是数组么?
数组我试过了,参数要求的是二维数组,我传递的也是二维数组,象这样:
var a = new Array(new Number(132.184906),new Number(132.337234),new Number(132.003876),new Number(132.221054),new Number(132.383438),new Number(131.439148),new Number(131.950562),new Number(132.065659),new Number(132.047348),new Number(132.123352)); var b = new Array(12*60*60+10,12*60*60+30,12*60*60+40,12*60*60+10,12*60*60+30,12*60*60+20,12*60*60+30,12*60*60+50,12*60*60+20,12*60*60+30); var point = new Array(new Array(),new Array()); for(var i = 0;i<10;i++) { point[0][i] = a[i]; point[1][i] = b[i]; }
我传递的是point,可是不行!
2 楼
jack
2007-05-24
js里面调用variant类型,没有试过,不过在其他的script语言中遇到过类似的问题。记得当初的用法是 明确 “调用类型”,比如你是传入是int,那么调用的时候做一次类型转换,或者指定类型 ,用这样的方式来传值
i=0;
funcall((int)i);
i=0;
funcall((int)i);
1 楼
抛出异常的爱
2007-05-24
引用
Delphi 2.0引进了一个功能强大的数据类型,称为变体类型( Va r i a n t ),主要是为了支持O L E自动化
操作。实际上, D e l p h i的Va r i a n t封装了O L E使用的Va r i a n t,但D e l p h i的Va r i a n t在D e l p h i程序的其他领域
也很有用。正如不久就要学到的, Object Pascal是唯一能在运行期间和编译期间识别Variant 的语言。
Delphi 3引进了一个新的被称为O l e Variant 类型,它跟Va r i a n t基本一致,但是它只能表达与OLE 自
动化操作相兼容的数据类型。本节介绍Va r i a n t ,然后介绍O l e Va r i a n t,并对两者进行比较。
1. Va r i a n t能动态改变类型
有时候变量的类型在编译期间是不确定的,而Va r i a n t能够在运行期间动态地改变类型,这就是引
入Variant 类型目的。例如,下面的代码在编译期间和运行期间都是正确的:
Va r i a n t能支持所有简单的数据类型,例如整型、浮点型、字符串、布尔型、日期和时间、货币以
及O L E自动化对象等。注意Va r i a n t不能表达Object Pascal对象。Va r i a n t可以表达不均匀的数组(数组的
长度是可变的,它的数据元素能表达前面介绍过的任何一种类型,也可包括另一个Va r i a n t数组)。
操作。实际上, D e l p h i的Va r i a n t封装了O L E使用的Va r i a n t,但D e l p h i的Va r i a n t在D e l p h i程序的其他领域
也很有用。正如不久就要学到的, Object Pascal是唯一能在运行期间和编译期间识别Variant 的语言。
Delphi 3引进了一个新的被称为O l e Variant 类型,它跟Va r i a n t基本一致,但是它只能表达与OLE 自
动化操作相兼容的数据类型。本节介绍Va r i a n t ,然后介绍O l e Va r i a n t,并对两者进行比较。
1. Va r i a n t能动态改变类型
有时候变量的类型在编译期间是不确定的,而Va r i a n t能够在运行期间动态地改变类型,这就是引
入Variant 类型目的。例如,下面的代码在编译期间和运行期间都是正确的:
v a r V: Va r i a n t ; b e g i n V:='Delphi is Great!'; //Variant 此时是一个字符串 V: = 1 ; / / Variant 此时是一个整数 V: = 1 2 3 . 3 4 ; / / Variant 此时是一个浮点数 V: = Tr u e ; / / Variant 此时是一个布尔值 V:=CreateOleObject('word.Basic'); //Va r i a n t此时是一个OLE 对象 e n d ;
Va r i a n t能支持所有简单的数据类型,例如整型、浮点型、字符串、布尔型、日期和时间、货币以
及O L E自动化对象等。注意Va r i a n t不能表达Object Pascal对象。Va r i a n t可以表达不均匀的数组(数组的
长度是可变的,它的数据元素能表达前面介绍过的任何一种类型,也可包括另一个Va r i a n t数组)。
MS:传个数组就可以吧。。。JS不都是数组么?
发表评论
-
java动态编程一例
2009-12-22 08:37 1636Test.java package test; im ... -
tomcat SSL基本配置
2009-11-30 09:25 1538切换到$TOMCAT_HOME下: 1.生成 server ... -
Oracle 10g自带性能监测工具
2009-11-04 09:08 3189安装Oracle 10g时可以选择安装自带的性能监测工具,对于 ... -
Liferay应用界面
2009-09-16 17:26 2243我们用Liferay Portal开发的项目,已有小成,sho ... -
Liferay Iframe Portlet
2009-09-01 08:30 5927The Iframe portlet makes it pos ... -
LifeRay 5.1.2 使用struts1.1时ClassNotFoundException
2009-08-25 10:37 1279今天修改一个portlet时出现 java.lang.Clas ... -
Tomcat 5 中文路径问题
2009-08-06 10:02 1436在tomcat 5下一个动态加载svg图形文件的页面; 页面中 ... -
dhtmlxtree使用中的CharConversionException: isHexDigit
2009-08-04 16:48 2024使用dhtmlxtree时,点击树节点异步加载子节点数据时,在 ... -
程序员五大层次,你属于哪一层?
2009-07-14 13:54 1251软件界一个无 ... -
第一次面别人
2009-05-27 09:40 1724“面”不是吃的,是看的。 从换了工作以后都很忙,周 ... -
liferay中使用struts时jar文件冲突
2009-05-26 13:52 1774异常: java.lang.NoSuchMethodE ... -
犹豫中,不知道该怎么办了!
2009-03-04 10:38 1246先说说我现在的公司, ... -
参数传递的浏览器差异
2008-10-19 22:32 1772情况大体是这样的:一个头页面header.jsp上有一个搜索框 ... -
该死的黑客
2008-09-22 15:06 1456公司一台对外网服务的linux系统数据库服务器,上周五被人破译 ... -
A Tutorial on Clustering Algorithms
2008-07-02 09:50 3118A Tutorial on Clustering Algor ... -
The Examples for Quartz Time Format
2008-05-16 15:02 1815The Examples for Quartz Time Fo ... -
让人头疼的新手
2008-05-13 11:25 5121刚进公司没多久时,领导让我带两个新人(07年7月份毕业的)。他 ... -
昨天参加了一次面试
2008-05-06 11:40 2981象去年这个时候一样, ... -
开发小记
2008-02-13 15:54 15271. 在oracle中字符串拼 ... -
javascript实现日期操作的工具包
2007-12-13 13:39 3359最近一个小项目中用到了dwr,其中使用到了日期型数据;查了一下 ...
相关推荐
本篇文章将深入探讨`SignTool`,一个用于数字签名Windows应用程序和组件的工具,以及如何使用它来将OCX(ActiveX控件)打包成CAB( Cabinet)文件,从而简化安装过程。 `SignTool`是微软提供的一个命令行工具,它...
本实战应用主要探讨的是如何在WebAccess中集成和使用OCX(ActiveX控件)来扩展其功能,提高系统的交互性和定制化程度。 OCX控件是微软在ActiveX技术基础上开发的一种组件,它可以被嵌入到各种应用程序中,如网页、...
大华摄像头OCX控件是大华公司推出的一款专门用于网络摄像头控制的组件,它基于ActiveX技术,允许开发者在Web页面或者Windows应用程序中集成大华网络摄像头的功能,实现远程视频监控、录像、抓图等操作。这个控件极大...
本示例"jacob-js调用ocx"提供了一个详细的教程,演示了如何使用Jacob库在Java中调用OCX控件,并通过JavaScript在网页中与之通信。 首先,Jacob库是一个Java到COM(Component Object Model)桥接器,它允许Java应用...
OCX(OLE Control Extension)控件是Windows操作系统中的一种ActiveX技术,用于在应用程序中嵌入和控制各种功能组件。海康威视摄像头OCX控件就是这样一个组件,它允许开发者在不同的编程环境中,如C#、Visual Basic ...
OCX控件大集合是一个包含了多种OCX(Object Linking and Embedding, Control Extension)控件的资源包,这些控件在IT行业中主要用于Windows应用程序的开发,尤其是Visual Basic、Visual C++等编程环境中。OCX控件是...
在本文中,我们将深入探讨OCX控件的开发过程,以及如何在Internet Explorer(IE)中使用它们,以及如何通过JavaScript进行交互。 ### 1. OCX控件开发基础 - **组件模型**:OCX控件基于COM(Component Object Model...
在 VS2010 中开发和使用 OCX 控件需要遵循一定的步骤,本文将详细介绍如何在 VS2010 中开发和使用 OCX 控件,并说明 JavaScript 如何调用 OCX 控件方法。 一、OCX 简介 OCX 控件是一种 ActiveX 控件,能够在多种...
大华摄像头OCX控件是专为集成大华摄像头功能而设计的一种ActiveX控件,它允许开发者在基于Windows的应用程序或网页中嵌入摄像头功能,尤其是与IE浏览器兼容的网页。ActiveX技术是微软推出的一种组件技术,使得开发者...
OCX控件是微软在Windows操作系统中用于扩展应用程序功能的一种组件,它基于ActiveX技术,可以被各种编程语言(如VB、VC++、Delphi等)所调用。本篇文章将详细探讨OCX控件的注册与卸载过程,以及在MFC(Microsoft ...
本话题主要聚焦于如何在VC(Visual C++)中编写OCX控件,并在VB(Visual Basic)中进行调用,特别是涉及到 Variant 输入/输出参数、通过 OCX 传递字节数组以及 SafeArray 的使用方法。 1. Variant 输入/输出参数: ...
海康OCX控件是专为开发者设计的一款组件,它由海康威视公司提供,主要用于在各种应用程序中集成视频监控功能。海康威视是一家知名的安防产品供应商,其产品涵盖了视频监控、智能分析等多个领域。这个控件使得开发者...
OCX控件,全称是OLE Control Extension,是Microsoft在ActiveX技术框架下开发的一种控件格式。这种控件主要用于Windows应用程序,特别是基于Visual Basic、VB.NET或VC++等编程环境,提供图形用户界面(GUI)元素,如...
OCX控件是由Visual Basic、VC++、Delphi等编程环境创建的,它们可以像按钮、文本框、列表框等标准Windows控件一样被插入到应用程序中。这些控件不仅具有基本的外观和行为,还可以包含自定义的逻辑和功能。OCX控件...
1. **OCX控件**:OCX(ActiveX Control)是一种基于微软的ActiveX技术的控件,用于在Windows应用程序中提供特定功能。这种控件可以在网页或桌面应用中嵌入,使得开发者能够快速构建具有多媒体、数据库访问等功能的...
HTML调用OCX控件是一种在网页中使用ActiveX技术实现客户端交互功能的方法。ActiveX是微软开发的一种组件对象模型,OCX(OLE Custom Controls)是ActiveX的一部分,它允许开发者创建可重用的控件,这些控件可以在多种...
在实际开发过程中,可能会遇到兼容性问题,如不同版本的ocx控件与操作系统之间的匹配,或者是不同类型的海康设备所需的特定设置。此时,需要查阅海康提供的官方文档或技术支持,以获取最准确的解决方案。 总的来说...
OCX控件是一种基于Microsoft ActiveX技术的组件,主要用于Windows应用程序开发,特别是在早期的Visual Basic、VB.NET或Delphi等环境中。这些控件通常包含了多种功能,如按钮、文本框、下拉列表等,开发者可以通过...
在PowerBuilder中,使用OCX控件可以让开发者充分利用Windows平台的丰富资源,实现各种酷炫效果和高级功能。以下是一些关键步骤和注意事项: 1. **引入OCX控件**:在PowerBuilder中,你可以通过“控件”对话框导入...
在本文中,我们将详细介绍如何使用 VBA 调用二维码 OCX 控件,生成二维码,并将其应用于 Excel 表格中。 OCX 控件注册 在使用 VBA 调用 OCX 控件之前,需要先将 OCX 控件注册到系统中。对于 32 位系统,将 xxx.ocx...