quasi yazdı:merhaba..
Projede Aproya ait hiçbir unit dosyası yok. Aslında hata şekli değişti. Ben ComPort componenti içinden bir kaç satırı inactive etmişim. Onları aktifleştirince şu hata ortaya çıktı:
[C++ Error] CPort.hpp(686): E2238 Multiple declaration for '_fastcall EComPort::EComPort(int)'
[C++ Error] CPort.hpp(677): E2344 Earlier declaration of '_fastcall EComPort::EComPort(int)'
[C++ Error] CPort.hpp(704): E2238 Multiple declaration for '_fastcall EComPort::EComPort(int,int)'
[C++ Error] CPort.hpp(676): E2344 Earlier declaration of '_fastcall EComPort::EComPort(int,int)'
İki defa deklare edilmiş. Daha önce böyle bir hata ile karşılaşmıştım. Bu forumda bunu sormuştum. Comportun program içinde Close ile kapatmamı önerdiler.
Başka bir tavsiyeniz var mı?
İyi Çalışmalar...
Bu gözümden kaçmış.
Buradaki multiple declaration sizin düşündüğünüz anlamda değil.
Yani aynı iki fonksiyon ayrı ayrı yerlerde iki kere deklare edilmiş anlamına gelmiyor. tabii siz böyle anladıysanız.
buradaki durum isim uzayı çakışması ile ilgili.
Yani aynı isim uzayında aynı adlı iki fonksiyon var. bunlardan hangisini kullanacağı açık değil. böyle durumlarda derleyici sizin aldığınız hatayı verir.
Çözüm olarak
derleyiciye hangi fonksiyonu kullanması gerektiğini yazmanız gerekir.
örneğin iki adet create() fonksiyonumuz olsun birisi sınıf1 e kayıtlı diğeri sınıf2 ye
derleyiciye hangisini kullanması gerektiğini
Sinif1::Create();
veya
Sinif2::Create();
şeklinde yazarak açıklamalıyız.
Doğrudan Create() şeklinde3 kullandığınızda isim uzayları önceden tanımlanmamışsa multiple declaration hatası verecektir.
using namespace xxx
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...