Chúng tôi có ứng dụng thương mại lớn mà chúng tôi muốn chuyển đổi từ Delphi 6 sang 2010. Khoảng 10 bộ thành phần bên thứ 3, tất cả đều có mã nguồn ... Tôi đã nghe cảnh báo về Unicode với năm 2010 - Có ai có kinh nghiệm không và hoặc gợi ý?Các vấn đề Unicode chuyển đổi Delphi
Trả lời
Tôi đã ở trong cùng một trường hợp gần đây. bạn chủ yếu cần chú ý đến "cạnh" của ứng dụng. Các tệp INI, tệp I/O, tệp nhật ký, v.v. giành các cuộc gọi API từ công việc delphi vì chúng hiện đã kết nối các cuộc gọi API unicode thay thế. kiểm tra từng thành phần của bên thứ 3 để đảm bảo rằng họ sẵn sàng cho Delphi 2009 ... tốt hơn vào năm 2010. thậm chí việc tôi sử dụng cơ sở dữ liệu đơn giản không phải là vấn đề ... gần như mọi thứ đã hoạt động ngay lập tức. nó không phải là một vấn đề lớn. bất cứ điều gì dựa trên kích thước của một nhân vật nên được xem xét.
thực sự sự chuyển đổi quan tâm nhất là 2007_or_earlier -> 2009_or_later.
có rất nhiều cuộc thảo luận/bài viết blog về nó. bạn có thể đọc, đọc, đọc ... hoặc bạn có thể bắt đầu & xem điều gì sẽ xảy ra. (tôi đã làm một số của cả hai). Tôi chắc chắn có các vấn đề "ngăn xếp chồng" thảo luận câu hỏi của bạn. Tôi không giả vờ đưa ra một mô tả chi tiết về những gì có thể xảy ra.
đơn giản là không đáng sợ như âm thanh.
Có nhiều tài nguyên có sẵn mà bạn có thể đọc và bạn sẽ hỗ trợ trong quá trình di chuyển từ Delphi 6 sang Delphi 2009/2010 (Unicode).
Bạn có thể sử dụng các bài viết này làm hướng dẫn.
- Unicode Migration Statistics Tool (Tiện ích này hy vọng sẽ giúp bạn trong việc thu thập thống kê hữu ích về cách cứng (hoặc không) nó sẽ di chuyển các ứng dụng cũ của bạn để 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.
Bạn sẽ tìm thấy câu trả lời hữu ích trong một số những câu hỏi này 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
Ngoài ra, cho những gì nó có giá trị, tôi đã mua Marco Cantu's Delphi 2009 Handbook. Đó là tất cả những gì tôi cần để tạo ra một hội tụ tương đối mượt mà từ Delphi 4 đến Delphi 2009 chỉ trong vài tuần.
alt text http://www.marcocantu.com/dh2009/D2009Handbook_small.jpg
tôi làm, tuy nhiên, khuyên bạn nên đảm bảo các gói bên thứ 3 bạn có một nâng cấp Delphi 2009, hoặc bạn có thể có một số khó khăn thực sự. Chuyển đổi mã của riêng bạn là một điều. Chuyển đổi của người khác là khác.
Tôi sử dụng hai gói của bên thứ ba, cả hai đều có mã nguồn. Cả hai đều có bản nâng cấp, và nhà phát triển của một trong số họ đã viết rằng anh đã gặp rất nhiều vấn đề khi nâng cấp thành phần rất phức tạp của mình lên Unicode của Delphi 2009. Nó mất một vài tháng, nhưng anh đã hoàn thành nó. Và kết quả là, tôi gặp chút rắc rối với việc triển khai thành phần của mình khi tôi nâng cấp.
Khoảng 10 bộ thành phần của bên thứ ba, tất cả đều có mã nguồn.
Một điều tôi muốn thêm là nếu thành phần không hỗ trợ Delphi 2009/2010, đừng cố gắng nâng cấp bằng cách hack mã.
Sau đây là những gì tôi được đăng trên How do the new string types work in Delphi 2009/2010?:
Xem Delphi and Unicode, một tờ giấy trắng được viết bởi Marco Cantù và tôi đoán The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!), được viết bởi Joel.
Một lỗ hổng là cuộc gọi API Win32 mặc định đã được ánh xạ để sử dụng phiên bản W (chuỗi rộng) thay vì phiên bản A (ANSI), ví dụ:
ShellExecuteA
Nếu mã của bạn đang làm mã con trỏ phức tạp giả sử bố cục bên trong củaAnsiString
, nó sẽ phá vỡ. Dự phòng là thay thếPChar
bằngPAnsiChar
,Char
bằngAnsiChar
,string
vớiAnsiString
và nối thêm A vào cuối lệnh gọi Win32 API cho phần mã đó. Sau khi mã thực sự biên dịch và chạy bình thường, bạn có thể cấu trúc lại mã của mình để sử dụngstring
(UnicodeString
).
Tôi phải thêm bài viết này từ Carey Jensen cho những người khác được đề cập. Nó được dán nhãn: "Delphi Unicode Migration for Mortes Mortals: Stories and Advice from the Front Lines" (bằng tiếng Anh). http://www.danysoft.com/free/delphiunicodemigration.pdf
Như bạn có thể thấy trong tiêu đề của nó, bạn sẽ tìm thấy nhiều kinh nghiệm và gợi ý và mẹo. Tôi nghĩ đó là câu trả lời cho câu hỏi của bạn. Sau khi đọc kỹ, bạn chắc chắn sẽ biết phải làm gì tiếp theo.:)
Tìm thấy tại: http://www.danysoft.com/productos/migrar-aplicaciones-a-delphi-xe-o-cbuilder-xe.html
Một điểm cần chăm sóc, là việc sử dụng các loại với chuỗi và chức năng kiểm tra VarType cho các chuỗi biến thể: một nhu cầu sử dụng varUString thay vì varString.
Giả sử Avalue là loại biến thể và đã được gán một giá trị chuỗi Unicode, sau đây sẽ không làm việc:
if VarType(AValue) = varString then ...
và cần phải được thay đổi để
if VarType(AValue) = varUString then ...
- 1. python: unicode vấn đề
- 2. RMagick vấn đề chuyển đổi
- 3. lua vấn đề chuyển đổi 64 bit
- 4. Vấn đề Chuyển đổi ipv6 thành ipv4
- 5. Delphi 7 đến Delphi XE2 res vấn đề tập tin
- 6. Mysql thời gian vấn đề chuyển đổi
- 7. Chuyển đổi vấn đề: __asm__ __volatile__
- 8. Delphi 2009 + Unicode + Char-size
- 9. SSIS Chuyển đổi giữa Unicode và Lỗi không phải Unicode
- 10. Vấn đề bộ nhớ Delphi (FastMM4)
- 11. Delphi và COM: TLB và các vấn đề bảo trì
- 12. Delphi 32 đến Delphi XE2 (64 bit) chuyển đổi
- 13. Chuyển đổi các vấn đề về quyết định thành các vấn đề tối ưu hóa? (các thuật toán tiến hóa)
- 14. Widestring để chuyển đổi chuỗi trong Delphi 7
- 15. Chuyển đổi Delphi Real48 thành C# double
- 16. Chuyển đổi số sang ký hiệu Unicode
- 17. Độ dài chuỗi Delphi Unicode theo byte
- 18. Các vấn đề về đổi tên Git
- 19. Delphi 2009 và Firebird 2.1 = Unicode đầy đủ?
- 20. Unicode để chuyển đổi chuỗi trong Java
- 21. Chuyển đổi chuỗi đại diện unicode
- 22. Chuyển đổi giá trị int thành unicode
- 23. Chuyển đổi chuỗi unicode thành chuỗi byte
- 24. TFS 2010 xây dựng cấu hình chuyển đổi vấn đề
- 25. Vấn đề xoay hình ảnh PhoneGap sau khi chuyển đổi
- 26. Vấn đề chuyển đổi Đặt số nguyên thành mảng int []
- 27. Vấn đề với chuyển đổi ngầm và null
- 28. SQL Server chuyển đổi vấn đề với datetime
- 29. Vấn đề unicode Node.js với nội dung phản hồi HTTP
- 30. ImageMagick chuyển đổi gif với vấn đề minh bạch
Đừng quên Phiên Unicode tôi đã cung cấp trên CodeRage4, nó chứa nhiều tài liệu tham khảo hơn: http://wiert.wordpress.com/2009/09/11/coderage-4-session-using-unicode-and-other-encodings-in-your- chương trình-trò chuyện-và-qa-bảng điểm/ –
@Jeroen, Video Tuyệt vời, Đã thêm;) – RRUZ