Hai cảnh báo đầu tiên bạn đề cập (cùng với một vài cảnh báo khác) là để bạn biết rằng mã bạn hiện đang sử dụng sẽ không biên dịch trên các nền tảng khác nhau. Đối với Delphi 2007, không có nhiều, nhưng nó mang phần còn lại của Kylix (phiên bản Linux đã biến mất) và Delphi cho .NET (cũng biến mất).
Phiên bản mới hơn của nền tảng hỗ trợ Delphi (Win32/Win64, OS X, iOS và Android), nơi các thư này có liên quan trở lại khi phát triển ứng dụng Firemonkey (hoặc ứng dụng VCL nếu có sự khác biệt giữa Win32 và Win64) . Chúng cho biết các điểm trong mã của bạn, nơi bạn sẽ phải thực hiện điều chỉnh trong mã của mình cho các hệ điều hành khác nhau. (Ví dụ, hai bạn trích dẫn là dành cho các hộp thoại dành riêng cho Windows; bạn cần phải sử dụng một hộp thoại khác dựa trên nền tảng đích và sử dụng các câu lệnh {$IFDEF}
xung quanh các khu vực cụ thể theo từng nền tảng để giữ chúng không được biên dịch cho Các mã khác
Vì mã hiện tại của bạn không thể được chuyển trực tiếp (ngay cả trong phiên bản Delphi hiện đại) sang bất kỳ thứ gì ngoài Windows vì nó dựa trên VCL, bạn có thể tắt các cảnh báo đó một cách an toàn. các thông báo sau (hoặc sử dụng trình biên dịch xác định tôi đã bao gồm trong mã của bạn):
Library Symbol {$WARN SYMBOL_LIBRARY OFF}
Platform Symbol {$WARN SYMBOL_PLATFORM OFF}
Library Unit {$WARN UNIT_LIBRARY OFF}
Platform Unit {$WARN UNIT_PLATFORM OFF}
Unsafe type (.NET remnant) {$WARN UNSAFETYPE OFF}
Unsafe code (.NET remnant) {$WARN UNSAFECODE OFF}
Unsafe typecast (.NET remnant) {$WARN UNSAFECAST OFF}
Hai bạn vừa nói tôi không thể tái tạo với D2007 (phiên bản IDE 11 .0.2804.9245), vì vậy tôi nghi ngờ rằng câu trả lời của skamradt là chính xác - đó là vì bạn có các thư mục nguồn VCL trong đường dẫn tìm kiếm của bạn, và bạn không nên. Nó phải được đặt thành $(BDS)\Lib
. Nếu bạn cần để có thể bước qua nguồn, hãy sử dụng trang Project->Options->Compiler
và chọn tùy chọn Use debug DCUs
theo số Debugging
thay thế.
Nguồn
2013-11-06 15:54:34
Tôi có vấn đề này trong XE5, nhưng tôi không chắc chắn đường dẫn để loại bỏ, bạn có thể cho biết đường dẫn chính xác? – Wel