31. oktober 2007 - 13:30
Der er
15 kommentarer og 2 løsninger
hvad betyder denne syntax?
hvad betyder dette der står i if |= DWORD dwFlags=0; if(bMultiThreadedNotifications) dwFlags|=MAPI_MULTITHREAD_NOTIFICATIONS;
Annonceindlæg fra Hitachi
”Forskellighed gør os stærkere!”
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
31. oktober 2007 - 13:46
#1
Det er shorthand for den lidt længere: dwFlags = dwFlags | MAPI_MULTITHREAD_NOTIFICATIONS; alstå bitvis-or.
31. oktober 2007 - 13:46
#2
Det er bitwise OR assignment. dwFlags får sat den bit der svarer til MAPI_MULTITHREAD_NOTIFICATIONS.
31. oktober 2007 - 13:47
#3
Notationen "|=" er simpelthen den samme som for "+=", "*=" osv.
31. oktober 2007 - 13:53
#4
det vil sige hvis dwflag = 0 og MAPI_MULTITHREAD_NOTIFICATIONS = true så giver dwflag: 0 or true som giver 1
31. oktober 2007 - 13:58
#5
ikke boolsk or men bitwise or b01001001 | b00000010 giver b01001011
31. oktober 2007 - 13:59
#6
aaaaahhhh ok
31. oktober 2007 - 14:25
#7
Der står i min debug at dwFlag = A regner med at det er hex fordi dwFlags|=MAPI_NT_SERVICE; hvor at define MAPI_NT_SERVICE = 0x00010000 hvad betyder det når det står i en if som true eller false hvordan kan dwFlag = 0x00010000 if(dwFlags) { MAPIINIT_0 MAPIInit={ MAPI_INIT_VERSION, dwFlags }; if(MAPIInitialize(&MAPIInit)!=S_OK) { return FALSE; } } else { if(MAPIInitialize(NULL)!=S_OK) return FALSE; } return TRUE; }
31. oktober 2007 - 14:25
#8
aaaarrgggg manglede noget hvad betyder det når det står i en if som true eller false hvordan kan dwFlag = 0x00010000 være true eller false
31. oktober 2007 - 14:30
#9
0 er false, alt andet er true...
31. oktober 2007 - 14:32
#10
aaahhh ja det er rigtig, man har jo helt glemt sit C/C++ her i disse Java/C# tider :-)
31. oktober 2007 - 14:46
#11
læg lige nogle svar
31. oktober 2007 - 15:54
#12
Svar :^)
31. oktober 2007 - 16:01
#13
hmmmm er dette ikke misvisende o = ok 1=fals #define S_OK ((HRESULT)0x00000000L) #define S_FALSE ((HRESULT)0x00000001L)
31. oktober 2007 - 16:13
#14
Man bruger ofte en konvention: if(funk(bla,bla)) { ... } i betydningen: if(fejlifunk(bla,bla)) { ... } d.v.s. at den returnerer sand eller falsk til om der er fejl. Og saa bliver falsk til OK !
31. oktober 2007 - 16:16
#15
nååå ok altså om det er true at der er fejl :-) læg et svar
31. oktober 2007 - 16:35
#16
svar
31. oktober 2007 - 17:34
#17
31/10-2007 14:32:45> Sådan virker det nu også i C# og Java :^)
Kurser inden for grundlæggende programmering