Ich möchte mein Laufwerk mit einem C++ Programm zum ausfahren bringen wie soll ich das machen ?
C++ Programm Laufwerk ausfahren
-
-
Probiere beide Varianten mal aus:
Es gibt ein Kommando
Quellcode
- MCI_OPEN_PARMS MciOpenParm;
- memset(&MciOpenParm, 0, sizeof(MciOpenParm));
- //
- // Open
- //
- MciOpenParm.lpstrElementName = "E:";//for example
- if (mciSendCommand(DeviceId, MCI_OPEN, MCI_WAIT| MCI_OPEN_ELEMENT, MCI_PARM2(MciOpenParm))) {
- MessageBox("Open Error", "Sound Play", MB_OK);
- return;
- }
- DeviceId = MciOpenParm.wDeviceID;
Quelle: experts-exchange.com/Programmi…uages/CPP/Q_10173294.html
und einen String, den man senden kann
Quellcode
- // use mciSendString() to open and close the CD-ROM door
- // you have to link with the winmm.lib file, or
- // in the case of Dev-C++ link with libwinmm.a via
- // Project>>Project Options>>Parameters>>Add Lib>>libwinmm.a
- // a Dev-C++ tested console application by vegaseat 18dec2004
- #include <iostream>
- #include <windows.h> // Sleep()
- #include <mmsystem.h> // mciSendString()
- using namespace std; // std::cout, std::cin
- int main()
- {
- mciSendString("open CDAudio", NULL, 0, NULL);
- Beep(440,1000);
- cout << "Opening CD-ROM door ..." << endl;
- mciSendString("set CDAudio door open", NULL, 0, NULL);
- cout << "Closing the CD-ROM door in 5 seconds ..." << endl;
- Sleep(5000);
- mciSendString("set CDAudio door closed", NULL, 0, NULL);
- mciSendString("close CDAudio", NULL, 0, NULL);
- cin.get(); // wait
- return 0;
- }
Quelle: daniweb.com/code/snippet113.html
Siehe Doku: msdn.microsoft.com/en-us/library/ms709492.aspx -
Beim zweiten Code tauchen Diese fehler auf:
1>------ Erstellen gestartet: Projekt: Laufwerk_aufahren, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>LA.cpp
1>.\LA.cpp(14) : error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [13]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\LA.cpp(17) : error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [22]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\LA.cpp(21) : error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [24]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\LA.cpp(23) : error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [14]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\Laufwerk_aufahren\Laufwerk_aufahren\Debug\BuildLog.htm" gespeichert.
1>Laufwerk_aufahren - 4 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Der erste Code funktioniert nicht bei mirDieser Beitrag wurde bereits 1 mal editiert, zuletzt von SK8 ()
-
Fehler beim ersten? Richtiges Laufwerk angegeben?
gelinkt sind die Bibliotheken?
Hier nochmal als Windows Anwendung:
Quellcode
- #include "stdafx.h"
- #include <windows.h>
- #include <winuser.h>
- #include <mmsystem.h>
- #include <iostream.h>
- bool DoOpenCdRom(void)
- {
- char chrRc[256];
- return mciSendString("Set CDAudio Door Open\0", chrRc, sizeof(chrRc), NULL);
- }
- bool DoCloseCdRom(void)
- {
- char chrRc[256];
- return mciSendString("Set CDAudio Door Closed\0", chrRc, sizeof(chrRc), NULL);
- }
- int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
- DoOpenCdRom();
- DoCloseCdRom();
- return 0;
- }
Quelle: c-plusplus.de/forum/viewtopic-var-t-is-39397.html -
1>------ Erstellen gestartet: Projekt: Laufwerk-Pro-origi,, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Laufwerk-Pro-origi,.cpp
1>.\Laufwerk-Pro-origi,.cpp(7) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "iostream.h": No such file or directory
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\Laufwerk-Pro-origi,\Laufwerk-Pro-origi,\Debug\BuildLog.htm" gespeichert.
1>Laufwerk-Pro-origi, - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SK8 ()
-
haha, in der Tat vollkommen veraltete includes. Aber so wie ich das sehe brauchst du iostream auch nicht.
Hast du denn im Visual Studio auch "Windows Projekt" ausgewählt oder einfach alles copy&paste übernommen?
Füge alles schrittweise hinzu. Der Code ist zumindest überschaubar. -
Ja ich habe Visual Studio Ja ich habe nen Win32Konsolen-Anwendung genomme ja ich habe den ursprünglichen code übernommen;
#include "stdafx.h"
#include <windows.h>
#include <winuser.h>
#include <mmsystem.h>
#include <iostream.h>
bool DoOpenCdRom(void)
{
char chrRc[256];
return mciSendString("Set CDAudio Door Open\0", chrRc, sizeof(chrRc), NULL);
}
bool DoCloseCdRom(void)
{
char chrRc[256];
return mciSendString("Set CDAudio Door Closed\0", chrRc, sizeof(chrRc), NULL);
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DoOpenCdRom();
DoCloseCdRom();
return 0;
}
das kommt dabei raus ::
1>------ Erstellen gestartet: Projekt: Laufwerk_wichtig_win32_Projekt, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Laufwerk_wichtig_win32_Projekt.cpp
1>c:\users\SK8\documents\visual studio 2008\projects\laufwerk_wichtig_win32_projekt\laufwerk_wichtig_win32_projekt\laufwerk_wichtig_win32_projekt.cpp(8) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "iostream.h": No such file or directory
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\Laufwerk_wichtig_win32_Projekt\Laufwerk_wichtig_win32_Projekt\Debug\BuildLog.htm" gespeichert.
1>Laufwerk_wichtig_win32_Projekt - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== -
Also Konsolenanwendung..
Quellcode
- // Laufwerk.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
- //
- #include "stdafx.h"
- #include <windows.h>
- #include <winuser.h>
- #include <mmsystem.h>
- #include <iostream>
- bool DoOpenCdRom(void)
- {
- char chrRc[256];
- return mciSendString(_T("Set CDAudio Door Open\0"), chrRc, sizeof(chrRc), NULL);
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- DoOpenCdRom();
- return 0;
- }
error C2664: 'mciSendStringW': Konvertierung des Parameters 2 von 'char [256]' in 'LPWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
Weiß auch nicht.. vielleicht liegts an Vista.. hast du Vista? -
Die iostream.h dürfte in diesem Beispiel überflüssig sein.
Nebenbei: Die .h Header sind zwar nicht im ISO std enthalten aber werden meines Wissens immer noch vom MS Compiler angeeboten (praktisch allen anderen auch) daher würde ich vermuten dass du das ganze als C Code compilierst.
UUps reloaden vor posten hilft manchmalThere are only 10 types of people in the world: Those who understand binary, and those who don't.
Download meines ersten Spiels:HIER
Über Feedback würde ich mich freuen -
Als CLR-KonsolenAnwed,l...
1>------ Erstellen gestartet: Projekt: LAUFWERK, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>stdafx.cpp
1>Kompilieren...
1>AssemblyInfo.cpp
1>LAUFWERK.cpp
1>.\LAUFWERK.cpp(14) : error C3861: "_T": Bezeichner wurde nicht gefunden.
1>.\LAUFWERK.cpp(17) : error C2061: Syntaxfehler: Bezeichner '_TCHAR'
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\LAUFWERK\LAUFWERK\Debug\BuildLog.htm" gespeichert.
1>LAUFWERK - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Naja !!
-
darthdespotism schrieb:
Die iostream.h dürfte in diesem Beispiel überflüssig sein.
Nebenbei: Die .h Header sind zwar nicht im ISO std enthalten aber werden meines Wissens immer noch vom MS Compiler angeeboten (praktisch allen anderen auch) daher würde ich vermuten dass du das ganze als C Code compilierst.
UUps reloaden vor posten hilft manchmal
Stimmt 100%
gib mal den genauen code her... bitte danke -
// LAUFWERK.cpp: Hauptprojektdatei.
#include "stdafx.h"
#include <windows.h>
#include <winuser.h>
#include <mmsystem.h>
#include <iostream>
using namespace System;
bool DoOpenCdRom(void)
{
char chrRc[256];
return mciSendString(_T("Set CDAudio Door Open\0"), chrRc, sizeof(chrRc), NULL);
}
int _tmain(int argc, _TCHAR* argv[])
{
DoOpenCdRom();
return 0;
}
darauf ;
1>------ Erstellen gestartet: Projekt: LAUFWERK, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>LAUFWERK.cpp
1>.\LAUFWERK.cpp(14) : error C3861: "_T": Bezeichner wurde nicht gefunden.
1>.\LAUFWERK.cpp(17) : error C2061: Syntaxfehler: Bezeichner '_TCHAR'
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\LAUFWERK\LAUFWERK\Debug\BuildLog.htm" gespeichert.
1>LAUFWERK - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== -
SK8 schrieb:
#include "stdafx.h"
#include <windows.h>
#include <winuser.h>
#include <mmsystem.h>
#include <iostream>
using namespace System;
bool DoOpenCdRom(void)
{
char chrRc[256];
return mciSendString(T("Set CDAudio Door Open\0"), chrRc, sizeof(chrRc), NULL);
}
int _tmain(int argc, TCHAR* argv[])
{
DoOpenCdRom();
return 0;
}
das _TCHAR is glaub ich zu 90% falsch und was _T für eine funktion wohlist o.O?
mim _T k.A. probier mal nur T vllt ist das ein fehler oder so
aber naja wie lernst du C++ o.O?
Google: Programmcode`?
und dann pasten und sagen du kannst coden???? -
#include "stdafx.h"
#include <windows.h>
#include <winuser.h>
#include <mmsystem.h>
#include <iostream>
using namespace System;
bool DoOpenCdRom(void)
{
char chrRc[256];
return mciSendString(T("Set CDAudio Door Open\0"), chrRc, sizeof(chrRc), NULL);
}
int _tmain(int argc, TCHAR* argv[])
{
DoOpenCdRom();
return 0;
}
1>------ Erstellen gestartet: Projekt: LAUFWERK, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>LAUFWERK.cpp
1>.\LAUFWERK.cpp(14) : error C3861: "T": Bezeichner wurde nicht gefunden.
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\LAUFWERK\LAUFWERK\Debug\BuildLog.htm" gespeichert.
1>LAUFWERK - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
"T" Bezeichner nicht gefunden
ich kann das T natürlich auch löschen dan ist aber plötzlich eine Konventierung nicht möglich meckert der Compiller dann.
dass kommt wenn ich das T lösche;
1>------ Erstellen gestartet: Projekt: LAUFWERK, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>LAUFWERK.cpp
1>.\LAUFWERK.cpp(14) : error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [23]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\LAUFWERK\LAUFWERK\Debug\BuildLog.htm" gespeichert.
1>LAUFWERK - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
kann jetzt Bitte mal jemand was dazu sagen!Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von SK8 ()
-
#include "stdafx.h"
#include <windows.h>
#include <winuser.h>
#include <mmsystem.h>
#include <iostream>
using namespace System;
bool DoOpenCdRom(void)
{
char chrRc[256];
return mciSendString((LPCWSTR) ("Set CDAudio Door Open\0"), chrRc, sizeof(chrRc), NULL);
}
int _tmain(int argc, TCHAR* argv[])
{
DoOpenCdRom();
return 0;
}
testemal das da wird das ganze typumgewandelt imC format -
1>------ Erstellen gestartet: Projekt: LAUFWERK, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>LAUFWERK.cpp
1>.\LAUFWERK.cpp(14) : error C2664: 'mciSendStringW': Konvertierung des Parameters 2 von 'char [256]' in 'LPWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Documents\Visual Studio 2008\Projects\LAUFWERK\LAUFWERK\Debug\BuildLog.htm" gespeichert.
1>LAUFWERK - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
naja Danke Visual Studio 08
manche sachen sollte man lassen
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0
-
Benutzer online 1
1 Besucher
-
Tags
- PHP
- de
- http:
- HTML
- www
- aktuell
- Windows
- cpp
- file
- get
- set
- string
- 1
- ;
- easy-coding
- Programm
- Visual
- or
- perl
- a
- Sprache
- Code
- Programmieren
- programmierung
- virtual
- int
- Datei
- C
- Kalender
- include
- syntaxfehler
- null
- studio
- C#
- C++
- c-
- *
- main
- h
- error:
- c++\
- dev
- winmain
- Error
- Fehler
- {
- }
- schreibe
- bezeichnung
- #
- batch
- no
- :
- cd
- such
- char
- typen
- directory
- format
- konsolenanwendung
- methoden
- 15
- Die
- console
- bsp
- case
- return
- cpp:
- project
- fatal
- konvertierung
- quelle
- lauf
- bool
- t
- using
- WinAPI
- win32
- cin
- cout
- c:
- #include
- <<
- A:
- parameters
- möglich
- Diese
- wait
- beep
- close
- messagebox
- 1000
- console.h
- laufwerk
- sleep
- lpstr
- geöffnet
- bezeichner
- namespace
- StdAfx
- visual studio\
- laufwerke
- 0;
- typumwandlung
- h>
- endl;
- warnungen
- iostream
- _TCHAR
- std::cout
- <iostream>
- char[
- memset
- stdafx.h\
- winuser
- stdafx.h
- applications
- std::cin
- cdrom
- D:
- mciSendString
- winmm
- std;
- bezeichner wurde nicht gefunde
- ausfahren
- include-Datei
- closed
- Antileak
- C1083:
- werden:
- _T
- open CDAudio\
- Opening CD-ROM door ...\
- set CDAudio door open\
- Closing the CD-ROM door in 5 s
- set CDAudio door closed\
- close CDAudio\
- <windows
- <mmsystem
- 440
- 5000
- Soundplay
- bezeichner nicht gefunden\
- mciSendStringW\
- C2664
- _T\
- mcisendstringw
- iostream.h\
- sleep\
- c3861:
- _TCHAR\
- libwinmm
- .\\stdafx.cpp\
- memset\
- Funktionsformat
- verwiesen
- DoOpenCdRom
- lpwstr
- 1>
- \\main
- iostream:
- Close\
- erfordert
- ein-ausfahren
- win32::API
- mci-sendstring
- Console.h\
- argv[]
- mmsystem
- #include<MMSystem
- _TCHAR*
- StdAfx.cpp
- reinterpret_cast-Operator
- DoOpenCdRom#
- openerror
- cdaudio
- door
- set cdaudio door closed
- die Konvertierung erfordert ei
- const char [14]' in 'LPCWSTR
- const char [13]' in 'LPCWSTR
- winmm.lib
- Konvertierung des Parameters 2
- set CDAudio door open
- mciSendStringW': Konvertierung
- lptstr *' in 'lpwstr
- iostream.h
- werk
- open CDAudio
- cpp-programm-laufwerk-ausfahre