Wie kann ich eine Funktion einer ref class aus einer anderen class aufrufen?

Heinz Koeck 100 Zuverlässigkeitspunkte
2024-03-27T11:42:22.7766667+00:00

Hallo Forum;

ich möchte aus einer Klasse A eine Funktion aus der ref class Form1 aufrufen. Da ich aber den include für Form1.h nicht in A deklarieren kann weiß ich nicht wie ich das tun soll.

Hier eine einfache Darstellung:

Form1.h
include A.h
public ref class Form1 : public System::Windows::Forms::Form {
	...
	A a = A();
	a::getValue();

	void setText(string s);	<-- diese Funktion will ich aus A aufrufen
}

A.h
include "Form1.h"	<-- geht nicht, jede Menge Fehlermeldungen
class A {
	A()
	...
	getValue() {
		...
		Form1::setText("Text")		<-- geht natürlich nicht
		...
	}
}

Visual Studio
Visual Studio
Eine Familie von Microsoft-Sammlungen integrierter Entwicklungstools zum Erstellen von Anwendungen für Windows, das Web und mobile Geräte.
37 Fragen
C++
C++
Eine hochentwickelte, allgemeine Programmiersprache, die als Erweiterung der Programmiersprache C entwickelt wurde und neben den Möglichkeiten der Speicherbearbeitung auf untergeordneter Ebene auch objektorientierte, generische und funktionale Features bietet.
17 Fragen
0 Kommentare Keine Kommentare
{count} Stimmen

Akzeptierte Antwort
  1. Ivan Dragov (CONCENTRIX Corporation) 2,640 Zuverlässigkeitspunkte Microsoft-Anbieter
    2024-03-28T11:25:16.8966667+00:00

    Hallo Heinz,

    Public ref class ist eine Klasse, die Teil des verwalteten Codes ist, wie hier beschrieben:

    C++/CLI: Accessing a managed type from unmanaged code

    Der oben genannte Artikel beschreibt, wie die gcroot-Klasse verwendet wird, um GCHandle zu umschließen und auf diese Weise einen CLR-Verweis (verwalteter Code) im nicht verwalteten Speicher zu halten. Ein weiterer nützlicher Thread ist C++/CLI Cheat Sheet > Mixing native and managed types, der einen Link zum Artikel Passing native pointers C++/CLI boundaries enthält, in dem Du Beispiele für public ref class und nicht verwalteten Code findest.

    Gruß,

    Ivan Dragov

    Eine Person fand diese Antwort hilfreich.

0 zusätzliche Antworten

Sortieren nach: Am hilfreichsten

Ihre Antwort

Fragesteller*innen können Antworten als akzeptierte Antworten markiert werden, wodurch Benutzer*innen wissen, dass diese Antwort das Problem gelöst hat.