Próbuję przekonwertować niektóre starego kodu Delphi 7 do Delphi 2010Delphi unicode porting: Niekompatybilne typy: błąd "Char" i "AnsiChar" z funkcjami Win32 jak CharToOEM?
function AnsiToDOS(S: String): String;
begin
SetLength(Result, Length(S));
if S <> '' then begin
CharToOEM(PChar(S), PChar(Result));
end;
end;
uzyskać "niezgodne typy: 'char' i 'AnsiChar'" błąd w linii:
CharToOEM (zewnętrzny User32 funkcja) stwierdzono w
jednostkiWindows.pas
mogę przepisać tej funkcji AnsiToDos jakoś, albo muszę napisać własny rutynowych CharToOEM?
Funkcja [CharToOEM] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms647473 % 28v = vs.85% 29.aspx) jest [Banned] (http://msdn.microsoft.com/en-us/library/bb288454.aspx) dla Microsoft zamiast używać [WideCharToMultiByte] (http: // msdn. microsoft.com/en-us/library/windows/desktop/dd374130%28v=vs.85%29.aspx). – RRUZ
@RRUZ Wiele z tych zabronionych funkcji jest całkowicie uzasadnionych w użyciu. –
@DavidHeffernan Wolę przestrzegać zaleceń MSDN (jeśli jest to możliwe). – RRUZ