Bir olayı yakalamaya çalışıyorum ve hangi olayı görmek için GUID'ye başvurmaya çalışıyorum.Başvuru REHBERİ
DWORD WINAPI AvisionEventProc(LPVOID lpParam){
//HANDLE hEvent = * (HANDLE *) lpParam; // This thread's read event
STINOTIFY pStiNotify;
if (debug){
wprintf(L"Avision Event\n");
}
while(true){
WaitForSingleObject(hAvisionEvent, INFINITE);
wprintf(L"Event");
pStiDevice->GetLastNotificationData(&pStiNotify);
if (pStiNotify.guidNotificationCode == GUID_STIUserDefined1){
wprintf(L"User defined 1");
}else if (pStiNotify.guidNotificationCode == GUID_STIUserDefined2){
wprintf(L"User defined 2");
}else if (pStiNotify.guidNotificationCode == GUID_STIUserDefined3){
wprintf(L"User defined 3");
}
ResetEvent(hAvisionEvent);
}
return 1;
}
Bu sadece iyi derler ama ben bağlarken Aşağıdaki hataları olsun: kod aşağıda
tuhaf bir şey olduğunu sti.h ben diğer sabitleri çekiyorum olarak bağlantılıdır edilir1>sti.obj : error LNK2001: unresolved external symbol _GUID_STIUserDefined3
1>sti.obj : error LNK2001: unresolved external symbol _GUID_STIUserDefined2
1>sti.obj : error LNK2001: unresolved external symbol _GUID_STIUserDefined1
o. Aşağıdaki GUID ilanından tarafından fark ettiniz:
#if defined(_WIN32) && !defined(_NO_COM)
/*
* Class IID's
*/
// B323F8E0-2E68-11D0-90EA-00AA0060F86C
DEFINE_GUID(CLSID_Sti, 0xB323F8E0L, 0x2E68, 0x11D0, 0x90, 0xEA, 0x00, 0xAA, 0x00, 0x60, 0xF8, 0x6C);
/*
* Interface IID's
*/
// {641BD880-2DC8-11D0-90EA-00AA0060F86C}
DEFINE_GUID(IID_IStillImageW, 0x641BD880L, 0x2DC8, 0x11D0, 0x90, 0xEA, 0x00, 0xAA, 0x00, 0x60, 0xF8, 0x6C);
<snip>
/*
* Standard event GUIDs
*/
// {740D9EE6-70F1-11d1-AD10-00A02438AD48}
DEFINE_GUID(GUID_DeviceArrivedLaunch, 0x740d9ee6, 0x70f1, 0x11d1, 0xad, 0x10, 0x0, 0xa0, 0x24, 0x38, 0xad, 0x48);
<snip>
#endif
mu hat GUIDs başvuruluyor stop (Ben win32 konsol uygulaması yazıyorum) ya da orada yapmak yanlış burada sahip daha temel bir şeydir "tanımlı ise" GUID'lerde anlayış eksikliği ile?
Yardımlarınız için şimdiden teşekkür ederiz.
Alkış,
Neil
Genellikle GUID'lerin başlık dosyalarında bildirildiğini, ancak bir dış kitaplıkta tanımlandığını düşünüyorum. Sorunu çözmek için kütüphaneyi programınıza bağlamanız yeterlidir. Başka bir seçenek, o başlık dosyasını eklemeden önce'u içermektir; Bu, DEFINE_GUID makrosunun, GUID'leri extern yerine satır içi olarak tanımlamak için değiştirir. –
Luke