Modern derleyicilere (yani bildiğim kadarıyla söyleyebilirim ad alanları kullanmaz) portuna eski kütüphane çalışıyorum. Hedeflerimden biri, System :: TObject ve :: TObject (ad alanı olmayan) arasındaki farkı söyleyemez. Sistem :: Tobject derleyiciye özgüdür.Eski kod taşırken sınıf adı çakışması nasıl ele alınır?
Ben kullanarak yönergesi denedim, yani kullanarak :: TObject;
Ama bu bunu yapmaz.
bariz çözüm belirsizlik kaçınmalıdır name- bunu çağırarak sonra tüm orijinal bir ad alanında kütüphane ve sarılmasıdır. Ama bu en akıllı çözüm mü? başka bir çözüm var mı? Bir ad ekleme dosyaların bir demet değişen gerektirecektir ve daha sonra istenmeyen yansımaları olurdu bilmiyorum.
#define TObject TMadeUpNameObject
bu derleyici 'çözülmemiş dış sembol sonuçlanan eski kütüphanede mevcut olmayacaktır oldlib tarafından öneki sembolleri, oluşturacaktır "kamu: __thiscall oldlib :: A :: ~ A (boşluk)"(? ? 1A @ oldlib @@ QAE @ XZ) ' – xtofl