C++ Programm Laufwerk ausfahren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probiere beide Varianten mal aus:
    Es gibt ein Kommando

    Quellcode

    1. MCI_OPEN_PARMS MciOpenParm;
    2. memset(&MciOpenParm, 0, sizeof(MciOpenParm));
    3. //
    4. // Open
    5. //
    6. MciOpenParm.lpstrElementName = "E:";//for example
    7. if (mciSendCommand(DeviceId, MCI_OPEN, MCI_WAIT| MCI_OPEN_ELEMENT, MCI_PARM2(MciOpenParm))) {
    8. MessageBox("Open Error", "Sound Play", MB_OK);
    9. return;
    10. }
    11. DeviceId = MciOpenParm.wDeviceID;
    Alles anzeigen

    Quelle: experts-exchange.com/Programmi…uages/CPP/Q_10173294.html

    und einen String, den man senden kann

    Quellcode

    1. // use mciSendString() to open and close the CD-ROM door
    2. // you have to link with the winmm.lib file, or
    3. // in the case of Dev-C++ link with libwinmm.a via
    4. // Project>>Project Options>>Parameters>>Add Lib>>libwinmm.a
    5. // a Dev-C++ tested console application by vegaseat 18dec2004
    6. #include <iostream>
    7. #include <windows.h> // Sleep()
    8. #include <mmsystem.h> // mciSendString()
    9. using namespace std; // std::cout, std::cin
    10. int main()
    11. {
    12. mciSendString("open CDAudio", NULL, 0, NULL);
    13. Beep(440,1000);
    14. cout << "Opening CD-ROM door ..." << endl;
    15. mciSendString("set CDAudio door open", NULL, 0, NULL);
    16. cout << "Closing the CD-ROM door in 5 seconds ..." << endl;
    17. Sleep(5000);
    18. mciSendString("set CDAudio door closed", NULL, 0, NULL);
    19. mciSendString("close CDAudio", NULL, 0, NULL);
    20. cin.get(); // wait
    21. return 0;
    22. }
    Alles anzeigen

    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 mir

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SK8 ()

  • Fehler beim ersten? Richtiges Laufwerk angegeben?

    Quellcode

    1. // you have to link with the winmm.lib file, or
    2. // in the case of Dev-C++ link with libwinmm.a via

    gelinkt sind die Bibliotheken?

    Hier nochmal als Windows Anwendung:

    Quellcode

    1. #include "stdafx.h"
    2. #include <windows.h>
    3. #include <winuser.h>
    4. #include <mmsystem.h>
    5. #include <iostream.h>
    6. bool DoOpenCdRom(void)
    7. {
    8. char chrRc[256];
    9. return mciSendString("Set CDAudio Door Open\0", chrRc, sizeof(chrRc), NULL);
    10. }
    11. bool DoCloseCdRom(void)
    12. {
    13. char chrRc[256];
    14. return mciSendString("Set CDAudio Door Closed\0", chrRc, sizeof(chrRc), NULL);
    15. }
    16. int APIENTRY WinMain(HINSTANCE hInstance,
    17. HINSTANCE hPrevInstance,
    18. LPSTR lpCmdLine,
    19. int nCmdShow)
    20. {
    21. DoOpenCdRom();
    22. DoCloseCdRom();
    23. return 0;
    24. }
    Alles anzeigen

    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 ()

  • 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

    1. // Laufwerk.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    2. //
    3. #include "stdafx.h"
    4. #include <windows.h>
    5. #include <winuser.h>
    6. #include <mmsystem.h>
    7. #include <iostream>
    8. bool DoOpenCdRom(void)
    9. {
    10. char chrRc[256];
    11. return mciSendString(_T("Set CDAudio Door Open\0"), chrRc, sizeof(chrRc), NULL);
    12. }
    13. int _tmain(int argc, _TCHAR* argv[])
    14. {
    15. DoOpenCdRom();
    16. return 0;
    17. }
    Alles anzeigen


    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 manchmal
    There 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 ==========


    :(
  • 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
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at
  • // 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????
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at
  • 8|


    #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
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at
  • 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 :thumbdown:

    manche sachen sollte man lassen ;(