Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Zayıf arabellek işleme, arabellek taşmalarını içeren birçok güvenlik sorununa neden olur. Strsafe.h'de tanımlanan işlevler, kodunuzda uygun arabellek işleme için ek işleme sağlar. Bu nedenle, yerleşik C/C++ karşılıklarının yanı sıra belirli Windows uygulamalarını da değiştirmeleri amaçlanmıştır. Strsafe.h, Windows XP Service Pack 2 (SP2) ile başlayarak Windows SDK'da kullanılabilir.
Strsafe işlevlerinin avantajları şunlardır:
Hedef arabelleğin boyutu, işlevin arabelleğin sınırlarını aşarak yazmamasını sağlamak için her zaman işleve sağlanır.
İşlem istenen sonucu kesse bile arabelleklerin null olarak sonlandırılacağı garanti edilir.
Tüm işlevler, tek bir olası başarı koduyla (S_OK) HRESULT değeri döndürür.
Her işlev ilgili karakter sayısı ("cch") veya bayt sayısı ("cb") sürümünde kullanılabilir.
Çoğu işlev, gelişmiş işlevler için genişletilmiş ("Ex") sürüme sahiptir.
Ayrıntılar için aşağıdaki bölümlere bakın.
Karakter Sayma Fonksiyonları
Aşağıdaki işlevler bayt sayısı yerine karakter sayısı kullanır.
| Fonksiyon | Değiştirir |
|---|---|
|
|
| , | |
Bayt Sayısı İşlevleri
Aşağıdaki işlevler karakter sayısı yerine bayt sayısını kullanır.
| Fonksiyon | Değiştirir |
|---|---|
|
|
|
|
Strsafe.h kullanma
Strsafe işlevlerini satır içi kullanmak için, diğer tüm üst bilgi dosyalarının #include deyimlerini izleyerek, aşağıda gösterildiği gibi üst bilgi dosyasını ekleyin.
#include <strsafe.h>İşlevleri kitaplık biçiminde kullanmak için Strsafe.h'yi eklemeden önce aşağıdaki deyimi ekleyin. Ancak, satır içi işlevleri kullanmanız önerilir.
#define STRSAFE_LIBNot
: Aşağıdaki işlevler satır içi işlevler olarak kullanılmalıdır: StringCbGets, StringCbGetsEx, StringCchGetsve StringCchGetsEx.
Dosyanıza Strsafe.h eklediğinizde, Strsafe.h işlevleriyle değiştirilen eski işlevler kullanım dışı kalır. Bu eski işlevleri kullanma girişimleri, daha yeni işlevleri kullanmanızı söyleyen bir derleyici hatasına neden olur. Bu davranışı geçersiz kılmak istiyorsanız Strsafe.h dosyasını eklemeden önce aşağıdaki deyimi ekleyin.
#define STRSAFE_NO_DEPRECATEYalnızca karakter sayısı işlevlerine izin vermek için Strsafe.h eklemeden önce aşağıdaki deyimi ekleyin.
#define STRSAFE_NO_CB_FUNCTIONSYalnızca bayt sayısı işlevlerine izin vermek için Strsafe.h'yi eklemeden önce aşağıdaki deyimi ekleyin.
#define STRSAFE_NO_CCH_FUNCTIONSNot
STRSAFE_NO_CB_FUNCTIONS veya STRSAFE_NO_CCH_FUNCTIONStanımlayabilirsiniz, ancak ikisini birden tanımlamazsınız.
Bazı Strsafe işlevlerinin yerel ayar kullanan sürümleri vardır. Varsayılan olarak, üst bilgi bu işlevleri bildirmez. Bu bildirimleri etkinleştirmek için Strsafe.h dosyasını eklemeden önce aşağıdaki makro deyimini ekleyin.
#define STRSAFE_LOCALE_FUNCTIONSDesteklenen en fazla dize uzunluğu, ANSI veya Unicode olmak üzere 2.147.483.647 (STRSAFE_MAX_CCH) karakterdir.
İlgili konular