Yardım Game SRC Warning'leri !

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Afraz

Cehalet yenilmesi gereken en büyük düşmandır.
Yardımsever Üye
MT Üye
Mesaj
678
Çözümler
30
Beğeni
181
Puan
604
Selamün aleyküm , bu konuya aldığım warningleri çözme umuduyla giriyorum :D Bilen kişiler lütfen resimlerden bana yardımcı olsun.

İstediğiniz resimleri atabilirim(Örnek db.cpp'nin 90.satırını ss olarak atarmısın gibisinden.) şuan hepsini tek tek atmak görüntü kirliliği olur diye düşündüm :D.

1.warning.png 2.warning.png 3.warning.png 4.warning.png

5.warning.png

6.warning.png
 
long int warninglerini %ld yerine %d yap (config.cpp)

sende varolan signed and unsigned integer hataları sıkıntı çıkarmaz ancak yine de çözmek istiyorsan kod bloğunu göstermen gerekir.

cryptopp warningleri çözülmez çünkü kendi yapımcılarının tasarlarıdığı bir library o. warning almanın nedeni büyük ihtimal cryptopp u c++17 veya daha üst sürüm ile derliyor olman..
 
long int warninglerini %ld yerine %d yap (config.cpp)

sende varolan signed and unsigned integer hataları sıkıntı çıkarmaz ancak yine de çözmek istiyorsan kod bloğunu göstermen gerekir.

cryptopp warningleri çözülmez çünkü kendi yapımcılarının tasarlarıdığı bir library o. warning almanın nedeni büyük ihtimal cryptopp u c++17 veya daha üst sürüm ile derliyor olman..
İstediğiniz resimleri atıcağım fakat suanda başka bir error ile uğraşıyorum sistem eklemede de :D unique_ptr sorunları veriyor bir türlü çözemedim.

Screenshot_2.png
 
Tam olarak sürüm ney bilmiyorum :D Açıcakcası xd ama onu std::move böyle değiştirip tekrar denedim ama yine olmadı sorunun çözümü nasıl olabilir sizce?
 
Tam olarak sürüm ney bilmiyorum :D Açıcakcası xd ama onu std::move böyle değiştirip tekrar denedim ama yine olmadı sorunun çözümü nasıl olabilir sizce?

makefile de CFLAG kısmında yazar : -std= ??

std::move falan anlamsız denemeler, c++11 kullanmıyorsan std::unique_ptr yerine std::auto_ptr kullan
 
evet sorunu çözdü teşekkürler <3

bu arada auto_ptr kullanırsan büyük ihtimal sistem memory leak yapacak.

fonksiyonu kullanırken ayrılan belleği silmen gerekir, hangi sistemi kurmaya çalışıyorsun bilmiyorum ama sistemi yazan kişi unique_ptr olarak yazdıysa ve sen auto_ptr kullanıcaksan garanti memory leak yapıp serverin oyuncu sayısına bağlı bellek şişip, kanal overflow hatası ve core verip kapanacaktır..
 
bu arada auto_ptr kullanırsan büyük ihtimal sistem memory leak yapacak.

fonksiyonu kullanırken ayrılan belleği silmen gerekir, hangi sistemi kurmaya çalışıyorsun bilmiyorum ama sistemi yazan kişi unique_ptr olarak yazdıysa ve sen auto_ptr kullanıcaksan garanti memory leak yapıp serverin oyuncu sayısına bağlı bellek şişip, kanal overflow hatası ve core verip kapanacaktır..
Eklediğim sistem Lonca istatistik sistemi ; söylediğin hataları almamak için ne yapmamz gerek? Memory Leak Hakkında bilgilendirici bir video veya forum konusu varmdır?

long int warninglerini %ld yerine %d yap (config.cpp)

sende varolan signed and unsigned integer hataları sıkıntı çıkarmaz ancak yine de çözmek istiyorsan kod bloğunu göstermen gerekir.

cryptopp warningleri çözülmez çünkü kendi yapımcılarının tasarlarıdığı bir library o. warning almanın nedeni büyük ihtimal cryptopp u c++17 veya daha üst sürüm ile derliyor olman..
db.cpp ile alakalı fotoğraflar ;



db.cpp90.png

db.cpp103.png

Screenshot_2.png

config.cpp hataları çözüldü diğerleri kaldı tek :D
 
bu arada auto_ptr kullanırsan büyük ihtimal sistem memory leak yapacak.

fonksiyonu kullanırken ayrılan belleği silmen gerekir, hangi sistemi kurmaya çalışıyorsun bilmiyorum ama sistemi yazan kişi unique_ptr olarak yazdıysa ve sen auto_ptr kullanıcaksan garanti memory leak yapıp serverin oyuncu sayısına bağlı bellek şişip, kanal overflow hatası ve core verip kapanacaktır..
Auto ptrde bellekten veriyi işlem sonunda siler zaten. Kendi bir array p veya pointer oluşturmadığı için memory leak'lik bir durum söz konusu değil. Unique_ptr ve auto_ptr arasında bir fark yok 2si de smart pointer'dır. Nerden alıyorsunuz bu bilgileri anlamadım gitti.

Auto_ptr kendisine atanan şey aktarılana kadar kullanılır, işlem bittiğinde başka bir yere devredilirse veri auto_ptr ile oluşturulan pointer null (0) olur
 
Eklediğim sistem Lonca istatistik sistemi ; söylediğin hataları almamak için ne yapmamz gerek? Memory Leak Hakkında bilgilendirici bir video veya forum konusu varmdır?


db.cpp ile alakalı fotoğraflar ;






config.cpp hataları çözüldü diğerleri kaldı tek :D

GCC sürümünüzü 10'a yükseltin, makefile flaglarına c++17 desteği ekleyin ve build esnasında çıkan warningleri çözün, auto_ptr lerin tümü unique_ptr ile değiştirin, iterator kullanılan yerlerde c++17'nin nimetlerinden faydalanmak için auto it kullanın, smart pointerlardan faydalanın böylece yaşayabileceğiniz memory leak problemlerinin %99'undan kurtulursunuz.

Tabi derleyiciler ve C++ hakkında çok bilgi sahibi değilseniz önce bu konularda araştırmalar yapın, ne zamanki yukarıda yazdığım terimlerin hepsine hakim olduğunuz bir aşamaya geldiniz, bu dediklerimi ondan sonra yapmaya çalışın kolay gelsin. :begen:

Auto ptrde bellekten veriyi işlem sonunda siler zaten. Kendi bir array p veya pointer oluşturmadığı için memory leak'lik bir durum söz konusu değil. Unique_ptr ve auto_ptr arasında bir fark yok 2si de smart pointer'dır. Nerden alıyorsunuz bu bilgileri anlamadım gitti.

Auto_ptr kendisine atanan şey aktarılana kadar kullanılır, işlem bittiğinde başka bir yere devredilirse veri auto_ptr ile oluşturulan pointer null (0) olur

İkisininde smart pointer olduğu doğru fakat aralarında fark olmadığını söylemek yanlış, unique_ptr çok daha kullanışlıdır ayrıca daha güvenlidir.

unique_ptr

std::unique_ptr was developed in C++11 as a replacement for std::auto_ptr.
unique_ptr is a new facility with similar functionality, but with improved security (no fake copy assignments), added features (deleters) and support for arrays. It is a container for raw pointers. It explicitly prevents copying of its contained pointer as would happen with normal assignment i.e. it allows exactly one owner of the underlying pointer.
So, when using unique_ptr there can only be at most one unique_ptr at any one resource and when that unique_ptr is destroyed, the resource is automatically claimed. Also, since there can only be one unique_ptr to any resource, so any attempt to make a copy of unique_ptr will cause a compile-time error.
 
İkisininde smart pointer olduğu doğru fakat aralarında fark olmadığını söylemek yanlış, unique_ptr çok daha kullanışlıdır ayrıca daha güvenlidir.
Doğru, aralarında fark yok demek istemedim sadece 2sinin de smart pointer olduğunu vurguladım
 
En son bir moderatör tarafından düzenlenmiş:
Eklediğim sistem Lonca istatistik sistemi ; söylediğin hataları almamak için ne yapmamz gerek? Memory Leak Hakkında bilgilendirici bir video veya forum konusu varmdır?


db.cpp ile alakalı fotoğraflar ;






config.cpp hataları çözüldü diğerleri kaldı tek :D

DB.cpp 90.Satır bununla değiştir ;

C++:
m_sql.AsyncQuery (sQuery.substr (0, sQuery.find_first_of (";") == std::string::npos ? sQuery.length(): sQuery.find_first_of (";")).c_str());

103.Satır bununla değiştir ;

C++:
return m_sql_direct.DirectQuery (sQuery.substr (0, sQuery.find_first_of (";") == std::string::npos ? sQuery.length(): sQuery.find_first_of (";")).c_str());

Char_item.cpp 5166. bununla değiştir ;

C++:
if ((unsigned)item->GetSocket(0) >= _countof(aApplyInfo))
 
DB.cpp 90.Satır bununla değiştir ;

C++:
m_sql.AsyncQuery (sQuery.substr (0, sQuery.find_first_of (";") == std::string::npos ? sQuery.length(): sQuery.find_first_of (";")).c_str());

103.Satır bununla değiştir ;

C++:
return m_sql_direct.DirectQuery (sQuery.substr (0, sQuery.find_first_of (";") == std::string::npos ? sQuery.length(): sQuery.find_first_of (";")).c_str());

Char_item.cpp 5166. bununla değiştir ;

C++:
if ((unsigned)item->GetSocket(0) >= _countof(aApplyInfo))
Deniyorum :D
 
Auto ptrde bellekten veriyi işlem sonunda siler zaten. Kendi bir array p veya pointer oluşturmadığı için memory leak'lik bir durum söz konusu değil. Unique_ptr ve auto_ptr arasında bir fark yok 2si de smart pointer'dır. Nerden alıyorsunuz bu bilgileri anlamadım gitti.

Auto_ptr kendisine atanan şey aktarılana kadar kullanılır, işlem bittiğinde başka bir yere devredilirse veri auto_ptr ile oluşturulan pointer null (0) olur

ok
 
Şuan'da sadece shop.cpp warning'leri , questlua warning'leri ve char_item.cpp'de 59:30 Warning'i kaldı. Birde Extern :/


Yardım eden arkadaşlarıma teşekkür ediyorum <3
 
Geri
Üst