000
20.11.2003, 23:17 Uhr
~global
Gast
|
hallo,
ich teste mit folgendem code das vorhandensein serieller schnittstellen. leider funktioniert der nur wenn sich die COM's im einstelligen bereich bewegen, d.h.: bei com1-com9 liefert GetLastError() "0" für ok, und "2" für nichtvorhanden, was ja normal ist. aber ab com10 liefert er "123 The filename, directory name, or volume label syntax is incorrect. ERROR_INVALID_NAME". obwohl schnittstellen von 11 bis 19 vorhanden sind. weiss jemand warum ? muss ich den namen anders formatieren ?
hier der code
C++: |
void CDNCHostDlg::TestPorts(CString &sPorts, int &iPorts) { iPorts = 0; CString name,str; int err; Status("> Teste Ports...");
for (int i = 1; i < 256; i++) { name.Format("COM%d:",i); HANDLE h_testCom = CreateFile(name, GENERIC_ALL, 0, NULL, OPEN_EXISTING, 0 , NULL); err = GetLastError(); if ((h_testCom != INVALID_HANDLE_VALUE) && (!GetLastError())) { sPorts += name; iPorts++; }; CloseHandle(h_testCom); }; str.Format("ready. %d freie Ports gefunden.\r\n",iPorts); Status(str); }
|
gruß |