function BuildScript(Param: PChar): Integer ;delphi的定义下面是我写的c#调用 可是接受到的Param是空的[DllImport("ISCmplr.dll")]
public static extern int BuildScript(String parm);
兄弟们帮帮忙.. 感谢...

解决方案 »

  1.   

    上面只有定义.你并没有传什么东西过去呀.DEBUG一下.
      

  2.   

    我设置了  CallingConvention = CallingConvention.StdCall 可是还是不行..
      

  3.   

    PChar好像是个指针,跟我的问题差不多,
    http://community.csdn.net/Expert/topic/5713/5713161.xml?temp=.8423273
    期待
      

  4.   

    顺便说一下,Delphi中的Pchar对应.net中的String
      

  5.   

    参数改个类型试试
    public static extern int BuildScript(byte[] parm);
      

  6.   

    function BuildScript(Param: PChar): Integer;stdcall;
    在Delphi中定义的函数必须加上Stdcall;C#中的定义如下:
    [DllImport("ISCmplr.dll")]
    public static extern int BuildScript(byte[] parm);如果不行,再尝试
    public static extern int BuildScript(ref byte[] parm);以前搞过,应当可以;C#的String和Delphi Pchar是不一样的;C#中byte和Delphi的Char是一样的。
      

  7.   

    lianshaohua 感谢.. 问题解决了..  设置CharSet=CharSet.Ansi 就可以了..
      

  8.   

    C# 调用声明
    [DllImport("ISCmplr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern int BuildScript(String parm);function BuildScript(Param: PChar): Integer ; 
    这是delphi中的的定义
      

  9.   

    我的是Pbyte类型,可能和你的还不太一样.