-
Sujet
-
Bonjour !
Je serai assez bref. J’ai créé un code en C qui permet de faire un petit bip (qui prend en argument la fréquence et la durée pendant laquelle la note sera jouée).
Voici le code :
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <windows.h> #include <string.h> void error(const char *functionName, int errorCode){ fprintf(stderr, "error %d in %s : %s",errorCode, functionName, strerror(errorCode)); exit(errno); } #define ZEROCONTROL int main(int argc, char* argv[]){ if(argc < 2){ fprintf(stderr, "usage : %s <Frequence> <Duration> (duration is 100 by default)"); exit(-1); } DWORD duration= (DWORD)100; DWORD frequence=-1; if(strncmp(argv[1], "0", 1)==0){ #ifdef ZEROCONTROL fprintf(stderr, "error : <Frequence> parameter can't be equal to 0"); exit(-1); #else frequence=0; #endif } if(frequence!=0 && (frequence = (DWORD)atoi(argv[1]))==0) error("atoi line 25", errno); if (argc >= 3){ if(strncmp("0", argv[2], 1)==0){ fprintf(stderr, "error : <Duration> parameter can't be equal to 0"); exit(-1); } if((duration = (DWORD)atoi(argv[2]))==0) error("atoi line 29", errno); } if(!Beep(frequence, duration)) error("Beep line 33", errno); return 0; } //gcc playBeep.c -o playBeep.exe
Je ne pense pas être un expert en C et encore moins avec windows donc si vous voyez des erreurs, vous pouvez me les faire remarquer 🙂 🙂
Si jamais vous avez des questions, vous pouvez aussi me les poser (mais le code reste relativement simple).
Pour ceux qui ne savent pas ce que sont ces DWORD, c’est un type de 32 bits (comme les int) qui contient des nombres et qui est assez utilisé dans les fonctions windows.
Voici la documentation pour la fonction Beep : https://docs.microsoft.com/en-us/windows/win32/api/utilapiset/nf-utilapiset-beep
- Vous devez être connecté pour répondre à ce sujet.