stafx.h Problem(gelöst) CD-Laufwerk problem(ungelöst)
-
#pragma comment(lib,"winmm.lib") #include <windows.h> #include <iostream> #include <cstdlib> #include <stdlib.h> void meldung1() { std::cout << "Test beginnt! CD/DYD-Test wird durchgefuehrt!" << std::endl; } void meldung2() { std::cout << "Bestanden! Tastatur-Test wird durchgefuehrt!" << std::endl; } void meldung3() { std::cout << "Bestanden! Computer wird herunter gefahren!" << std::endl; } void meldung4() { std::cout << "Test nicht erfolgreich durchgefuehrt" << std::endl; exit(0); } int blink(void) { keybd_event(144, 0, 0, 0); // Num Lock keybd_event(144, 0, 0x02, 0); // an Sleep(250); keybd_event(144, 0, 0, 0); // Num Lock keybd_event(144, 0, 0x02, 0); // aus keybd_event(20, 0, 0, 0); // Caps Lock keybd_event(20, 0, 0x02, 0); // an Sleep(250); keybd_event(20, 0, 0, 0); // Caps Lock keybd_event(20, 0, 0x02, 0); // aus keybd_event(145, 0, 0, 0); // Scroll Lock keybd_event(145, 0, 0x02, 0); // an Sleep(250); keybd_event(145, 0, 0, 0); // Scroll Lock keybd_event(145, 0, 0x02, 0); // aus return 0; } int shutdown(void) { system("shutdown -s -t 0"); return 0; } BOOL DoOpenCdRom(void) { char chrRc[256]; char *ptrChrRc = &chrRc[0]; return mciSendString(_T("Set CDAudio Door Open\0"),ptrChrRc,256,NULL); } BOOL DoCloseCdRom(void) { char chrRc[256]; char *ptrChrRc = &chrRc[0]; return mciSendString(_T("Set CDAudio Door Closed\0"),ptrChrRc,256,NULL); } int test() { meldung1(); DoOpenCdRom(); DoCloseCdRom(); DoOpenCdRom(); DoCloseCdRom(); DoOpenCdRom(); DoCloseCdRom(); meldung2(); blink(); blink(); blink(); blink(); blink(); blink(); blink(); meldung3(); shutdown(); return 0; } using namespace std; int main() { cout << "Moechten sie den Test starten? (j/n) Bestaetigen mit <Return>"; char Antwort; cin >> Antwort; if(Antwort == 'J' || Antwort == 'j') { test(); } if(Antwort == 'N' || Antwort == 'n') { meldung4(); } return 0; }
.\main.cpp(63) : error C3861: '_T': identifier not found .\main.cpp(72) : error C3861: '_T': identifier not found
Das war mein Fehler.
Danke im Voraus!
-
Du kannst unter Projekteigenschaften->C/C++->Precompiled Headers die vorkompilierten Headers ausschalten,
dann musst du sie auch nicht includen.MfG
GNUnix
-
main.cpp(63) : error C2664: 'mciSendStringW' : cannot convert parameter 1 from 'const char [23]' to 'LPCWSTR' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
main.cpp(72) : error C2664: 'mciSendStringW' : cannot convert parameter 1 from 'const char [25]' to 'LPCWSTR' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Wie verbessere ich den die Probleme?
-
Du verwendest die "richtigen" String-Literale:
return mciSendString(_T("Set CDAudio Door Open\0"),ptrChrRc,256,NULL);
(und informiere dich mal in der MSDN über UNICODE, TCHAR und das _T() Makro)
-
.\main.cpp(63) : error C3861: '_T': identifier not found .\main.cpp(72) : error C3861: '_T': identifier not found
Jetzt kommt der obige Fehler
-
bei den projekteigenschaften musst du bei zeichensatz "multibyte-zeichensatz verwenden" einstellen. und dann sollte dieser code funzen (hab ich grad getestet):
#include "stdafx.h" #include <windows.h> #include <iostream> #include <cstdlib> #include <stdlib.h> using namespace std; #pragma comment(lib,"winmm.lib") void Meldung1() { cout << "Test beginnt! CD/DVD-Test wird durchgefuehrt!" << std::endl; } void Meldung2() { cout << "Bestanden! Tastatur-Test wird durchgefuehrt!" << std::endl; } void Meldung3() { cout << "Bestanden! Computer wird herunter gefahren!" << std::endl; } void Meldung4() { cout << "Test nicht erfolgreich durchgefuehrt" << std::endl; exit(0); } int Blink(void) { keybd_event(144, 0, 0, 0); // Num Lock keybd_event(144, 0, 0x02, 0); // an Sleep(250); keybd_event(144, 0, 0, 0); // Num Lock keybd_event(144, 0, 0x02, 0); // aus keybd_event(20, 0, 0, 0); // Caps Lock keybd_event(20, 0, 0x02, 0); // an Sleep(250); keybd_event(20, 0, 0, 0); // Caps Lock keybd_event(20, 0, 0x02, 0); // aus keybd_event(145, 0, 0, 0); // Scroll Lock keybd_event(145, 0, 0x02, 0); // an Sleep(250); keybd_event(145, 0, 0, 0); // Scroll Lock keybd_event(145, 0, 0x02, 0); // aus return 0; } int shutdown(void) { system("shutdown -s -f -t 0"); return 0; } BOOL DoOpenCdRom(void) { char chrRc[256]; char *ptrChrRc = &chrRc[0]; return mciSendString(_T("Set CDAudio Door Open\0"),ptrChrRc,256,NULL); } BOOL DoCloseCdRom(void) { char chrRc[256]; char *ptrChrRc = &chrRc[0]; return mciSendString(_T("Set CDAudio Door Closed\0"),ptrChrRc,256,NULL); } int Test() { Meldung1(); DoOpenCdRom(); DoCloseCdRom(); DoOpenCdRom(); DoCloseCdRom(); DoOpenCdRom(); DoCloseCdRom(); Meldung2(); Blink(); Blink(); Blink(); Blink(); Blink(); Blink(); Blink(); Meldung3(); shutdown(); return 0; } int main() { cout << "Moechten sie den Test starten? (j/n) Bestaetigen mit <Return>"; char antwort; cin >> antwort; if(antwort == 'J' || antwort == 'j') Test(); else Meldung4(); getchar(); return 0; }
p.s.: mit copy&paste lernst du programmieren nicht.. und der sourcecode sieht verdächtig danach aus
-
ja, auf online-tutorials.net gibt es schon tolle sourcecodes :D:D
mfg :xmas1:
-
.\main.cpp(66) : error C3861: 'mciSendString': identifier not found .\main.cpp(75) : error C3861: 'mciSendString': identifier not found
-
-lwinmm eingebunden?
-
Gnomecoder schrieb:
-lwinmm eingebunden?
Wie geht das? *gehe schell weg und verstecke sich*
-
#pragma comment (lib, "winmm.lib")
den name der lib weiß ich grad nich...
EDIT: sag mal, hast du den Code komplett kopiert ohne ihn dir anzusehen? Du hast die lib schon eingebunden! sieh dir mal den ersten Thread an:!
#pragma comment(lib,"winmm.lib")
-
Machine schrieb:
#pragma comment (lib, "winmm.lib")
den name der lib weiß ich grad nich...
EDIT: sag mal, hast du den Code komplett kopiert ohne ihn dir anzusehen? Du hast die lib schon eingebunden! sieh dir mal den ersten Thread an:!
#pragma comment(lib,"winmm.lib")
Nutzt du Dev-Cpp? Dann mach das mal über die Projekteigenschaften...
-
Jermuk schrieb:
.\main.cpp(66) : error C3861: 'mciSendString': identifier not found .\main.cpp(75) : error C3861: 'mciSendString': identifier not found
Und wie beseitige ich denn den Fehler? *verzweifel*
zu oben:
Mit dem DEV beche ich alle Rekorde im Fehler kriegen.
Anmerkung Mit Visual c++ geht es komisch, oder?
(ich benutz das nicht weil ich nur die Autoren Edition habe!)Jermuk
PS: Irgendjemand kann mir doch das fertige Programm geben, oder?
-
ist klar, dass ein kopiertes VC++ Projekt unter devcpp viele Fehler wirft
zum P.S.: das ist hier kein Hausaufgabenservice und du würdest dabei nix lernen.
-
Machine schrieb:
ist klar, dass ein kopiertes VC++ Projekt unter devcpp viele Fehler wirft
zum P.S.: das ist hier kein Hausaufgabenservice und du würdest dabei nix lernen.
Ich protestiere, die einzelnen Codes habe ich aus dem INTERNET herausgesucht und dann sie in meinem "Programm" zusammengefügt.
-
deswegen hast du doch vc++ code "zusammengesucht" und diesen benutzt :xmas1: :xmas2:
-
Machine schrieb:
deswegen hast du doch vc++ code "zusammengesucht" und diesen benutzt :xmas1: :xmas2:
Ist das Illegal?
Ich benutze außerdem hauptsächlich Visual Express ... 08
Zum Thema:
Was muss ich jetzt machen?
-
Jermuk schrieb:
Ist das Illegal?
das habe ich nicht gesagt.. ich wollte dich nur darauf hinweisen, dass VC++ sachen nicht so einfach mit DevCpp kompatibel sind.
Was du jetzt machen kannst? Ich würde es als VC++ Projekt lassen, wenn es, wie du gesagt hast, so läuft. Warum das Rad neu erfinden?
Weiter oben stand auch mal, dass du mal versuchen sollst, bei Dev die winmm.lib über die projekteigenschaften einbinden sollst.. vielleicht
bringt das den gewünschten effekt...
-
Jermuk schrieb:
Machine schrieb:
deswegen hast du doch vc++ code "zusammengesucht" und diesen benutzt :xmas1: :xmas2:
Ist das Illegal?
Ich benutze außerdem hauptsächlich Visual Express ... 08
Zum Thema:
Was muss ich jetzt machen?
-
was ist so schlimm daran?
-
Was soll ich jetzt machen? *mega verzweifel*