PDA

View Full Version : [C] Funzione Beep


17Qwerty71
03-11-2005, 21:51
C'è un modo di usare la funzione Beep senza il bisogno di includere windows.h (che pesa un casino poi l'eseguibile :muro: ), ma il solo header ove è contenuta? :confused:

Grazie

cionci
03-11-2005, 22:20
Sì, potresti linkarla dinamicamente da kernel32.dll...

17Qwerty71
03-11-2005, 23:16
Sì, potresti linkarla dinamicamente da kernel32.dll...

Esempino? :D
Uso dev-c++


Grazie ;)

cionci
03-11-2005, 23:34
Non ci pensavo, ma windows.h lo devi comunque includere per usare queste funzioni :D

#include <windows.h>

int main()
{
HINSTANCE hDLL; // Handle to DLL
BOOL (*BeepPtr)(DWORD, DWORD); // Function pointer

hDLL = LoadLibrary("kernel32");
if (hDLL != NULL)
{
BeepPtr = (BOOL (*)(DWORD, DWORD))GetProcAddress(hDLL, "Beep");
if (!BeepPtr)
{
// handle the error
FreeLibrary(hDLL);
return FALSE;
}
else
{
// call the function
return BeepPtr(1000, 1000);
}
}
}

max246
04-11-2005, 10:28
esiste una soluzione:

printf ("\a"); --> la "a" fa un beep :P

17Qwerty71
04-11-2005, 14:27
esiste una soluzione:

printf ("\a"); --> la "a" fa un beep :P
eh, grazie :rolleyes: :fagiano:

La funzione mi serve per regolare la frequenza e durata :p


Vabbè, includerò windows.h allora :stordita:

max246
04-11-2005, 14:44
beh se mai crei un .h tuo :P con dentro la funzione che ti serve per fare i beep :D

cionci
04-11-2005, 15:18
La funzione mi serve per regolare la frequenza e durata :p

Con la printf non si può...

17Qwerty71
04-11-2005, 15:22
esatto ;)

P.S. Al limite esiste un'altra funzione simile a questa, senza aver il bisogno di implementare 10milioni di righe di codice? :(

Grazie ancora :)

max246
04-11-2005, 15:28
esatto ;)

P.S. Al limite esiste un'altra funzione simile a questa, senza aver il bisogno di implementare 10milioni di righe di codice? :(

Grazie ancora :)

Leggi il mio post sopra :muro:

cionci
04-11-2005, 15:30
Come ti ho detto quello che ti ho scritto sopra serve a poco (anche se ti potrebbe tornare utile per altri motivi)...perchè tutte le funzioni che ho usato hanno bisogno di linkare kernel32 quindi tanto vale usare Beep direttamente...
Modi più semplici supppongo che non ci siano... Considera che togliendo le informazioni di debug l'eseguibile si riduce moltissimo...

cionci
04-11-2005, 15:33
Leggi il mio post sopra :muro:
Ma la frequenza e la durata non la puoi regolare !!! :)