Laufwerk zum öffnen definieren...
-
OKay okay, Asche auf mein Haupt. Das mit der Datei bekomm ich schon hin. Mein Problem ist, das ich mit der Funktion
char chrRc[256]; char *ptrChrRc = &chrRc[0]; return mciSendString("Set CDAudio Door Closed\0",ptrChrRc,256,NULL);
noch nicht do recht umzugehen weiß, bzw wie da das Laufwerk definiert ist. Die ersten beiden Zeilen sind für mich Böhmische Dörfer.
Hab mir die Funktion zwar in der MSDN angesehen, aber irgendwie bringt mich das noch nicht so recht weiter. Sorry, aber was die WinAPI angeht bin ich echt noch blutiger Anfänger...
-
pennywise81 schrieb:
wie da das Laufwerk definiert ist.
gar nicht er benutzt das "standardlaufwerk" (afaik das erste cdrom im alphabet)
pennywise81 schrieb:
Die ersten beiden Zeilen sind für mich Böhmische Dörfer.
// du erstellst ein char array mit einer grösse von 256 chars char chrRc[256]; // ptrChrRc ist ein zeiger auf die adresse des ersten elements im array char *ptrChrRc = &chrRc[0];
-
Dange. Wozu ist denn dieser Array gut? Reserviert der Speicher? Und wie könnt ich der Fkt beibringen, nicht das Standartlfwrk zu nehmen, sondern das, welches ich ihr sage?
-
pennywise81 schrieb:
Und wie könnt ich der Fkt beibringen, nicht das Standartlfwrk zu nehmen, sondern das, welches ich ihr sage?
http://www.cpp-tutor.de/cpp/le06/le06_01.htm
http://tutorial.schornboeck.net/arrays.htm
oben rechts findest du noch viele andere tutorialspennywise81 schrieb:
Dange. Wozu ist denn dieser Array gut? Reserviert der Speicher?
link zur faq wurde schon gepostet
http://www.c-plusplus.net/forum/viewtopic-var-t-is-80618.html
-
Okay, ich hab das jetzt soweit verstanden. So sieht nun meine Source aus:
#include <windows.h> // #include <stdafx.h> void laufwerksteurung(char *Laufwerk, int Status); int main() { laufwerksteuerung("f:",1); // öffnen Sleep(3000); // 3 Sekunden warten laufwerksteuerung("f:",0); // schließen return 0; } void laufwerksteurung(char *Laufwerk, int Status) { // MCIString initialisieren char MCIString[500]; // 'Laufwerk' in 'MCIString' speichern wsprintf(MCIString,"open %s type cdaudio alias CDRom",Laufwerk); mciSendString(MCIString,Null,0,Null); if (Status>0) { mciSendString("set CDRom door open",Null,0,Null); } else { mciSendString("set CDRom door closed",Null,0,Null); } return; }
Allerdings bekomme ich einen Compilerfehler:
8 C:\Dev-Cpp\Unbenannt1.cpp `laufwerksteuerung' undeclared (first use this function)
Versteh allerdings nicht warum. Weiß jemand Rat?
Zweite Frage: Was ist die stdafx.h und wofür brauch ich die? Brauch ich die überhaupt?Vielen vielen Dank bis hierhin...
mfg
Lars
-
rechtschreibung
laufwerksteurung != laufwerksteuerungpennywise81 schrieb:
Zweite Frage: Was ist die stdafx.h und wofür brauch ich die? Brauch ich die überhaupt?
brauchst du nicht
[edit]
der nächste fehler wird das Null sein. entweder NULL oder 0
und winmm nicht vergessen mitzulinken
-
Oh man bin ich Panne! War wohl ne Tasse Kaffee zu viel.
Danke für's finden
-
pennywise81 schrieb:
War wohl ne Tasse Kaffee zu viel.
geht sowas
-
'dammich, zwei neue Fehler:
[Linker error] undefined reference to `laufwerksteuerung(char*, int)'
[Linker error] undefined reference to `mciSendStringA@16'
Hab die winmm per
-winmm
in den Linkeroptionen vom Dev eingebunden. Falsch?
-
pennywise81 schrieb:
'dammich, zwei neue Fehler:
[Linker error] undefined reference to `laufwerksteuerung(char*, int)'
dürfte eigentlich nicht sein, hast du funnktion in eine andere datei ausgelagert?
pennywise81 schrieb:
Hab die winmm per
-winmm
in den Linkeroptionen vom Dev eingebunden. Falsch?
fast richtig. -lwinmm
-l wie linken
-
Nee, ist alles nur in diesem Quelltext. Hab ich vielleicht wieder irgendwas übersehen?
(winmm hab ich jetzt richtig eingebunden, der mciSendString-Fehler ist wech.)#include <windows.h> void laufwerksteuerung(char *Laufwerk, int Status); int main() { laufwerksteuerung("f:",1); // öffnen Sleep(3000); // 3 Sekunden warten laufwerksteuerung("f:",0); // schließen return 0; } void laufwerksteurung(char *Laufwerk, int Status) { // MCIString initialisieren char MCIString[500]; // 'Laufwerk' in 'MCIString' speichern wsprintf(MCIString,"open %s type cdaudio alias CDRom",Laufwerk); mciSendString(MCIString,NULL,0,NULL); if (Status>0) { mciSendString("set CDRom door open",NULL,0,NULL); } else { mciSendString("set CDRom door closed",NULL,0,NULL); } return; }
-
rechtschreibung die zweite
definition stimmt nicht mit implementierung übereinvoid laufwerksteuerung(char *Laufwerk, int Status); void laufwerksteurung(char *Laufwerk, int Status) { //...
-
Echt, ich gehör erschossen! Danke Dir, es funktioniert jetzt...
Der Vollständigkeit halber hier nochmal der komplette Quellcode:#include <windows.h> void laufwerksteuerung(char *Laufwerk, int Status); int main() { laufwerksteuerung("f:",1); // öffnen Sleep(3000); // 3 Sekunden warten laufwerksteuerung("f:",0); // schließen return 0; } void laufwerksteuerung(char *Laufwerk, int Status) { // MCIString initialisieren char MCIString[500]; // 'Laufwerk' in 'MCIString' speichern wsprintf(MCIString,"open %s type cdaudio alias CDRom",Laufwerk); mciSendString(MCIString,NULL,0,NULL); if (Status>0) { mciSendString("set CDRom door open",NULL,0,NULL); } else { mciSendString("set CDRom door closed",NULL,0,NULL); } return; }
-