2013-12-16 13 views
5

MSDN'a göre CreateWindowEx'un lpClassName parametresi isteğe bağlıdır. [Içinde, isteğe bağlı]CreateWindowEx'in lpClassName parametresi isteğe bağlı olabilir

lpClassName

Ancak dokümantasyon o NULL geçmek ne anlama geldiğini bahsetmiyor. Dahası, NULL iletilirse, pencere yöneticisinin yeni pencere için bir pencere yordamı bulmasının bir yolu yoktur.

Yani, dokümantasyon yanlıştır? Yoksa doğru mu? NULL'un lpClassName için geçerli bir değer olduğu bir senaryo var mı?

+0

Bahisler açık: "lpClassName" 'NULL' olan geçici durumda "yanlış belgeleniyor" – manuell

+0

'CreateWindowEx'' ERROR_INVALID_PARAMETER' döndürür. Ancak, parametre de başlık dosyasında isteğe bağlı olarak işaretlendiğinden, bunun bir belge hatası olduğundan emin değilim. – Paul

+3

Geçerli bir dize olmadığından isteğe bağlıdır. Bir ATOM olabilir. Tür ek açıklamaları tehlikeli tür hack ifade etmek için yeterince karmaşık değildir sanırım. – arx

cevap

4

CreateWindowEx için lpClassName parametre LPCTSTR olduğu bildirilmiştir ama aslında dizgeye bir işaretçi veya RegisterClass veya RegisterClassEx tarafından döndürülen bir sınıf atomu olabilir.

İdeal olarak, bu tür parametre için neyin izin verileceğini kesin olarak belirtmek gerekir, ancak açıklama dilinin, bildirilen türleriyle eşleşmeyen türlerin türlerini açıklamanın bir yolu yoktur.

onlar yapabileceği en iyi

dize geçerli olmayabilir belirtmek için isteğe bağlı olarak ilan olduğunu.

+0

Bunu kabul ettim, ancak bunun sadece bir dokümantasyon/açıklama hatası olmadığına ikna olmadığımı söylemeliyim. Her halükarda, sorduğum soru türü göz önüne alındığında, bunun verilebilecek en iyi cevap olduğunu düşünüyorum. Yani teşekkür ederim. –