希望大虾们不要不屑于回答,我真的不会!我现在要调用一个库函数中的一个函数,可能是用C语言写的,函数原型如下:
   int Open(int ctn, Byte *key);我现在要在delphi中调用,但是在转换过来的函数声明中编译总是出错:
  我更改的如下:
   function Open(ctn : Integer;key: ^Byte);Integer; Stdcall;
   external 'Mem.dll' Name Open';请问错在哪?怎么改正?多谢帮助!

解决方案 »

  1.   

    System.pas单元文件的第399行(D7)有这样的定义:PByte = ^Byte;
      

  2.   

    多谢了,我用两种方法都试过了,都通过编译了。因为我没在Delphi中用过指针,我想再问一下,我要在Delphi函数中调用下面两个VC程序,麻烦大家能给一个Delphi调用的例子:VC函数为:
        int H_Select(int ctn, char *type);
        这时  ctn为:1, 而这个类型值为: '12',但函数中为指针型,怎么使用?    int Read(int ctn, int addr, BYTE *Data, int datalen);
        ctn 为 1,怎么调用它?请给个实例!再次感谢!我可以再加分!!
      

  3.   

    function H_Select(ctn:integer;type:pchar):integer;function Read(ctn:integer;addr:integer;Data:PByte;datalen:integer):integer;
      

  4.   

    在delphi中调用:
    var
      ctn : integer;
      type : Pchar;
     H_Select(ctn,type);
      

  5.   

    vcshcn(黑天的星星)
    他的声明不错
      

  6.   

    vcshcn(黑天的星星) 
    他声明的不错
      

  7.   

    在Delphi中原形是:
    function H_Select(ctn:Integer;type:PChar):Integer;
    function Read(ctn,addr:Integer;Data:PByte;datalen:Integer):Integer;如果调用,定义实参然后传入调用就可以了
      

  8.   

    多谢各位了,我的问题已经解决了。我后来的问题其实不是不知道怎样把VC的函数转换到Delphi中声明,只是我不知怎么将“12”送入那个字符串指针中,我很少用指针。不过也不能怪各位,是我没说清楚。现在已经解决了,还是非常谢谢各位!现在就结贴。