ich hänge einfach fest



  • drakon schrieb:

    ...Dann ist aber schon zu viel Arbeit reingesteckt worden. ...

    definitiv!

    hangman schrieb:

    if (arabische_Ziffer == 0)

    Unabhängig von Benutzer Eingaben?
    Naja, ich weiss ja nicht.

    Schau Dir das Programm nochmal genau an ... Welche Ablaufpfade lässt der COmpiler wirklich übrig (mal von exceptions abgesehen) ? 😉

    Gruß,

    Simon2.



  • hi danke für eure antworten hat mit dem switch suprer geklappt. habe nur jetzt wieder ein neues problem. ich würde gerne ein programm starten das ist mein quellcode:

    #include "stdafx.h"
    #include <process.h>
    #include <stdio.h>
    void _spawnl_example(void)
    {
    int result;
    result = _spawnl(P_WAIT,"C:\\Programme\Winamp\winamp.exe", "C:\\Programme\Winamp\winamp.exe", NULL);
    if (result == -1)
    {
    perror("Error from spawnl");
    exit(1);
    }
    }
    int main(void)
    {
    _spawnl_example();
    return 0;
    }

    die fehlermeldung die ich immer bekommen ist diese hier:

    1>------ Erstellen gestartet: Projekt: programm öffnen, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>programm öffnen.cpp
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'W': Nicht erkannte Folge von Escapesequenz
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'w': Nicht erkannte Folge von Escapesequenz
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'W': Nicht erkannte Folge von Escapesequenz
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'w': Nicht erkannte Folge von Escapesequenz
    1>Verknüpfen...
    1>Das Manifest wird eingebettet...
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maik\Eigene Dateien\Visual Studio 2008\Projects\programm öffnen\programm öffnen\Debug\BuildLog.htm" gespeichert.
    1>programm öffnen - 0 Fehler, 4 Warnung(en)
    ========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========

    und wenn ich es dann starte kommt immer:

    Error from spawnl: No such file or directory

    was mach ich da falsch und die andere frage ist kann ich damit auch lieder starten z.B. mp3 dateien oder nur exe ?

    danke für eure antworten

    maik



  • Ein einfaches '\' erkennt der Compiler nicht nur beim ersten Mal (nach dem "C:") nicht, sondern auch bei allen folgenden Malen ...

    Gruß,

    Simon2.

    P.S.: Bei den Fehlermeldungen bezeichnet die Zahl in Klammern die Quellcodezeile, die Du Dir als erstes ansehen solltest. (genauer: ..., in der der Compiler Probleme bekommen hat.)



  • hi danke simon2 aber kannst du mir auch sagen was ich da anderst machen soll weil das ist ja der pfad zur datei. lg maik



  • Maik135 schrieb:

    hi danke simon2 aber kannst du mir auch sagen was ich da anderst machen soll weil das ist ja der pfad zur datei. lg maik

    Du musst statt '\' einfach jedesmal '\' verwenden, wie du es ja auch teilweise getan hast. Google mal nach Escapesequenzen.



  • hi danke funktionier super. hast du auch ne idee wie ich z.b. auch ein leid öffnen kann also eine mp3 datei weil das hier geht ja nur für exe. lg maik



  • Ich bin mir nicht sicher, aber unter Windows müsstest du Dateien die mit einer Anwendung (bei mp3's also dein Player) mit SchellExecuteEx öffnen können.

    Gruß





  • den player hab ich mit _spawnl_ geöffnet ging recht einfach nur wenn ich z.b. eine mp3 datei auf dem desktop habe wenn ich die abspielen will wie mit eine normalen doppelklick nur über c++ wie das geht würde mich interessieren so wie der link hier vor mir nur will ich nicht einen ganzen player programmieren sondern einfach das er die mp3 datei aufmachen und dann normal in winamp oder so wiedergeben.

    gruß maik



  • ShellExecuteEx? schrieb:

    Ich bin mir nicht sicher, aber unter Windows müsstest du Dateien die mit einer Anwendung (bei mp3's also dein Player) mit SchellExecuteEx öffnen können.

    Jupp, bin ich auch der Meinung (, dass das Verb "open" sich wie ein Doppelklick auf das Dateisymbol auswirkt) 👍



  • Das Ganze ist mit ShellExecute oder ShellExecuteEx ein Einzeiler...

    ShellExecute(NULL, "open", "C:\\test.mp3", NULL, NULL, SW_SHOWDEFAULT);
    

    Diese Zeile öffnet die Datei test.mp3 mit dem Player der für MP3 Dateien zuständig ist...

    Gruß



  • hi leute wegen dem ShellExecute ich bin einfach zu doof bin aber uach absoluter grünschnabel meine programmzeile ist diese hier :

    case 3188 : std::cout << "Zugang gestattet \n"; ShellExecute(NULL, "C:\\Programme\\Winamp\\winamp.exe", "C:\\Dokumente und Einstellungen\\Maik\\Desktop\\Danny Elsman - The Little Things.mp3", NULL, NULL, SW_SHOWDEFAULT); break; std::cout << std::endl;

    so das ist auch alles okay nur sagt er dann:

    1>------ Erstellen gestartet: Projekt: zugang 2, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>zugang 2.cpp
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\zugang 2\zugang 2\zugang 2.cpp(22) : error C2065: 'SW_SHOWDEFAULT': nichtdeklarierter Bezeichner
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\zugang 2\zugang 2\zugang 2.cpp(22) : error C3861: "ShellExecute": Bezeichner wurde nicht gefunden.
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maik\Eigene Dateien\Visual Studio 2008\Projects\zugang 2\zugang 2\Debug\BuildLog.htm" gespeichert.
    1>zugang 2 - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    muss ich da noch irgendwas beachten zwecks präprozesor befehl ?

    danke für antworten

    maik


  • Administrator

    #include <windows.h> vergessen?

    Grüssli



  • boah ich bin so blöd ja ich hab den befehl vergessen aber jetzt wo ich ihn drin habe habe ich wieder 2 fehler:

    1>------ Erstellen gestartet: Projekt: zugang 2, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>zugang 2.cpp
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\zugang 2\zugang 2\zugang 2.cpp(23) : error C2664: 'ShellExecuteW': Konvertierung des Parameters 2 von 'const char [31]' 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:\Dokumente und Einstellungen\Maik\Eigene Dateien\Visual Studio 2008\Projects\zugang 2\zugang 2\Debug\BuildLog.htm" gespeichert.
    1>zugang 2 - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    und hier die zeile:

    case 3188 : std::cout << "Zugang gestattet \n"; ShellExecute(NULL, "C:\\Programme\\Winamp\\winamp.exe", "C:\\Dokumente und Einstellungen\\Maik\\Desktop\\Danny Elsman - The Little Things.mp3", NULL, NULL, SW_SHOWDEFAULT); break; std::cout << std::endl;

    gruß



  • Schalt mal auf Multibyte um, oder benutze wchar_t.



  • hi kannst du mir das genauer sagen was ich dazu alles rein schreiben muss ein verbesserung von meinem code wäre evt nicht schlecht weil ich bin absolut neu aúf dem gebiet und schlage mcih mehr oder weniger mit einem buch run.

    danke

    gruß



  • Maik135 schrieb:

    hi kannst du mir das genauer sagen was ich dazu alles rein schreiben muss ein verbesserung von meinem code wäre evt nicht schlecht weil ich bin absolut neu aúf dem gebiet und schlage mcih mehr oder weniger mit einem buch run.

    danke

    gruß

    Dann musst du aber mal aktuellen Code zeigen.

    Wegen umschalten auf Mutlibyte. Wenn du VC++ hast:
    Projekt -> Konfigurationseinstellugen und dann dort den Zeichensatz auf Mutli-Byte umstellen.



  • // zugang.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //

    #include "stdafx.h"
    #include <iostream>
    #include <process.h>
    #include <stdio.h>
    #include <windows.h>

    void main()
    {
    int Code;
    std::cout << "Code geschuezter Bereich" << std::endl;
    std::cout << std::endl;
    std::cout << "Geben sie den vierstelligen Code ein: ";
    std::cin >> Code;
    std::cout << std::endl;
    std::cout << "Code pruefen... " << std::endl;
    std::cout << std::endl;

    switch (Code)
    {
    case 3188 : std::cout << "Zugang gestattet \n"; ShellExecute(NULL, "C:\\Dokumente und Einstellungen\\Maik\\Desktop\\Danny Elsman - The Little Things.mp3", "C:\\Programme\\Winamp\\winamp.exe ", NULL, NULL, SW_SHOW); break; std::cout << std::endl;
    default : std::cout << "Zugang nicht gestattet \n";break; std::cout << std::endl;
    }
    }

    hier der quellcode funktioniert aber mit multibyte auch nicht. keine ahnung wo der fahler sein soll bin noch anfänger.

    freue mich auf eine antwirt evt mit code verbesserung.

    gruß



  • Das ist jetzt nicht böse gemeint, aber achte bitte auf folgende Dinge, dann werden sicher auch mehr Leute motiviert sein, dir zu helfen:

    • Wähle einen passenden Threadtitel.
    • "Funktioniert nicht" ist keine Fehlerbeschreibung. Wenn du Hilfe erwartest, musst du schon sagen, was nicht geht.
    • Um Codebeispiele zu zeigen, gibt es [cpp]-Tags (erste weisse Schaltfläche unter dem Eingabe-Textfeld). Benutz diese doch bitte, das macht den Code gleich viel übersichtlicher.
    • Bitte achte dich ein wenig auf Gross-/Kleinschreibung oder wenigstens auf Satzzeichen. Sätze wie der folgende sind kaum lesbar:

    Maik135 schrieb:

    den player hab ich mit _spawnl_ geöffnet ging recht einfach nur wenn ich z.b. eine mp3 datei auf dem desktop habe wenn ich die abspielen will wie mit eine normalen doppelklick nur über c++ wie das geht würde mich interessieren so wie der link hier vor mir nur will ich nicht einen ganzen player programmieren sondern einfach das er die mp3 datei aufmachen und dann normal in winamp oder so wiedergeben.

    Noch einige Anmerkungen zum Code:

    • <stdio.h> ist kein C++-Header. Benutze anstattdessen <cstdio>, wenn du ihn überhaupt benötigst.
    • main() hatte schon immer den Rückgabetypen int .
    • Anweisungen, die in einem switch -Block nach einem break; und vor der nächsten Sprungmarke (in deinem Falle default: ) stehen, werden niemals ausgeführt.


  • Maik135 schrieb:

    // zugang.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include <iostream>
    #include <process.h>
    #include <stdio.h>
    #include <windows.h> 
    
    void main()
    {	  
    	int Code;
    	std::cout << "Code geschuezter Bereich" << std::endl;
    	std::cout << std::endl;
    	std::cout << "Geben sie den vierstelligen Code ein: ";
    	std::cin >> Code;
    	std::cout << std::endl;
    	std::cout << "Code pruefen... " << std::endl;
    	std::cout << std::endl;
    
    	switch (Code)
    	{
    	case 3188 : std::cout << "Zugang gestattet \n"; ShellExecute(NULL, L"open", L"C:\\Dokumente und Einstellungen\\Maik\\Desktop\\Danny Elsman - The Little Things.mp3", "C:\\Programme\\Winamp\\winamp.exe ", NULL, NULL, SW_SHOW); // Macro hinzugefügt für LPWSTR Pointer break; std::cout << std::endl; 
    	default : std::cout	<< "Zugang nicht gestattet \n";break; std::cout << std::endl;
    	}
    }
    

    hier der quellcode funktioniert aber mit multibyte auch nicht. keine ahnung wo der fahler sein soll bin noch anfänger.

    freue mich auf eine antwirt evt mit code verbesserung.

    gruß


Anmelden zum Antworten