Merhaba sevgili yazılımperver dostlarım, öncelikle hepinize 2024 yılında sevdiklerinize mutlu bir sene geçirmenizi diliyorum 🙂 Uzun süredir uEngine4 ile ilgili yazılar paylaştıktan sonra C++ maceramıza dönmenin vakti geldi. Elbette, uEngine’e ilişkin paylaşacağım daha bir çok konu var ama ufak bir ara vermekte bir sakınca yok sanırım. C++ 11, 14, 17’ye ilişkin bir çok konuya bakmış… Continue reading
Haftalık Videolar 11 – Windows XP Task Manager + How Linking Works
Pazar günü için sizler ile iki güzel video paylaşıyorum. Bunlardan ilki çok uzun olmayan ama açıkçası ilgi çekici bir video: “The Windows Source Code Revealed: Task Manager”.
Video, daha önce Windows XP task manager’ı geliştiren arkadaşın yıllar sonra MS’den izin de alarak, yazmış olduğu kodu aktarmasını içeriyor (aslında bu ilki, devamında da farklı yönlerine dğeiniyor).
Yıllar sonra, hepimizin aşina olduğu bir uygulamaya ilişkin kaynak kodları görmek açıkçası benim ilgimi çekti ayrıca yazarın o zaman yazmış olduğu kodlara yönelik yorumları da kayda değer. Bu kanalında güzel videolar mevcut, gözüme çarpan diğer videoları da paylaşıyor olacağım:
İkinci video ise ilkine göre biraz daha uzun olsa da bence oldukça bilgilendirici: “What Happens After The Compiler in C++ (How Linking Works)”.
İsminden de anlaşılacağı üzere, video linux için derleme sonrasında, bağlama (linking) aşamasında yapılanları oldukça yalın ve akıcı bir şekilde aktarıyor. Açıkçası, “Foundations of Linux Debugging, Disassembling, and Reversing: Analyze Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++ Code with Intel x64” kitabından sonra böyle bir videoya denk gelince sizler ile paylaşma istedim, bir yazımda buradaki adımları da paylaşmayı planlıyorum.
İyi seyirler.
uEngine4 Serüveni – Zamanlayıcılar
Merhaba sevgili yazılımperver dostlarım. Bugünkü yazımda, uEngine4 içerisinde sessiz sessiz duran bir proje hakkında yazıyor olacağım: “time”. İsminden de anlaşılacağı üzere, bu proje içerisinde, projelerinizde ihtiyaç duyabileceğini bir çok zamanlayıcı, ölçüm ve benzeri araçları bulabilirsiniz. Mevcut uEngine içerisinde de, bu sınıfları kullanıyor olacağım. Ayrıca, bunların bir kısmına çeşitli yazılarımda da yer vermiştim. Yazıların bağlantılarını da… Continue reading
uEngine4 Serüveni – BasicGLPainter – II
Evet dostlar, GLPainter sınıfımızın kalan kabiliyetlerine bakma vakti geldi. Bu yazımızda aşağıdaki yazılarda eksik bıraktığımız konulara değinerek, GLPainter’ı sizlerin kullanımına sunuyorum. uEngine4 Serüveni – Giriş (Painter Sınıfları) uEngine4 Serüveni – BasicGLPainter – I Bir önceki yazımda GLPainter ile metin gösterimi ve resim çizmeye yönelik kabiliyetlere değinmiştik. Şimdi, kalan hususlara değinelim. Bunlardan ilki dönüşümler, diğeri ise… Continue reading
Haftalık C++ 59 – Linux C/C++ Uygulamalarında Yığın (“Stack”) Boyutu Ayarlama
Evet sevgili yazılımperver dostlarım, yazımın başlığından da anlaşılacağı üzere, bu yazımda çok spesifik bir konu üzerine eğileceğiz. Daha önceki yazılarımda heap ve stack belleklerinden bahsetmiştim (umarım 🙂 ) Kabaca, uygulama içerisinde, heap, new/malloc ile alınan bellek alanları için kullanılırken, stack ise tanımladığınız yerel değişkenler, iç içe çağırdığımız fonksiyona ilişkin bir takım veriler için kullanılan bellektir… Continue reading
Haftalık C++ 58 – std::vector İpuçları
Merhaba sevgili yazılımperver dostlarım, bu kısa yazımda, günlük kodlama hayatınızda (nasıl terminoloji 🙂 ) std::vector’e ilişkin dikkatinizden kaçabilecek ufak tefek ipuçlarına değineceğim. Bunları aynı zamanda bir hatırlama egzersizi olarak da görebilirsiniz. İlk olarak std::vector yapıcısına göz atalım.
1 2 3 4 5 6 7 8 9 10 11 12 |
// Asagidaki API cagrilari sonrasi elimizde; 0, 0, 0, 0, 0, 0, 1, 2 olur std::vector<int> instance(5); instance.push_back(0); instance.push_back(1); instance.push_back(2); // Asagidaki API cagrilari sonrasinda ise elimizde; 0, 1, 2 olur std::vector<int> instance; instance.reserve(5); instance.push_back(0); instance.push_back(1); instance.push_back(2); |
Yukarıda göreceğiniz üzere, std::vector yapıcısı, ilgili nesneyi verilen adet kadar 0 ile dolduruyor. Bu kabiliyet en çok… Continue reading