Kompilieren mit xwindows.h



  • Hallo zusammen!

    Ich habe mir jetzt Visual C++ 2008 am Rechner installiert, um mit C++ Programmen unter Windows zu arbeiten. Einfache Programme funktionieren problemlos, doch jetzt würde ich gerne eines mit der Headerdatei "xwindows.h" abspielen, dabei kommt aber immer die Meldung: "Fehler beim Erstellen."
    Wie ich genauere Fehlermeldungen bekommen könnte, weiß ich nicht einmal.

    Als jemand, der bis jetzt nur mit Linux C++ kompiliert hat, bin ich ziemlich planlos. Unter Linux läuft das Programm ganz gut. Muss ich bei Visual was besonderes beachten ???

    Ich stell mal einen Teil des Quellcodes rein, vielleicht kann ja irgendwer das Problem erkennen:

    "using namespace std;
    #include <iostream>
    #include <cmath>
    #include <xwindows.h>
    
    [...]
    
    // Hauptprogramm:
    
    int main() {
    	[...]
    
    	XWindow man (800,0);
    
    	man.Open (xmax, ymax, "Wellensimulation");
    
    	[...]	
    
    		for (x=0; x<xmax; x++) {
    		for (yy=0; yy<ymax; yy++) {
    
    				man.SetColor(4);
    				man.DrawPoint(x,yy);
    
    		}
    		}
    
    		while (! man.KeyIsPressed()) {
    
    				for (x=0; x<xmax; x++) {
    
    						man.SetColor(1);
    						man.DrawPoint(x,n[x]);
    
    				}				
    
    				for (x=0; x<xmax; x++) {
    
    						man.SetColor(4);
    						man.DrawPoint(x,y[x]);
    
    				}				
    
    				werte(y, v, v1, v2, m, t);
    
    				for (x=0; x<xmax; x++) {
    
    						man.SetColor(0);
    						man.DrawPoint(x,y[x]);
    
    				}				
    
    				t=t+0.05;
    
    		}
    
    	man.WaitForKeypress();
    	return 0;
    }"
    

    xwindows.h habe ich bei den Headerdatein eingefügt und noch zusätzlich im Zielordner, wo eigentlich die .exe Datei landen sollte. Oder mach ich da was grundsätzlich falsch???

    Wie gesagt, unter Linux funktionierts problemlos.
    Wenn mir wer helfen könnte wär ich echt dankbar !!!

    mfg
    Ben



  • Aua, werden einige Leser bestimmt sagen, nachdem sie deinen Post gelesen haben.

    Du versuchst unter Windows ein Linux-XWindow zu erstellen, soetwas gibts in Windows aber nicht.
    Entweder du verwendest die WinAPI (Windows-Funktionen) oder nimmst ein Crossplattform-Toolkit wie Qt oder wxWidgets.



  • Hm ... danke!

    Ich hab schon vermutet, dass hier ein grundsätzlicher Fehler vorliegt. 🙄
    Ich werd mir das einmal ansehen.

    Eine andere Frage noch: Ich glaube, <cmath> läuft in Visual nicht, oder heißt irgendwie anders, math.h oder so? Wie kann ich das in einem Programm einbinden? Ist es extra unter den Headerdateien einzufügen???

    Vielen Dank!
    Ben



  • #include <math.h>

    Übrigens in C:\Programme\Microsoft Visual Studio 8\VC\include liegt diese und andere.



  • <cmath> ist richtig für dich, weil du C++ programmierst (du nutzt ja auch die C++ streams).
    Es kann aber zu Problemen mit windows.h kommen, weil dort z.B. Makros für min und max definiert sind.



  • Softwaremaker schrieb:

    #include <math.h>

    Übrigens in C:\Programme\Microsoft Visual Studio 8\VC\include liegt diese und andere.

    Okay, ich hab das einmal bei einem leichten Programm versucht. Die math.h hab ich unter den Headerdateien eingefügt und unter Quelldateien folgenden Code:

    // Programm zur Primzahlenberechnung
    
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    // Prototypen:
    
    void prim(int c, int x, int &n ,int &p, int z);
    
    // Hauptprogramm:
    
    int main() {
    
    	int c, x, n, p=1000000, z;
    	int v[p];
    
    	cout << endl << "  Primfaktorenzerlegung  " << endl << endl;
    
    	start:;
    
    	cout << "Waehlen Sie eine Zahl: ";
    	cin >> c;
    	cout << endl << endl;
    
    	if (c < 1) {
    
    		cout << "Zahl muss groessergleich 1 sein!" << endl << endl;
    
    		goto start;
    	}
    
    	if (c == 1) {
    
    		cout << "1" << endl;
    
    	}
    
    	else prim(c,x,n,p,z);	
    
    	cout << endl << endl << "fin" << endl << endl;
    	return 0;
    
    }
    
    // Unterprogramme:
    
    void prim(int c, int x, int &n, int &p, int z) {
    
    	int v[p];
    
    	p = 1;
    	n = 3;
    
    	if (c >= 2)  v[p]=2;
    
    	for (n; n <= c; n++) {
    
    		for ( x = 2 ; x < n; x++) {
    
    			z = n % x;
    
    		if ( z == 0) break;
    
    		if ( x == n - 1) {
    
    			p = p + 1;
    
    			v[p]=n;
    
    		}
    
    		}
    
    	}
    
    	z = c;
    
    	int a;
    
    	begin:;
    	for ( x=1; x<=p; x++ ) {
    
    		a = z % v[x];
    
    		if ( a == 0 ) {
    
    			z = z / v[x];
    
    			cout << v[x] << endl;	
    
    			goto begin;
    		}
    	}
    
    }
    

    Beim Versuch zu kompilieren, kommt aber wieder dieselbe Fehlermeldung, dass nämlich das Projekt nicht erstellt werden konnte. Davor kommt noch der Hinweis, dass das Projekt veraltet sei.

    Wo liegt denn nun hier wieder der Fehler? Und kann ich irgendwie genauere Fehlermeldungen bekommen, als einfach nur "Fehler beim Erstellen???

    Nochmals danke für jede Hilfe!
    Ben


Log in to reply