undeclared identifier trotz eingebundener Header datei?



  • Dein Prof hat Recht:

    Synopsis:
    
    #include <dos.h>
    void _dos_getdrive( unsigned *drive );
    
    Description:
    
    The _dos_getdrive function uses system call 0x19 to get the current disk drive number.  The current disk drive number is returned in the word pointed to by drive.  A value of 1 is drive A, 2 is drive B, 3 is drive C, etc.
    
    Returns:
    
    The _dos_getdrive function has no return value.
    
    See Also:
    
    _dos_getdiskfree, _dos_setdrive, _getdiskfree, _getdrive
    
    Example:
    
    #include <stdio.h>
    #include <dos.h>
    
    void main()
      {
        unsigned drive;
    
        _dos_getdrive( &drive );
        printf( "The current drive is %c\n",
                    'A' + drive - 1 );
      }
    
    produces the following:
    
    The current drive is C
    
    Classification:
    
    DOS
    
    Systems:
    
    DOS, Windows, Win386, Win32, OS/2 1.x(all), OS/2-32, DOS/PM
    


  • Wenn er recht hat, warum läuft es dann nicht bei mir?
    Und in der MSDN kannst Du nach _dos_getdrive suchen, findest aber nur ein artikel in dem steht das die befehle gegen andere ausgetauscht wurden.

    😕



  • Kann ich Dir nicht beantworten.

    Sollte M$ das geändert haben, dann nimm halt die neue Funktion.
    Oder getcwd(). Oder getdrive(). Oder GetCurrentDirectory(). Oder ein Manual 🙂



  • Scheppertreiber schrieb:

    DOS, Windows, Win386, Win32, OS/2 1.x(all), OS/2-32, DOS/PM
    

    Hunter S Thompson schrieb:

    Ich arbeite mit Win XP SP2



  • LordJaxom_lg schrieb:

    Scheppertreiber schrieb:

    DOS, Windows, Win386, Win32, OS/2 1.x(all), OS/2-32, DOS/PM
    

    Hunter S Thompson schrieb:

    Ich arbeite mit Win XP SP2

    Kristallkugel putzen ?



  • Ist nicht klar was ich meinte? Ich meinte: Win XP taucht nicht in der Liste unterstützter Betriebssysteme auf, die Funktion gibt's also unter XP nicht (mehr).



  • Du meinst Win32, latürnich gibt's das ...



  • alles klar, das ist wie ich es vermutete.
    Kann mir jetzt noch einer sagen ob GetCurrentDirectory auch auf alten systemen läuft?



  • Zumindest unter Windoof ...



  • Alles klar, Vielen Dank für die Hilfe, da mach ich es jetzt einfach mit den neuen in der MSDN beschriebenen Funktionen, damit müsste es dann überall laufen wo es soll.

    MfG
    HST
    🕶



  • Scheppertreiber schrieb:

    Du meinst Win32, latürnich gibt's das ...

    Angesichts dessen, was sonst in der Liste vertreten ist, bezweifle ich, dass Win32 XP mit einschließt.



  • LordJaxom schrieb:

    Scheppertreiber schrieb:

    Du meinst Win32, latürnich gibt's das ...

    Angesichts dessen, was sonst in der Liste vertreten ist, bezweifle ich, dass Win32 XP mit einschließt.

    gemeint ist vielleicht die 16-bit emulation unter windose. ihr wisst schon, NTVDM, WoW und so...
    🙂



  • Unsinn, deshalb heißt es Win32 ?



  • allein schon das hier:

    The _dos_getdrive function uses system call 0x19

    sieht irgendwie gar nicht nach win32 aus.
    🙂



  • Kein Grund, daß es nicht funktioniert. Windows ist doch abwärtskompatibel ...



  • Scheppertreiber schrieb:

    Kein Grund, daß es nicht funktioniert. Windows ist doch abwärtskompatibel ...

    man kann aus'm windoze-usermode keine bios-calls machen. sowas ähnliches geht in der NTVDM. aber auch nur emuliert.
    🙂



  • In irgendeinem Program habe ich das drinnen, funzt schon.

    Problem bei den DOS-Funktionen ist eher, daß die nur 16 oder 32-Bit-Werte
    können. Das ist etwas lästig. Und bei diskfree (oder so) etwas antrengend
    zum Umrechnen.

    Egal - Man sollte wissen nach was man sucht und sich nicht an einer konkreten
    Funktion festbeißen. Gerade bei W gibt es -zig Wege das gleiche zu erreichen.

    Legt MS mal die Quelle offen hat sich Open Source erledigt - die haben sich
    dann totgelacht.



  • Scheppertreiber schrieb:

    In irgendeinem Program habe ich das drinnen, funzt schon.

    das ist bestimmt sowas: define _dos_getdrive(dd) ((dd)=_getdrive())*

    Scheppertreiber schrieb:

    Legt MS mal die Quelle offen hat sich Open Source erledigt - die haben sich
    dann totgelacht.

    das lachen haben wir schon hinter uns. schau dir die geleakten win2k-sources an.
    das low-level zeug ist übrigens qualitativ recht gut. aber die user-mode anwendungen sind eine üble frickelei. am schlimmsten ist das, was sie sich mit c++ hingewurschtelt haben. ich hab mal zum spass den winfile aus den sourcen gebaut (der ist zum glück pures C). war jedenfalls echt lustig.



  • Hehe - war das Low-Level-Zeugs nicht eh von A... geklaut ?
    So mit den PASCAL-Aufrufen ?

    Der Watcom kann dos_getdrive.



  • Scheppertreiber schrieb:

    Hehe - war das Low-Level-Zeugs nicht eh von A... geklaut ?
    So mit den PASCAL-Aufrufen ?

    Der Watcom kann dos_getdrive.

    nene, das ist schon voll für 32-bit, protected mode und so.
    und PASCAL kommt noch von 16bit-windoof.
    wer ist A...?
    klar dass der watcom das kennt. der kann ja auch noch reine dos-programme builden.
    🙂


Anmelden zum Antworten