C-Klasse in .Net-Projekt einbinden
-
Hallo Forum,
ich habe ein Problem beim Einbinden einer C-Klasse in mein Windows-Forms Projekt (C++/CLI). Beim Kompilieren tritt jedesmal ein Fehler bei den folgenden typedefs auf:typedef double (CALLBACK *gc) (int* Fluidindex,int* Constindex); typedef double (CALLBACK *gp) (int* cofnam,int* inpar1,double* valu1,int* inpar2,double* valu2,int* ovar,int* idid,int* iounit);
Fehler:
syntax error : missing ")" befor "*"
und ähnliches
Wenn ich die Klasse in ein normales C++-Projekt einbinde kompiliert sie ohne Probleme durch.
Woran kann das Liegen?Danke
Matthias
-
Ist denn CALLBACK im Kontext bekannt?
-
Wo ist denn hier eien "Klasse"?
-
CALLBACK ist in windef.h der Platform SDK definiert
#define CALLBACK __stdcall
die hatte ich nicht inkludiert, daher der Fehler.
Wenn ich ein
[/cpp]#include <windef.h>[cpp]
einfüge bekomme ich einen Fehler in der winnt.h der Platform SDK.
Ich als DOTNET-Kind finde diese Platform SDK mit ihren ganzen Präprozessor-Anweisungen total verwirrend.
Diese ganzen include-Dateien scheinen ja so aufeinander aufzubauen, daß ich nicht einfach windef.h includen kann. gibt es da eine andere include-Datei die mir alle defines die ich brauche mitgibt?Hier zur erklärung ein bisschen mehr Code:
CGPI.h:
[cpp]
#if !defined(AFX_GPI1_H__6E401579_BF70_42E3_9877_37F8608163B4__INCLUDED_)
#define AFX_GPI1_H__6E401579_BF70_42E3_9877_37F8608163B4__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#define gaspkdll
#include <vector>
typedef double (CALLBACK *gc) (int* Fluidindex,int* Constindex);
typedef double (CALLBACK *gp) (int* cofnam,int* inpar1,double* valu1,int* inpar2,double* valu2,int* ovar,int* idid,int* iounit);class CGPI
{
// ein paar Variablen
.
.
.
static gc gasconst;
static gp gascalc;
.
.
.
// viele Variablen und einige Funktionen
}
-
Hätte wohl mal Vorschau benutzen sollen
#if !defined(AFX_GPI1_H__6E401579_BF70_42E3_9877_37F8608163B4__INCLUDED_) #define AFX_GPI1_H__6E401579_BF70_42E3_9877_37F8608163B4__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define gaspkdll #include <vector> typedef double (CALLBACK *gc) (int* Fluidindex,int* Constindex); typedef double (CALLBACK *gp) (int* cofnam,int* inpar1,double* valu1,int* inpar2,double* valu2,int* ovar,int* idid,int* iounit); class CGPI { // ein paar Variablen . . . static gc gasconst; static gp gascalc; . . . // viele Variablen und einige Funktionen }
-
Das Problem hat sich erledigt.
Habe Windows.h included und jetzt sind alle Fehler verschwunden.
Vielen Dank, die CALLBACK-Frage war genau der Anstoß den ich gebraucht habe.
Schöne Grüße,
Matthias