Mamy dużą aplikację komercyjną, którą chcemy przekonwertować z Delphi 6 na 2010. Około 10 zestawów komponentów stron trzecich, wszystkie z kodem źródłowym ... Słyszałem ostrzeżenia o Unicode z 2010 r. - Czy ktoś ma doświadczenie i lub sugestie?Konwersja Delphi Kody Unicode
Odpowiedz
Jestem ostatnio w tej samej sytuacji. zazwyczaj musisz zwracać uwagę na "krawędzie" aplikacji. Pliki INI, pliki I/O, pliki logów itp. Wygrywają wywołania API z delphi, ponieważ zamiast tego mają teraz połączenia API Unicode. sprawdź każdy zestaw komponentów innych producentów, aby upewnić się, że są one przynajmniej gotowe na Delphi 2009 ... jeszcze lepiej. Nawet moje wykorzystanie baz danych po prostu nie było problemem ... prawie wszystko działało od razu. to po prostu nie była wielka sprawa. wszystko, co zależy od wielkości postaci, powinno zostać sprawdzone.
Naprawdę przejściem najbardziej niepokojącym jest 2007_or_earlier -> 2009_or_later.
Istnieje wiele dyskusji/wpisów na blogu na ten temat. możesz czytać, czytać, czytać ... lub możesz zacząć & Zobacz, co się stanie. (Zrobiłem jedne i drugie). Jestem pewien, że problemy z przepełnieniem stosu omawiają twoje pytanie. Nie zamierzam podawać dokładnego opisu tego, co może się zdarzyć.
Po prostu nie jest tak straszny, jak się wydaje.
Dostępnych jest wiele zasobów, które można przeczytać, i które pomogą w migracji z Delphi 6 do Delphi 2009/2010 (Unicode).
Możesz używać tych artykułów jako przewodnika.
- Unicode Migration Statistics Tool (Narzędzie to miejmy nadzieję pomóc w zbieraniu przydatnych statystyk jak mocno (lub nie) byłoby migracji starszych aplikacji do Unicode.)
- Delphi 2009 and Unicode
- Delphi 2009 strings explained by example
- Upgrading a major project to Delphi 2009
- Delphi and Unicode
- Dr. Bob Delphi 2009 Unicode
- Delphi 2009 - Unicode in Type Libraries
- On Strings and Unicode in Delphi 2009
- Delphi in a Unicode World Part I: What is Unicode, Why do you need it, and How do you work with it in Delphi?
- Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode
- Delphi in a Unicode World Part III: Unicodifying Your Code
- CodeRage 4 : Using Unicode and Other Encodings in your Programs
Bye.
Znajdziesz kilka użytecznych odpowiedzi w tych kwestiach StackOverflow:
Move project from Delphi 3 to Delphi 2010
When and Why Should I Use TStringBuilder?
Convert function to delphi 2009/2010 (unicode)
Unicode problems with Delphi 2009/2010 and windows API calls
Ponadto, co warto, kupiłem Marco Cantu's Delphi 2009 Handbook. To było wszystko, czego potrzebowałem, aby stosunkowo łagodnie przejść od Delphi 4 do Delphi 2009 w zaledwie kilka tygodni.
alt text http://www.marcocantu.com/dh2009/D2009Handbook_small.jpg
robię, jednak zaleca się zapewnienie 3rd Party pakiety mają Delphi 2009 uaktualnienie, czy może masz jakieś realne trudności. Konwertowanie własnego kodu to jedno. Konwersja cudzych jest inna.
Używam dwóch pakietów zewnętrznych, zarówno z kodem źródłowym. Oba miały dostępne ulepszenia, a twórca jednego z nich napisał, że miał problemy z uaktualnieniem swojego bardzo złożonego komponentu do Unicode of Delphi 2009. Zajęło mu to kilka miesięcy, ale ukończył go. W rezultacie miałem niewielki problem z wdrożeniem jego komponentu, kiedy dokonałem aktualizacji.
Około 10 zestawów komponentów stron trzecich, wszystkie z kodem źródłowym.
Jedną z rzeczy, które chciałbym dodać, jest to, że komponent nie obsługuje Delphi 2009/2010, nie próbuj ulepszać go poprzez hakowanie kodu.
obserwuję to co napisałem na How do the new string types work in Delphi 2009/2010?:
Zobacz Delphi and Unicode, biały papier napisany przez Marco Cantù i myślę The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!), napisany przez Joela.
Jedna pułapka jest to, że domyślna Win32 wywołanie API zostało odwzorowane używać W (szeroki ciąg) wersję zamiast (ANSI) wersja A, na przykład
ShellExecuteA
Jeśli kod robi trudne kod wskaźnika zakładając wewnętrzny układAnsiString
, pęknie. Zastąpienie jest zastąpieniePChar
zPAnsiChar
,Char
zAnsiChar
, zAnsiString
i dołączyć A na końcu wywołania Win32 API dla tej części kodu. Po tym, jak kod faktycznie się kompiluje i działa normalnie, możesz zmienić kod, aby użyćstring
(UnicodeString
).
Muszę dodać ten artykuł z Carey Jensen do innych wymienionych. Jest on oznaczony jako "Delphi Migracja Unicode dla zwykłych śmiertelników: Historie i porady z pierwszych linii" (w języku angielskim). http://www.danysoft.com/free/delphiunicodemigration.pdf
Jak widać w tytule, znajdziesz wiele doświadczeń i wskazówek. Myślę, że jest to odpowiedź na twoje pytanie. Po uważnym przeczytaniu na pewno będziesz wiedział, co dalej robić.:)
Znaleziono w: http://www.danysoft.com/productos/migrar-aplicaciones-a-delphi-xe-o-cbuilder-xe.html
inny punkt zająć, jest wykorzystanie typów wariant z łańcuchów i testowania funkcji VarType dla strun: trzeba użyć varUString zamiast varString.
Zakładając Avalue jest typu Variant i jest przypisana wartość ciąg Unicode, co następuje nie zadziała:
if VarType(AValue) = varString then ...
i musi zostać zmieniona na
if VarType(AValue) = varUString then ...
- 1. Konwersja Unicode wielobajtową
- 2. Konwersja ciąg reprezentacji unicode
- 3. Konwersja SSIS między błędem Unicode i Non-Unicode
- 4. Jak kodować kody znaków Unicode w dosłownym słowie programu PowerShell?
- 5. Kody Unicode Kodowanie i dekodowanie w kodzie QR Kod
- 6. Delphi Unicode String Length w bajtach
- 7. Zastosowanie konsoli Unicode w Delphi 2009
- 8. Jak wyłączyć kodowanie Unicode w Delphi xe2
- 9. Kawałkowa konwersja aplikacji MFC na Unicode/MBCS
- 10. Konwersja i eksport Unicode w R
- 11. Konwersja numerycznej notacji odniesienia znaków Unicode ciąg
- 12. C# Konwersja delphi TColor do koloru (Hex)
- 13. Sprawdź, czy znak jest literą w Delphi (Unicode)
- 14. Python: Konwersja kompleks słownika ciągów z Unicode do ASCII
- 15. Konwersja ciągów HTML-uciekł do zwykłego Unicode/ASCII
- 16. Konwersja Unicode cyrylicy symbole na ciąg w Pythonie
- 17. Jak można znaleźć kody kodowe Unicode, dla których czcionka ma glify, w systemie opartym na Debianie?
- 18. Konwersja interfejsu obiektu COM z C na Delphi
- 19. Konwersja pliku autonomicznego pliku .tl utworzonego przez Delphi do .ridl
- 20. Chińskie kody językowe
- 21. TimeZoneInfo i kraj kody
- 22. tortoisesvn Diff kody kolorów
- 23. Kody portów lotniczych - iOS
- 24. MediaRecorder start kody błędów
- 25. bash - kody ucieczki kolorów
- 26. Kody błędów Androida MediaPlayer?
- 27. kody pobierania i strzałek
- 28. Znak Unicode o symbolu Unicode
- 29. Jak przekonwertować TStringGrid z Delphi 7 do Delphi XE
- 30. Kody jednostek HTML do tekstu
nie zapomnij Sesja Unicode, którą dałem na CodeRage4, zawiera jeszcze więcej materiałów referencyjnych: http://wiert.wordpress.com/2009/09/11/coderage-4-session-using-unicode-and-other-encodings-in-your- programy-czat-i-qa-transkrypty/ –
@Jeroen, Świetne wideo, dodane;) – RRUZ