怎么不可能?
跨进程传递一个地址有什么用,早无效了。
好像得用COM的API分配了内存才能交换吧,
没那么方便的

解决方案 »

  1.   

    你的接口支持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);
      

  2.   

    前面少了一个','
    pComObj->Idcbint(mn, len, a);
      

  3.   

    sunbo:
      我试过了,您提供的那种写法也不行!哥们,谢谢啦!
      怎么办?只有用安全数组了!
      

  4.   

    这种方法,我当然用过,不知你为何不行?成功与失败往往只有一步之差!
    注意: HRESULT Idcbint([in] int mn,[in] int len, [in,first_is(mn),length_is(len),size_is(99)] int *p)
    不要用 int **p