C# Açık kaynaklı uygulama nasıl daha iyi hale getirilir?

alicsndemir

Kilopat
Katılım
13 Ekim 2019
Mesajlar
3.814
Makaleler
5
Çözümler
70
Yer
İzmir
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
İyi Sosyaller, açık kaynak kodlu C# ile yazılmış basit bir uygulamayı kendim özelleştirmek istiyorum. Program güzel çalışıyor fakat ilk açılışta başlama gibi özellikleri eksik. (açılışta başlatmayı biliyorum fakat başladığında içerisinden ayar yapılması gerekiyor) ben bu uygulanın kodlarına erişip içerisinde geliştirme veya değişklik yapmak istiyorum. Uygulama GitHub'ta mevcut.

GitHub - inc-Majdev/CustomLight: Forget the old-fashioned software the manufacturer gave you to manage the lights and discover the magic of lights with us! uygulama bu. Hocam forumda aktif zaten ama güncelleme yapılması şart.

@furkankadirguzeloglu hocam geliştiriyor. Fakat hem katkıda bulunmak hem de bende geliştirmek istiyorum. Öğrenmek istiyorum yavaş yavaş.

Bunu nasıl başarabilirim?
 
Son düzenleme:
Şimdi kodlara bir baktım da, ilk açılışta başlama özelliği mevcut.

Hocam başlıyor fakat her açılışta içerisine girip animasyonu seçmek gerekiyor. Ben düz rengi iptal edip direkt animasyonlu şekilde açılmasını istiyorum. Mümkünse güzel bir arayüz tasarlamak itiyorum az çok C# arayüz yapabiliyorum.
Bu Clevo kasalarda çalışan Clevo'nun bile yapamadığı animasyonu içeriyor.

Hatta bu attığım klavyede gecikmeye sebep oluyor şimdi atacağım daha kararlı ve otomatik başlama özelliği yok. Bunun açık kaynak kodları kapatılmış. Buna ulaşamadığım için ilk attığımı geliştirmek istiyorum.
 
Github da sağ üstten projeyi fork et.
Eğer projeyi kendine göre şekillendirmek ve orjinalinden çıkmak istersen forkladığın repodan devam et.
Eğer yaptığın değişiklikleri orijinal repoda da olmasını istiyorsan, yaptığın değişiklikleri orijinal repoya Pull Request at. Repo sahibi yaptığın değişiklikleri inceler, onaylarsa birleştirir.
 
Forkladım Visual Studio 2022 ile GitHub olarak açtım. Fakat uygulamayı çalıştır deyince bir kodda hata veriyor. Onu çözemedim sabah 6 da uyudum. Sanırsam InsydeDCHU.dll yi okumuyor. Dosyanın içerisinde mevcut. Sonra C de DLL'lerin bulunduğu klasöre kopyaladım yine aynı hata.
Şimdi denedim program arkada çalışıyor fakat kodda şu hatayı veriyor:

hata.png


Bu modülü başvurulara eklemeye çalıştım eklenemiyor hatası verdi. (araştırdığıma göre DLL'ler oraya ekleniyormuş.)
+ Sonra kaynak kodları sitede patlayan ve çok daha stabil çalışan uygulamayı dotpeek ile kaynak kodlarına ulaştım ve çalışma dosyası haline getirdim. Hata alıyorum. Onun hata kodu:

Adsız.png
 
Son düzenleme:
Hatada, InsydeDCHU adlı dll bulunamadı diyor. Bu modülü bulup çalıştırılabilir dosyanın olduğu klasöre ya da modülün derlendiği mimariye göre System32 ya da SysWOW64 klasörüne kopyalamalısın. En basiti bin klasörüne kopyalaman.
Ayrıca modülün mimarisine göre projenin mimarisini değiştirmelisin yoksa yine hata alırsın. Mimariden kastım x64 ya da x86. Modülün mimarisini Explorer Suite ile bulabilirsin.

Bu modül bir .Net Assembly'si değil dolayısıyla proje Reference'larına direkt ekleyemezsin. Native kod içeren bir modül bu, içinde bir dizi fonksiyon var ve sadece PInvoke çağrısı ile bu fonksiyonları çağırabilirsin.
 

Bu klasöre attım hocam DLL'yi. Şu an uygulamanın mimarisine ulaşacağım o uygula ile.

Bu modül bir .Net Assembly'si değil dolayısıyla proje Reference'larına direkt ekleyemezsin. Native kod içeren bir modül bu, içinde bir dizi fonksiyon var ve sadece PInvoke çağrısı ile bu fonksiyonları çağırabilirsin.

Bu kodu dönüştüren uygulamalar mevcut mu?

@furkankadirguzeloglu hocamda proje dosyası mevcutsa belki paylaşabilir çünkü bu uygulama Clevo'dan çok iyi ve geliştirilmesi gerekiyor.
 
Hayır, Native olarak derlenmiş bir modülü "Managed" bir .Net modülüne dönüştüremezsin. Native bir modül içindeki bir fonksiyonun nasıl çağırıldığını anlattım yukarıda PInvoke kullanmalısın ki zaten uğraştığın projede böyle yapılıyor.
 
Hayır, Native olarak derlenmiş bir modülü "Managed" bir .Net modülüne dönüştüremezsin. Native bir modül içindeki bir fonksiyonun nasıl çağırıldığını anlattım yukarıda PInvoke kullanmalısın ki zaten uğraştığın projede böyle yapılıyor.

Bana majdev hocam lazım anlaşılan. 😅
 

Yeni konular

Geri
Yukarı