Jeg har et problem med følgende stump kode:
hDev = CreateFile(devName,
GENERIC_READ | GENERIC_WRITE, // open for read/write
0, // comm devices must be opened w/exclusive-access
NULL, // no security attrs
OPEN_EXISTING, // comm devices must use OPEN_EXISTING
FILE_FLAG_OVERLAPPED, // overlapped I/O
NULL); // hTemplate must be NULL for comm devices
// Verify device handle
if (hDev == INVALID_HANDLE_VALUE) {
dLog (logSys, "dISioOpenDevice: Unable to open <%s> due to %d",
devName, GetLastError());
return NULL;
}
dLog() har ingen sideeffekter i forhold til GetLastError(), men
alligevel ender jeg med at få følgende log:
'dISioOpenDevice: Unable to open <COM1> due to 0'
Jeg har prøvet alle mulige krumspring som at gemme resultatet af
GetLastError() i en midlertidig variabel for at eliminere eventuelle
sideeffekter af min log, og ersatte FILE_FLAG_OVERLAPPED med 0, uden
at det har ændret på resultatet. Jeg har den samme adfærd på både
Windows 2000 Server og Windows XP professional, og jeg er ærligt talt
ved at være noget mystificeret. På begge maskiner kan jeg åbne COM1
uden problemer i Hyperterminal.
Er der nogen der har et kreativt forslag til hvordan jeg i det
mindste får tryllet en brugbar fejlkode frem?
--
/Wegge
Min holdning til Usenet - <
http://wiki.wegge.dk/Usenet>
Min weblog - <
http://blog.wegge.dk/>