情景:
      现有一个用VC++写的第三方com组件,其中有个方法声明如下:
          func1(char * newVal);
      
      导入到C#中变成了这样:
          func1(ref sbyte pVal);请教:
     调用该函数时,将一个字符串传递给该函数,应该如何调用?

解决方案 »

  1.   

    应该是这样,因为本人调用RFC函数时也这样
    sbyte aa=XXX;
    func1(ref aa);
      

  2.   

    呵呵,字符串 如何 转换成 sbyte呢?
      

  3.   

    莫非是:
    func1(ref sbyte[] pVal);
      

  4.   

    是根据当时的类型而定,RFC是能过一个SAP代理类来调用的,VC++就不懂了,没研究过
      

  5.   

    不管如何定,至少最终类型要转成ref sbyte吧?否则 类型不对,编译就过不了。
      

  6.   


    sbyte Parse( string s ) 
      

  7.   

    sbyte[] aa=new sbyte[100];
    func1(ref aa[0]);应该是定义sbyte数组,然后传首元素进去.ref aa[0]就相当于传的是aa的首元素的地址,然后COM组件就可以根据这个地址来访问数组中的其它元素了
      

  8.   

    改成func1(ref string pVal);直接传递
      

  9.   

    按xingyuebuyu大侠方法,搞定。请 xingyuebuyu 大侠到如下 链接领分。
    聊表谢意。
    http://topic.csdn.net/u/20100418/20/9ef10545-7ff9-4f8d-af1f-d574f077eac9.html
    http://topic.csdn.net/u/20100418/20/376da04c-0953-45ba-b512-68f859e01b4e.html