Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Com10 bis Com255, Getlasterror() = 123 ??? HÄ?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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ß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.11.2003, 00:38 Uhr
mmc20
puss in boots


hi,

das selbe problem hatte ich auch... hier die lösung ! :


C++:
name.Format("\\\\.\\COM%d",i);


den doppelpunkt am ende des comXX unbedingt weglassen !
aber warum das mit dem "\\\\.\\" funktioniert ? keine Ahnung !
das sagen uns bestimmt die C++ Profis !
... na los, ... her mit der Antwort !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.11.2003, 17:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Unter "DOS" werden die ComPorts per COM1-9: angesprochen, mehr als 9 hat nicht funktioniert.
Wenn mann das \\\\.\\ verwendet, also \\.\ ist das ein "netzwerkpfad"

"." ist nichts anderes als der lokale rechner. Windows greift über die Methode auf die Comports zu (Win kann ja mehr als 9 Com-Ports benutzen)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: