int __stdcall BCode2SCode_3(char * const, char * * const, int, int);这个函数如何声明成Delphi格式?

解决方案 »

  1.   

    function Bcode2Scode_3(xx:pchar;xx:pchar;xx:integer;xx:integer):integer;stdcall;不知道对不对
      

  2.   

    老兄能不能给个完整的啊?
    我翻译后调用出来的结果不正确啊
    char * = PChar我晓得啊
    后面的这个char **=???怎么翻译?
      

  3.   

    To : brightyang
        function   Bcode2Scode_3(xx:pchar;xx:pchar;xx:integer;xx:integer):integer;stdcall;     不知道对不对我就是你这样翻译的
    调用结果老是-1啊
      

  4.   

    To : brightyang这是我的调用部分啊var
      Str1,Str2 : PChar;
      n,m,k : Integer;
    begin
      Str1:='ABCDEF';
      Str2:='56789654';
      n:=9;
      m:=10;  ShowMessage(IntToStr(BCode2SCode_3(Str1,Str2,n,m)));  ShowMessage(Str1);
    end;参数传递应该没得问题
    不知道你注意没函数原型的第二个参数是char **类型这个怎么翻译?也翻译成PChar?
      

  5.   

    应该翻译的对吧。
    char   **  这个也是个指针,不过指针指向的内容依然是个指针了
      

  6.   

    To : logne
       应该翻译的对吧。 
       char       **     这个也是个指针,不过指针指向的内容依然是个指针了那为什么我调用后的结果是-1然后程序就直接退出了呢?
    不管我传递什么参数进去结果都是这样
       
      

  7.   

    To   :   brightyang 
         PWideString试试不行啊
    还是不行啊结果还是-1
    这什么动态库
    郁闷死了文档都没得哦
      

  8.   

    To : brightyang  
             c++不了解,帮不上你了,不好意思谢谢咯继续等待解决问题 
      

  9.   

    function   Bcode2Scode_3(xx:pchar;xx:PPChar;xx:integer;xx:integer):integer;stdcall;
    把那个char ** 翻译成PPChar = ^PChar;
      

  10.   

    IntToStr(BCode2SCode_3(Str1,@Str2,n,m))); 
      

  11.   

    function   Bcode2Scode_3(xx:pchar;xx:ppchar;xx:integer;xx:integer):integer;stdcall; 
    把char **翻译成 PPChar = ^Pchar,指向pchar的指针~,delphi本身自带的类型
      

  12.   

    TO : logne
       function       Bcode2Scode_3(xx:pchar;xx:PPChar;xx:integer;xx:integer):integer;stdcall; 
       把那个char   **   翻译成PPChar   =   ^PChar;试过了
    返回结果还是为-1
      

  13.   

    var 
        Str: string;
        Str1:   PChar;
        Str2: PPChar;    
        n,m,k:   Integer; 
    begin 
        Str1 := "ABCDEF "; 
        Str := "56789654 "; 
        Str2 := @PChar(Str);
        n:=9; 
        m:=10; 
        ShowMessage(IntToStr(BCode2SCode_3(Str1,Str2,n,m))); 
        ShowMessage(Str1); 
    end; 
    楼主是这么调用的么?还有楼主确认返回值正确情况下不是-1么?
      

  14.   

    上面那个有点小错误,呵呵
    var   
            Str1, Str:       PChar; 
            Str2:   PPChar;         
            n,m,k:       Integer;   
    begin   
            Str1   :=   "ABCDEF   ";   
            Str   :=   "56789654   ";   
            Str2   :=   @Str; 
            n:=9;   
            m:=10;   
            ShowMessage(IntToStr(BCode2SCode_3(Str1,Str2,n,m)));   
            ShowMessage(Str1);   
    end; 
      

  15.   

    To :logne
       var       
         Str1,   Str:               PChar;   
         Str2:       PPChar;                   
         n,m,k:               Integer;       
       begin       
         Str1       :=       "ABCDEF       ";       
         Str       :=       "56789654       ";       
         Str2       :=       @Str;   
         n:=9;       
         m:=10;       
         ShowMessage(IntToStr(BCode2SCode_3(Str1,Str2,n,m)));       
         ShowMessage(Str1);       
       end; 我是这么调用的啊
    如果结果正确的话程序应该继续执行撒
    这样调用后结果是-1程序就自动关闭了  
      

  16.   

    To : hsmserver
       用PWideChar,PPWideChar试试试过了不行哦