Probleme beim Einbinden einer Headerdatei
-
Hi theta,
der Link hilft mir nicht weiter.
Ich verwende den Typ IDataObject gar nicht, zumindest nicht bewusst. Von daher was soll ich da für vollqualifizierte Namen verwenden, wenn das includieren der Headerdatei schon fehlschlägt...
Ausserdem funktioniert das includieren ja in einer normalen Form-Anwendung...
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-220345-and-highlight-is-idataobject.html
Ansonsten rate ich dir die Forensuche selbst mal zu benutzen.
Simon
-
Da stehts ja auch nochmal, die windows.h in die cpp includieren(Jochen Kalmbach). Wenn ich das mache gibt es 286 Compilerfehler, hier mal die ersten 4:
Error 1 error C2144: syntax error : 'void' should be preceded by ';' C:\Programme\Microsoft SDKs\Windows\v6.0A\include\gl\gl.h 1152
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C:\Programme\Microsoft SDKs\Windows\v6.0A\include\gl\gl.h 1152
Error 3 error C2146: syntax error : missing ';' before identifier 'glAccum' C:\Programme\Microsoft SDKs\Windows\v6.0A\include\gl\gl.h 1152
Error 4 error C2182: 'APIENTRY' : illegal use of type 'void' C:\Programme\Microsoft SDKs\Windows\v6.0A\include\gl\gl.h 1152Hier mal der Code der kleinen header-Datei,vielleicht fällt einem was auf?
#pragma once //#include <windows.h> #include <gl/gl.h> #include <gl/glu.h> //using namespace System::Windows::Forms; ref class DisparityVisualiser : public System::Windows::Forms::NativeWindow { private: HDC m_hDC; HGLRC m_hglrc; array<double>^ disp; int dwidth, dheight; int win_width, win_height; float xang, zang; float zoom; float negative; int rendermode; float *lightvec; float *lightcol; public: //DisparityVisualiser(System::Windows::Forms::Form ^ parentForm); DisparityVisualiser(System::IntPtr handle, int objWidth,int objHeight); GLint MySetPixelFormat(HDC hdc); void Render(); void SetDisparitycard(int width, int height, array<double>^ data); void SetZAng(float ang); void SetXAng(float ang); void SetZoom(float zoom); void SetRendermode(int mode); };
-
Hat keiner eine Idee?
Das Problem ist ja wenn ich die windows.h aus dem Header entferne und in die cpp schreibe, dass teilweise die Membervariablen der Klasse nun einen unbekannten Typ haben weil der Typ aus der windows.h kommt...
-
Ev. hilfts die Header Reihenfolge zu ändern.
Simon
-
Hi Simon,
leider hat das Ändern der Reihenfolge nichts gebracht, wenn die windows.h ganz oben steht gibt es noch die wenigsten Compilerfehler von allen möglichen Reihenfolgen...
-
#include "stdafx.h" using namespace System;
Sehe ich bei Dir nicht...
Binde die "stdafx.h" als erste ein...
-
Champ II schrieb:
#include "stdafx.h" using namespace System;
Sehe ich bei Dir nicht...
Binde die "stdafx.h" als erste ein...
Das ist quatsch.
Ausserdem kompiliert dein Code bei mir ohne Probleme.
Simon
-
theta schrieb:
Das ist quatsch.
Ausserdem kompiliert dein Code bei mir ohne Probleme.
SimonWeil Du auch die
<gl.h>
<glu.h>mal eben rumliegen hast?
Also ich habe beide nicht, aber der Herr Oberschlau Theta hat sie natürlich.
Weil Du auch mal den Code 1:1 nachgebaut hast.
Ich glaube Du verscheißerst uns.
Was treibst Du da?
-
Weil Du auch die
<gl.h>
<glu.h>mal eben rumliegen hast?
Also ich habe beide nicht, aber der Herr Oberschlau Theta hat sie natürlich.
Weil Du auch mal den Code 1:1 nachgebaut hast.Ja, genau... habe den Code kopiert und noch die Bodies der Methoden geschrieben (nur Dummies). Ausserdem sind die besagten zwei Header aus dem Platform SDK von Microsoft 6.0A.
Simon
-
Simon, wahrscheinlich hast du auch ein Windows-Projekt angelegt oder??!!!
Habe oben doch geschrieben, dass die Fehler im Zusammenhang mit der windows.h. nur auftauchen, wenn man die Headerdatei in eine dll einbinden möchte...
-
Neo99 schrieb:
Simon, wahrscheinlich hast du auch ein Form-Projekt angelegt oder??!!!
Habe oben doch geschrieben, dass die Fehler im Zusammenhang mit der windows.h. nur auftauchen, wenn man die Headerdatei in eine dll einbinden möchte...
-
Auch in der DLL kompilierts ohne Probleme.
/clr Schalter ein und die Assemblies mscorlib.dll und System.Windows.Forms.dll eingebunden.
Edit
Ok, jetzt gehts ja. Wenn das Projekt eine C++/CLI ClassLibrary ist, dann gibt Compiler Errors... gucks mir an.Edit2
Nein, geht auch, wenn windows.h vor den beiden glx.h Headern eingeunden wird. Hast Du ev. noch ein using drin?
Hast Du ev. das System.Windows.Forms.dll Assembly nicht referenziert?Gruss Simon
-
Hey Simon,
ja das Projekt ist eine C++/CLI ClassLibrary.
Die von Dir genannten assemblies sind beide eingebunden...Bei mir läuft es nur,wenn ich die Headerdatei zur Visualisierung in die cpp des Projektes einbinde, was aber schlecht ist, denn ich möchte ein Objekt schon in der *.h des Projektes erstellen können...