Prozedur als Rückgabe einer ProcedureCDLL

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
LukasBanana
Beiträge: 150
Registriert: 14.03.2007 19:13
Kontaktdaten:

Prozedur als Rückgabe einer ProcedureCDLL

Beitrag von LukasBanana »

Hi, ist schon lange her, dass ich hier im Forum war :-)
Aber jetzt habe ich doch mal wieder eine Frage bzgl. PureBasic:

Ich will eine DLL schreiben, und in einer ProcedureCDLL die Adresse einer anderen Prozedur zurückgeben.
Geht das überhaupt in PB? Wenn ja, wie?

Die Schnittstelle für DLLs ist ja sehr an C angelehnt, daher auch "ProcedureCDLL".
In C++ sähe mein Vorhaben z.B. so aus:

Code: Alles auswählen

// Irgend eine Struktur
struct MyStruct { /* ... */ };

// Die Funktions-Schnittstelle "PROC_INTERFACE"
typedef void (*PROC_INTERFACE)(MyStruct argument);

// Die Funktion, deren Adresse zurückgegeben werden soll
void some_internal_procedure(MyStruct argument) {
    /* do something useful ... */
}

// Die Funktion in der DLL, die mir die Adresse einer (oder mehrerer) interner Prozeduren liefern soll
extern "C" __declspec(dllexport) PROC_INTERFACE get_a_procedure() {
    return some_internal_procedure;
}
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Prozedur als Rückgabe einer ProcedureCDLL

Beitrag von ts-soft »

ProcedureReturn @MyFunction()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Prozedur als Rückgabe einer ProcedureCDLL

Beitrag von RSBasic »

@LukasBanana
Welcome back. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten