Problem beim öffnen einer Datei!



  • hallo zusammen,

    ich habe ein Problem, ich möchte eine Funktion schreiben die eine Datei öffnet(wenn sie nicht existiert erstellt).
    Und zwar möchte ich dies mit inline Assembler und c erreichen. Die Funktion die ich geschrieben habe sieht folgendermassen aus:

    int OpenFile(char *Name)
    {
    int i;

    asm
    {
    mov eax,5Bh
    xor ecx,ecx
    mov edx,OFFSET Name
    int21h
    cmp ax,50h
    je EXIST
    mov i,eax
    jmp ENDE
    EXIST:
    mov ah,3Dh
    mov al,02h
    mov edx,OFFSET Name
    int 21h
    mov i,eax
    ENDE
    }
    return(i);
    }

    Leider läuft die Funktion nicht. Es gibt bereits bei "OFFSET Name" ein Problem. Kann mir jemand weiterhelfen? Wie könnte man das Lösen? Ich wäre euch sehr dankbar für eure Hilfe.

    Danke im voraus.



  • keine Real Mode Interrupts in Windows Applikationen, das wird nichts. Benutze doch einfach eine Windowsfunktion (CreateFile). Real Mode Interrupts kann man nur unter Win9X aufrufen indem man eine VxD benutzt (glaube ich).

    Wenn der inline assembler das Wort OFFSET nicht kennt, kannst du es ja mal mit dem C Äquivalent "&" versuchen.



  • char * ist bereits ein zeiger!!! da brauchst du nicht noch den adress-operator oder OFFSET (-> mov edx,name)

    cu todo


Anmelden zum Antworten