谁能提供一下这个dll的接口
最好能举例说明一下啊
先在这谢谢了啊

解决方案 »

  1.   

    接口函数拿eXeScope能轻松弄到,但是参数不太好弄,版本太多列子不太可能!
    你花点时间搜搜!
      

  2.   


    是和拼音有关,也有一个自己的函数(网上找的),但是功能不够强大(就是有很多汉字转换不过来)
    网上有人说自己的函数和这个dll结合效果不错,所以才找的它
      

  3.   

     QueryPY.DLL中共有两个函数:
    WyQueryPY 只查询拼音的开头字母
    WyQueryPYWhole 查询完整的拼音你可以在DELPHI程序中这样声明它们:
    function WyQueryPY(HanStr,R: PChar): integer; Stdcall; external 'QueryPY.dll';
    function WyQueryPYWhole(HanStr,R: PChar): integer; Stdcall; external 'QueryPY.dll';HanStr: 传入需要查询的汉字字符串;
    R : 查询的结果将保存在这里;
    返回 : 函数返回R的长度。还有一点要说明:汉字字符串中可以有英文字母,它们将不作处理。下面的例子查询Edit1中的汉字拼音拼法:
    unit upy;interfaceuses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls;type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;var
    Form1: TForm1;
    function WyQueryPY(HanStr,R: PChar): integer;Stdcall; external 'QueryPY.dll';
    function WyQueryPYWhole(HanStr,R: PChar): integer;
    Stdcall; external 'QueryPY.dll';implementation{$R *.DFM}procedure TForm1.Button2Click(Sender: TObject);
    var
    str: array[0..100] of char;
    begin
    WyQueryPY(Pchar(Edit1.Text),str);
    showmessage('拼音开头字母是:' + #13 + str);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
    str: array[0..200] of char;
    begin
    WyQueryPYWhole(Pchar(Edit1.Text),str);showmessage('完整拼音是:' + #13 + str);
    end;end.
      

  4.   


    function ChineseToPY(S: string): string;
    const
      ChinaCode: array[0..25, 0..1] of Integer = ((1601, 1636), (1637, 1832), (1833, 2077),
            (2078, 2273), (2274, 2301), (2302, 2432), (2433, 2593), (2594, 2786), (9999, 0000),
            (2787, 3105), (3106, 3211), (3212, 3471), (3472, 3634), (3635, 3722), (3723, 3729),
            (3730, 3857), (3858, 4026), (4027, 4085), (4086, 4389), (4390, 4557), (9999, 0000),
            (9999, 0000), (4558, 4683), (4684, 4924), (4925, 5248), (5249, 5589));
    var
      C1, C2, Len1: Integer;
      ir: Word;
    begin
      Result := '';
      C1 := 1;
      Len1 := Length(S);
      while (C1 <= Len1) do
      begin
            if (ord(S[C1]) >= 160) and (ord(S[C1 + 1]) >= 160) then
            begin
              ir := (ord(S[C1]) - 160) * 100 + ord(S[C1 + 1]) - 160;
              if (ir > 300) and (ir <= 395) then
              begin
                    Result := Result + Chr(ir - (300 - 32));
              end
              else
              begin
                    C2 := 0;
                    while (C2 <= 26) do
                    begin
                      if (ir >= ChinaCode[C2, 0]) and (ir <= ChinaCode[C2, 1]) then
                      begin
                            Result := Result + chr(C2 + ord('a'));
                            break;
                      end;
                      C2 := C2 + 1;
                    end;
              end;
              C1 := C1 + 2;
            end
            else
            begin
              Result := Result + S[C1];
              C1 := C1 + 1;
            end;
      end;
    end;