Avatar billede cblcbl Juniormester
18. februar 2012 - 21:54 Der er 4 kommentarer og
1 løsning

Problem med komandolinie (CL.exe) kompilering men ikke i MVS IDE? Ansi-c winapi program

Hejsa,
Jeg sidder med et underligt problem. Jeg kan ikke kompliere nedenstående lille ansi-c winapi program via kommandolinien, så får jeg en masse fejlmeddelelser:
syntaks error : missing  ';' before 'type' samt
'i' undeclared identifier.
Jeg anvender komandolinie med "CL.exe /TC getinfo.c" virker det ikke.
Men hvis jeg omdøber filen til getinfo.cpp og skriver "CL.exe getinfo.cpp", så kompilrer den fint uden fejl.
Det er Ansi-c kode men den virker kun når den kompileres som cpp?
Er der nogen som kan give et godt svar på det?
på forhånd tak.

#include <windows.h>
#include <stdio.h>

char drive2[13][5] = {"A:\\", "B:\\", "C:\\", "D:\\", "E:\\", "F:\\", "G:\\",
"H:\\", "I:\\", "J:\\", "K:\\", "L:\\"};

int main(){

    for(int i=0; i<12; i++)

    {

        UINT test = GetDriveType(drive2[i]);

        switch(test)

        {

            case 0: printf("Drive %s is type %d - Cannot be determined.\n", &drive2[i], test);

                break;

            case 1: printf("Drive %s is type %d - Invalid root path/Not available.\n", &drive2[i], test);

                break;

        case 2: printf("Drive %s is type %d - Removable.\n", &drive2[i], test);

                break;

        case 3: printf("Drive %s is type %d - Fixed.\n", &drive2[i], test);

                break;

        case 4: printf("Drive %s is type %d - Network.\n", &drive2[i], test);

                break;

        case 5: printf("Drive %s is type %d - CD-ROM.\n", &drive2[i], test);

                break;

        case 6: printf("Drive %s is type %d - RAMDISK.\n", &drive2[i], test);

                break;

        default  : "Unknown value!\n";

        }

    }

  return 0;

}
Avatar billede cblcbl Juniormester
18. februar 2012 - 21:55 #1
Hej igen,
Beklager at min overskrift er misvisende. Spørgsmålet er et komandolinie spørgsmål.
mvh
Claus
Avatar billede arne_v Ekspert
18. februar 2012 - 23:00 #2
proev og ret

    for(int i=0; i<12; i++)

til

    int i;
    for(i=0; i<12; i++)
Avatar billede arne_v Ekspert
18. februar 2012 - 23:00 #3
Det er den traditionelle C version.
Avatar billede cblcbl Juniormester
20. februar 2012 - 19:52 #4
Hej Arne,
Dit svar virker! Du har ret, jeg prøver at lave et winapi program skrevet i ren ansi-c.

Jeg var ikke opmærksom på denne forskel mellem en C-kompiler og en C++ -kompiler.  Dvs. et for-loop skrives forskelligt.
Tak for dit hurtige svar.
mvh
Claus
Avatar billede arne_v Ekspert
20. februar 2012 - 20:21 #5
en anden gang skal jeg nok undlade at svare ....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester