M
So, jetzt klappts. Wenn man in einem Projekt eine Klasse anlegt und diese dann verwenden möchte, so wie in meinem Fall in der Form.h (Projekt als Windows-FOrm-Anwendung), muß imme ein "Namespace" für diese Klasse angelegt werden, damit diese Klasse auch angewendet werden kann. Der Namespacebereich muß in der Headerdatei der Klasse angelegt werden
Ich bin folgendermaßen vorgegangen:
Neues Projekt anlegen-> von Visual Studio installierte Vorlagen "Klassenbibliothek" verwenden, Namen und Verzeichnis eingeben. Der Projektname wird dann auch der Namespace-Name.
Dann OK, und los gehts. Die EInträge in der .h und der .cpp in der Klassendefinition vornehmen. Siehe folgendes Muster
// FrParameter.h
#pragma once
using namespace System;
namespace FrParameter {
public ref class cFormDaten // public einfügen, damit die Klasse auch in anderen Projekten verfügbar ist
{
// Code für Klasse
};
}
Das gleiche gilt für die FrParameter.cpp, in der die Funktionsbeschreibung stattfindet, falls benötigt.
// Dies ist die Haupt-DLL.
#include "stdafx.h"
#include "FrParameter.h"
using namespace System;
namespace FrParameter {
public ref class cFormDaten
FrParameter::FrParameter(void)
{
// Konstruktor
}
// Code für die Funktionsbeschreibungen
}
Wenn das geschehen ist, muß der Code compiliert werden.
Dann liegt in dem Verzeichnis wo das Projekt erzeugt wurde in dem Verzeichnis ..\Debug die .DLL von der erzeugten Klasse.
Diese DLL kann jetzt über "Verweise" in Projekte eingebunden werden.
Wird jetzt ain neues Projekt angelegt oder ien bestehendes geladen, muß in der Projektmappe das Priojekt mit der Maus mit der rechten Maustaste gekllickt werden. In der Mitte des aufpoppenden Fensters gibts "Verweise..."
Da Drauf klicken, und dann die Schaltfläche "Neuen Verweis hinzufügen ..." klicken.
Ein neues Fenster poppt auf, dann oben den Reiter Projekte oder Durchsuchen verwenden, damit die Klasse gesucht werden kann oder direkt angewählt werden kann. OK klicken.
Nun sollte der Namespace schon einmal im Objektbrowser vorhanden sein.
Dann muß der
using namespace FrParameter;
eingebunden werden. Entweder bei der CLR-ANwendung direkt vor der mai()-Routine, oder bei der Windows-FOrm Anwendung bei den anderen Namespaces dazu gesellen.
Dann sollte es funktionieren.
Noch was, diese Anleitung steht in dem Buch "Visual C++ 2008" von Markt und Technik. ich finde das Buch genial, weil es relativ simpel erklärt, wie bestimmte Sachen funktionieren, und auch einfach die Elementaren DInge wie Lesen, Schreiben von Dateien ... drin sind.
Sollte ich was vergessen haben, kurz melden. Leiser kann man keine Bilder einfügen, sonst hätte ich noc ein paar Bilder reingedrückt, denn ein Bild sagt mehr als 1000 Worte.
So, ich hoffe ich kann nun auch anderen mit dieser PRoblemlösung helfen, nachdem ich Tage mit diesem Kackproblem verbracht habe.
Gruß
Moehrle