你的接口支持IDispatch,如果你的数组是传递int*的数组的话,上述语法是对的,如果是int一维数组的话应改为如下:(我认为你是定义的是一维可适应性int数组) [id(1), helpstring("method Idcbint")] HRESULT Idcbint([in] int mn,[in] int len[in,first_is(mn),length_is(len),size_is(99)] int *p)同时进程间数组必须至少使用标准调度。 做如下改动: 1。nmake -f YourAppps.mk(在工程目录下找*.mk文件) 2。regsvr32 YourAppps.dll(你的YourApp.exe不在需要注册了) 3。在client 端再试 int a[99]; pComObj->Idcbint(mn, len a);
前面少了一个',' pComObj->Idcbint(mn, len, a);
sunbo: 我试过了,您提供的那种写法也不行!哥们,谢谢啦! 怎么办?只有用安全数组了!
这种方法,我当然用过,不知你为何不行?成功与失败往往只有一步之差! 注意: HRESULT Idcbint([in] int mn,[in] int len, [in,first_is(mn),length_is(len),size_is(99)] int *p) 不要用 int **p
[id(1), helpstring("method Idcbint")] HRESULT Idcbint([in] int mn,[in] int len[in,first_is(mn),length_is(len),size_is(99)] int *p)同时进程间数组必须至少使用标准调度。
做如下改动:
1。nmake -f YourAppps.mk(在工程目录下找*.mk文件)
2。regsvr32 YourAppps.dll(你的YourApp.exe不在需要注册了)
3。在client 端再试
int a[99];
pComObj->Idcbint(mn, len a);
pComObj->Idcbint(mn, len, a);
我试过了,您提供的那种写法也不行!哥们,谢谢啦!
怎么办?只有用安全数组了!
注意: HRESULT Idcbint([in] int mn,[in] int len, [in,first_is(mn),length_is(len),size_is(99)] int *p)
不要用 int **p