ungültiges "#using"



  • tag allerseits!
    habe eine recht einfaches Programm geschrieben:

    #include<iostream>
    
    #using <System.dll>
    
    using namespace std;
    int main()
    {
        cout<<"Hallo Welt"<<endl;
    }
    

    bekomme die Fehlermeldung: "invalid preprocessing directive #using"
    wer weiß warum?
    und noch viel wichtiger: wie bekomme ich es zum Laufen?
    was ich mit der "System.dll" später mache sei jetzt mal egal...

    Danke schon mal vorab.



  • Du verwechselst C++ mit einer anderen Sprache. So eine using-Direktive, wie du sie verwendest, gibt es nicht. DLLs kannst du z.B. per LoadLibrary und GetProcAddress benutzen oder auch als Dll+Lib+h-Gespann (=>SuFu, Google für Genaueres).

    P.S.: Was machst du später mit der System.dll?



  • meine eigentliche Aufgabe besteht darin ein c++-Programm zu schreiben, welches den Internetbrowser(Firefox,IE) mit einer vorgegebenen Adresse öffnet und kurz darauf wieder schließt. suche im Netz schon eine recht lange Weile und habe eben nur Ansätze aber keine Lösungen gefunden. und in einem dieser Ansätze kommt eben diese System.dll vor.
    weiß einer vllt. wie ich meine kleine Aufgabe bewähligen könnte?



  • Die System.dll, sowie die #using Direktive ist von C++/CLI, einer .NET Sprache.

    Edit:
    Als Empfehlung würde ich Dir raten dich für eine Sprache zu entscheiden, und die Sprachmittel / Bibliotheken zu nutzen, die für die entsprechende Sprache zur Verfügung gestellt wird. Von C++/CLI rate ich Dir dringend ab, da diese primär für Interop zwischen der .NET und native Welt gedacht ist.



  • astro108 schrieb:

    meine eigentliche Aufgabe besteht darin ein c++-Programm zu schreiben, welches den Internetbrowser(Firefox,IE) mit einer vorgegebenen Adresse öffnet und kurz darauf wieder schließt. suche im Netz schon eine recht lange Weile und habe eben nur Ansätze aber keine Lösungen gefunden. und in einem dieser Ansätze kommt eben diese System.dll vor.
    weiß einer vllt. wie ich meine kleine Aufgabe bewähligen könnte?

    Welcher der Standard-Browser im System ist, steht irgendwo in der Registry. Das kann ich dir jetzt auch nicht genau sagen, es sollte sich aber durch ein, zwei Minuten auf google.de lösen lassen.

    Hast du Namen und Pfad des Browsers gefunden, kannst du ihn einfach starten. Funktionen dafür stellt die WinAPI bereit. Zu Beispiel gibt es CreateProcess(Ex) oder ShellExecute(Ex). Dabei kannst du die Webseite, die du starten willst, üblicherweise per Kommandozeilenparameter übergeben. In der Konsole würde ein solcher Aufruf so aussehen:

    C:\program files(x86)\Internet Explorer\iexplore.exe www.google.de

    Um den Browser dann zu schließen, musst du ihn erst mal finden. Das kannst du per FindWindow(Ex) oder EnumWindows(Ex) machen. Das Schließen sollte dann klappen, indem du per SendMessage die Nachricht WM_CLOSE an den Prozess schickst. Hier bin ich aber wenig erfahren, da solltest du nochmal genau nachforschen. Jedenfalls hast du jetzt einen ganzen Haufen Stichwörter, nach denen du suchen kannst. 😉



  • ja wirklich, vielen Dank!
    ich mache mich dann mal an die Arbeit!



  • Du kannst auch CreateProcess() aus der Win32 API benutzen, damit bekommst du die Prozess ID des gestarteten Internet Explorers, um ihn (und zwar genau diese Instanz) später wieder schliessen zu können.



  • "C:\program files(x86)\Internet Explorer\iexplore.exe www.google.de"

    ist nicht nötig, es reicht

    iexplore.exe www.google.de

    bb


Anmelden zum Antworten