Improved Console 4.0



  • void Console::setWndSize (int x, int y)
            {
                if(!wndBufMode)
                {
                    zeroWndSize();
    
                    COORD bufSize;
                    bufSize.X = min(x,getMaxWndSizeX());
                    bufSize.Y = min(y,getMaxWndSizeY());
                    SetConsoleScreenBufferSize(hConsoleOutput,bufSize);
                }
    
                SMALL_RECT wndSize;
                wndSize.Top = 0;
                wndSize.Left = 0;
                wndSize.Right = min(x,getMaxWndSizeX()) - 1;
                wndSize.Bottom = min(y,getMaxWndSizeY()) - 1;
                SetConsoleWindowInfo(hConsoleOutput,TRUE,&wndSize);
            }
    

    ich habe hier ein problem: min undeclared



  • Ich hab ebenfalls folgendes bekommen:

    Fehler	1	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowWindow@8" in Funktion ""public: void __thiscall ic::Console::hide(void)" (?hide@Console@ic@@QAEXXZ)".	ic.obj
    
    Fehler	2	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetWindowRect@8" in Funktion ""public: int __thiscall ic::Console::getWndPosX(void)const " (?getWndPosX@Console@ic@@QBEHXZ)".	ic.obj
    
    Fehler	3	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetWindowPos@28" in Funktion ""public: void __thiscall ic::Console::setWndPos(int,int)" (?setWndPos@Console@ic@@QAEXHH@Z)".	ic.obj
    

    Gibt es da schon eine Lösung?

    SDK installiert, beide Quelldateien geladen, main.cpp mit folgendem Inhalt:

    #include <iostream>
    	#include "ic.hpp"
    	using namespace ic;
    	using namespace ic::shorties;
    	using namespace std;
    
    	int main ()
    	{
    	    textcolor(FG_RED);
    	    cout << "Hello World" << endl;
    	    return 0;
    	}
    

    Ich hoffe auf eine Antwort.

    MFG Proximo



  • Das Problem lässt sich sogar noch weiter verfolgen:

    #define _WIN32_WINNT 0x0500
    
    #include <windows.h>
    
    int main()
    {
    	ShowWindow ( GetConsoleWindow () , SW_HIDE ); 
    	return 0;
    }
    

    Wirft:

    Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowWindow@8" in Funktion "_main". main.obj

    Was kann das sein?

    MFG Proximo



  • Du scheinst die WinAPI nicht dazuzulinken.

    MfG SideWinder



  • Auch wenn die Frage jetzt warscheinlich dämlich ist... aber wie?

    Mir reicht auch ein Tutorial darüber, aber bei der Suche nach "WinAPI"(und beliebigen Begriffen dazu) hab ich etwas zu viele Treffer bekommen...

    MFG Proximo



  • Natürlich hast du keine Glaskugel zuhause...

    Ich verwende Visual C++ 2005 Express Edition und das Microsoft Plattform SDK dazu.

    Das SDK ist per Include und Lib im aktuellen Project eingebunden.

    MFG Proximo



  • Das SDK ist sicher eingebunden? Das kann in dem Fall nicht sein. Schau mal ob da noch irgendwas in der ReadMe der SDK-Install für die ExpressEdition steht was du übersehen hast...

    MfG SideWinder



  • musst dem linker evtl. noch sagen, dass er user32.lib dazu linken soll



  • wollte wida mal auf die site gehen seh aba grade dass pw verlangt wird und alle anderen links off sind.



  • unregistriert1 schrieb:

    wollte wida mal auf die site gehen seh aba grade dass pw verlangt wird und alle anderen links off sind.

    Hatte gestern Serverumstellung, gut möglich das da was kaputt war. Sollte aber wieder funktionieren.

    MfG SideWinder



  • Wie mache ich einen Fullscreen damit ? 🙄



  • int main ()
    {
        con.enableWndFSMode();
        // ab hier im fullscreen-modus
    
        ...
    
        con.disableWndFSMode();
        // ab hier nicht mehr im fullscreen-modus
    
        ...
    
        return 0;
    }
    

    MfG SideWinder



  • Wow danke das ging schnell 😃

    Bei mir geht irgendwie das mit den Befehle anzeigen leider nicht 😞

    Gibts auch eine möglichkeit den Cursor zu deaktivieren ?



  • Einfach hier durchscrollen: http://ic.sidewindershome.net/sources/ic.hpp.html dann findest du schon die richtige Funktion.

    setCurSize (int size); -> 0

    MfG SideWinder



  • IC scheint ja ziemlich interessant zu sein, leider habe ich keine möglichkeit es zu testen. Ich bin noch recht neu in cpp und würde gern wissen ob es möglich ist IC auf Linux zu portieren. Ich arbeite zwar mit Windows compiliere aber unter Cygwin mit g++
    leider mault g++ das es eine tchar.h nicht finden kann.

    Gibt es eine möglichkeit IC trotzdem unter Linux zu verwenden?



  • naja ich habe folgendes Problem:

    ich habe dev C++ und weiß jetzt nicht genau wie ich improved console mit meinem Compilierer bakannt machen soll. Ich habe auch mal das Dev C++ paket runtergeladen aber das kam mir auch sehr suspekt vor und da wusste ich dann auch nciht weiter..... 🙄

    ich hänge also schon ganz am start obwohl der rest denke ich dann hoffentlich klappt

    ich erhoffe schnelle hilfe und sag schon mal danke 😃



  • @Xalazhar:
    Eine Verwendung in Linux ist ausgeschlossen, so hart das klingt, leider ist es so. Die IC kapselt einfach Funktionen der WinAPI, die die Konsole betreffen und macht diese zugänglicher und überschaubarer. Nun gibt es eben diese WinAPI, wie du sicher schon weißt, nur für Windows. Von daher keine Chance auf Linux, da müsste man eine Linux IC proggen, die die Linux API des Kernels kapselt, aber das ist, meines Erachtens nach, nicht geplant.

    @Martin L
    Welche Fragen hast du denn zum Bekanntmachen? Hast du früher schon mit Dev Packages gearbeitet? Außerdem welche Version von DevC++ benutzt du? Da ich der Maintainer (danke dir SideWinder, dass du mich mit dem Wort bekannt gemacht hast 😃 ), also der Entwickler des Packages bin( nicht aber der IC, das ist SideWinder), richtest du deine Fragen bezüglich dem Umgang mit DevC++ und der IC am Besten an mich, auch sonst stehen ich dir immer gern zu Fragen zur IC zur Verfügung, sollte ich sie denn beantworten können und SideWinder nicht in der Nähe sein.



  • Mahlzeit!

    Erstmal ein riesiges Kompliment an Sidewinder: IC ist echt der Wahnsinn! Erinnert mich sehr an meine seeligen C64-Zeiten zurück. 👍

    Wie auch immer, ich hab da eine Frage bei der sich die Profis vermutlich schreiend an den Kopf fassen werden: Kann ich irgendwie mehrere Konsolen-Fenster öffnen? Mein Ziel ist es, bei Bedarf ein zweites Konsolen-Fenster einzublenden, das quasi als Hilfe-Fenster fungiert.

    Falls das nicht funktionieren sollte (und davon gehe ich aus - zu fragen schadet hoffentlich trotzdem nicht), kann mich jemand zu einer Website weiterleiten, wo erklärt wird, wie man das aktuelle Konsolen-Fenster ausliest und zwischenspeichert und es auch wiederherstellt?

    Danke!



  • Das funktioniert leider nicht: Windows lässt nur eine Konsole pro Prozess zu.

    Den Inhalt auslesen und wiederherstellen ist allerdings kein Problem:
    ReadConsoleOutput: http://msdn2.microsoft.com/en-us/library/ms684965.aspx
    WriteConsoleOutput: http://msdn2.microsoft.com/en-us/library/ms687404.aspx

    bzw. wenn du nur Zeichen und nicht die Formate mitkopieren willst: ReadConsoleOutputCharacter sowie WriteConsoleOutputCharacter.

    MfG SideWinder



  • Mahlzeit!

    Vielen Dank! Hab's schon auspropiert (das angegebene Beispiel modifiziert) und es funktioniert. 🙂


Anmelden zum Antworten