目前可以实现32位程序调用32位com,传数组。
见:http://topic.csdn.net/u/20111202/14/c8393ab1-02d3-432f-a4a5-8f45f7cac619.html?75990
也可以实现32位程序调用64位com,传非数组数据。请教VC语言32位程序调用64位com,如何传数组?
见:http://topic.csdn.net/u/20111202/14/c8393ab1-02d3-432f-a4a5-8f45f7cac619.html?75990
也可以实现32位程序调用64位com,传非数组数据。请教VC语言32位程序调用64位com,如何传数组?
解决方案 »
- MFC扩展dll中如何用CWnd子类创建一个对话框
- 匿名管道,用closehandle关闭hWrite写句柄后, 如何再打开?
- 谁有smtp.dll的源程序,要功能比较全,调用的方式例子和说明.谢谢了。
- ACCESS表中一个键值数据过长的话,VC就打开不了表格,提示数据被截断!怎么才能避免,数据库内单个数据长度很大,不能减少的!高手救命啊
- 怎样让一个radio在窗口出现的时候默认选种啊?
- DLL的小问题
- 完成端口 之 完成键 单句柄数据,单I/O操作数据,高手留步!!!
- 如果一个ActiveX控件没有Enable属性,那我怎样才能禁止这个控件
- MFC编辑框输入非法字符程序崩溃,现象诡异。
- 问一个弱的问题:wParam和lParam有什么不同??多谢!!!
- MFC如何控制计算机桌面
- 同时打开2个对话框界面??
不传数组时是可以成功的,说明能调用。
另外,我做成进程外,exe形式。
我想传递double型的数组。应用程序和COM都用VC2008写。
有一点是确定的32位用4字节存指针,而64位用8字节。
可能因为数组涉及到地址,有木有变通的方法呢?
谢谢oyljerry的持续关注,SAFEARRAY等通用类型估计可以,我再学着用用。
我现在也想出来了了一个不太高明的变通方法:1)在COM中设置一个类,类中定义一个指向数组的指针。
2)COM中定义接口函数动态为数组指针申请内存。
3)COM中定义接口函数向数组中存数据,一次存一个数据,比如就叫OneByOne(val,index)。
4)在应用程序中循环调用OneByOne()函数,完成对数组的“充值”。
5)定义释放内存的接口函数。用时间我写篇文档,详细说明一下这个问题。
我对COM的应用,处于一个照猫画虎的水平。请yu解答一下我的几个疑问可以吗?
1.资料上说“由于SafeArray具有比数组指针更复杂的结构,所以,编程比使用数组指针复杂(指用VC++编程,如果用VB实现COM,这是唯一的传递方式。),程序运行效率也相对较低。”这个说法权威吗?我的情况是都用VC编程,是否适合使用SafeArray?
2.刚才我说我的水平是照猫画虎的档次,能否提供一个完整的程序实现一个功能,比如把传进去的数组求和,然后返回结果。CSDN下有个资源栏目,传上去供我学习一下。
3.大家都知道C中数组下标从0开始,SafeArray中数组下标从几开始?
我64位程序,不能调用32位dll.
所以就把32位dll包含成32位exe在后台运行。
然后64位程序与之通过管道交换数据(纯数据),也是可以的。
纯数据本身没有地址。