nasıl başlatılır? Bir sınıf kimliği (GUID), genellikle, tire ile ayrılmış bir altı sayı ile belirtilir, örn. {557cf406-1a04-11d3-9a73-0000f81ef32e}
. Bu, bir CLSID yapısını doğrudan başlatmak için kullanılabilecek bir hazır bilgi değildir.Bir sabit CLSID
Yapısını başlatmak için iki yol keşfettim, ancak ikisi de garip. Birincisi, const
no'lu beyan edilmesine izin vermez ve çalışma zamanında yapılmalıdır, ikincisi ise hex sabitlerinin kapsamlı bir şekilde yeniden biçimlendirilmesini gerektirir.
CLSID clsid1;
CLSIDFromString(CComBSTR("{557cf406-1a04-11d3-9a73-0000f81ef32e}"), &clsid1);
const CLSID clsid2 = { 0x557cf406, 0x1a04, 0x11d3, { 0x9a,0x73,0x00,0x00,0xf8,0x1e,0xf3,0x2e } };
Sana __uuidof
operator kullanarak, bir UUID ile ilişkili bir türü varsa, Visual Studio otomatik bir tane oluşturabilirsiniz biliyoruz. Sadece altıgen dizginiz varsa bunu yapmanın bir yolu var mı?
Ahem: http://stackoverflow.com/questions/5345803/does-gdi-have-standard-image-encoder-clsids –
Her zaman "CLSIDFromString" diyen bir fabrika işlevi kullanabilirsiniz - const CLSID clsid1 gibi bir şey = GUIDFactoryFunc ("{557cf406-1a04-11d3-9a73-0000f81ef32e}") ' –
@i_am_jorf neden soruyu sorduğumu düşünüyorsunuz? Bu sorunun cevabını yeni bir programda kullanmam gerekiyor ve geri yazdığım kod işten önce ve artık referans olarak kullanılamıyor. –