- functionChineseCharToPinyin(w:WideString):string;
- var
- vGuid:TGUID;
- vFELanguage:IFELanguage;
- vError:Integer;
- vCaps:DWORD;
- vOutput:PMORRSLT;
- vPinYin:WideString;
- S:WideString;
- I:Integer;
- iMonoRubyPos:WORD;
- iReadIdxWDD:WORD;
- vMonoRubyPos:PWORD;
- vReadIdxWDD:PWORD;
- begin
- Result:=EmptyStr;
- ifCLSIDFromString(PWideChar(WideString('MSIME.China')),vGuid)<>S_OKthen
- Exit;
- vError:=CoCreateInstance(vGuid,nil,CLSCTX_SERVER,
- IFELanguage,vFELanguage);
- ifvError<>S_OKthen
- Exit;
- vError:=vFELanguage.Open;
- ifvError<>S_OKthen
- Exit;
- vCaps:=0;
- vError:=vFELanguage.GetConversionModeCaps(@vCaps);
- ifvError<>S_OKthen
- Exit;
- vOutput:=nil;
- vError:=vFELanguage.GetJMorphResult(FELANG_REQ_REV,
- FELANG_CMODE_PINYINorFELANG_CMODE_NOINVISIBLECHAR,
- Length(W),PWideChar(W),nil,@vOutput);
- ifvError<>S_OKthen
- Exit;
- ifnotAssigned(vOutput)thenExit;
- vPinYin:=Copy(vOutput^.pwchOutput,1,vOutput^.cchOutput);
- Result:=vPinYin;
- CoTaskMemFree(vOutput);
- vFELanguage.Close;
- vFELanguage:=nil;
- end;
把汉字转换为拼音
最新推荐文章于 2024-11-20 12:05:40 发布