在网上看到一个发布的dll,可以把文字转换成拼音、五笔码、繁体等。感觉挺实用,作者的介绍只有VB下如何使用,我照着前面的相关贴子用delphi做了,编译通过,执行中错误,不知道为啥。发上来望老鸟帮着解决一下。
作者介绍如下:接口说明:
CHS2PY()
chrString:要转换的字符串
sType:返回值类型(PYFull 返加全拼,PYFirst 返回拼音码(默认))
Separator:每个字间的分隔符(默认值为空)
示例(VB6):DIM oPYWB AS NEW WChsToPYWBC.PYWBC
DIM oStr as string
oStr = "我们都是中国人"
PRINT oPYWB.CHS2PY(oStr,PYFull) '-- 转换成拼音(即全拼音)
----------------------
以下是我的程序中的调用,请问哪儿错了?多谢大家,小弟在学习中,望支持。
unit ChToMemo;interface
..
type
..
private
{ Private declarations }
public
{ Public declarations }
end;
TChs2PY=function(Chrstring:string;SType:string):string;//这里声明
var
..
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
PFunc:TFarProc;
Moudle:THandle;
begin
Moudle:=LoadLibrary('WChsToPYWBC.dll');
if Moudle>32 then
Pfunc:=GetProcAddress(Moudle,'Chs2PY');
edit1.Text:=TChs2PY(pFunc)(edit1.Text,'PYFULL');
Freelibrary(moudle);
end;
end.
作者介绍如下:接口说明:
CHS2PY()
chrString:要转换的字符串
sType:返回值类型(PYFull 返加全拼,PYFirst 返回拼音码(默认))
Separator:每个字间的分隔符(默认值为空)
示例(VB6):DIM oPYWB AS NEW WChsToPYWBC.PYWBC
DIM oStr as string
oStr = "我们都是中国人"
PRINT oPYWB.CHS2PY(oStr,PYFull) '-- 转换成拼音(即全拼音)
----------------------
以下是我的程序中的调用,请问哪儿错了?多谢大家,小弟在学习中,望支持。
unit ChToMemo;interface
..
type
..
private
{ Private declarations }
public
{ Public declarations }
end;
TChs2PY=function(Chrstring:string;SType:string):string;//这里声明
var
..
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
PFunc:TFarProc;
Moudle:THandle;
begin
Moudle:=LoadLibrary('WChsToPYWBC.dll');
if Moudle>32 then
Pfunc:=GetProcAddress(Moudle,'Chs2PY');
edit1.Text:=TChs2PY(pFunc)(edit1.Text,'PYFULL');
Freelibrary(moudle);
end;
end.
implementation
funciton CHS2PY:string;stdcall; external 'XXX.DLL';
然后后面直接调用
..
type
..
private
{ Private declarations }
public
{ Public declarations }
end;
TChs2PY=function(Chrstring:string;SType:string):string;//这里声明
var
..
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
PFunc:TChs2PY;
Moudle:THandle;
begin
Moudle:=LoadLibrary('WChsToPYWBC.dll');
if Moudle>32 then
@Pfunc:=GetProcAddress(Moudle,'Chs2PY');
edit1.Text:=pFunc(edit1.Text,'PYFULL');
Freelibrary(moudle);
end;
end.
stdcall 试试。
另,建议楼主编码不要采用自由式。