Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Leute !

Ich brauche mal Eure Hilfe.

Wie kann ich ein CDatabase Objekt aus einer Funktion heraus zurück geben ?

Per Returnwert, Zeiger oder Referenz habe ich es leider nicht hinbekommen.

Ein Gleichzeichen wird nicht akzeptiert.

Gruß

Munkie

Hi Munkie, willkommen auf dem Board :D

Original geschrieben von Munkie

Per Returnwert, Zeiger oder Referenz habe ich es leider nicht hinbekommen.

Sollte aber funktionieren. Zeig uns mal ein wenig Code...

Ein Gleichzeichen wird nicht akzeptiert.
Ist das die Fehlermeldung des Compilers? ;)

So ungefähr sieht es aus ( ziemlich verkürzt ) sollte aber reichen.

***DateiX.h***

BOOL FAR PASCAL hole_Objekt(CDatabase *);

***DateiY.cpp***

#include <DateiX.h>

//Variable

CDatabase dbx;

//Funktion

BOOL FAR PASCAL hole_Objekt(CDatabase *db)

{

*db = dbx;

return 0;

}

***DateiZ.cpp***

#include <DateiX.h>

//Variable

CDatabase db;

//Funktionsaufruf

hole_Objekt(db);

****

Meldung -> 'CDatabase' : 'Operator =' ist nicht verfuegbar

Original geschrieben von Munkie

//Funktion

BOOL FAR PASCAL hole_Objekt(CDatabase *db)

{

*db = dbx;

return 0;

}

Der '=' Operator ist hier nicht überladen. Vielleicht reicht es das Handle zu übergeben. Wieviele Datenmember CDatabase nun wirklich hat und welche relevant sind weiss ich nicht.

*db->m_hdbc=dbx.m_hdbc;

Es macht auch nicht viel Sinn, in DateiZ.cpp eine Instanz von CDatabase zu erstellen, um sie dann gleich wieder durch eine andere zu ersetzen.

Folgender Vorschlag ist ohne Gewähr, weil ich die Lebenszeit von dbx nicht kenne:

***DateiX.h***

CDatabase& FAR PASCAL hole_Objekt();

***DateiY.cpp***

#include <DateiX.h>

//Variable

CDatabase dbx;

//Funktion

CDatabase& FAR PASCAL hole_Objekt()

{

return dbx;

}

***DateiZ.cpp***

#include <DateiX.h>

//Variable

CDatabase& db = hole_Objekt();

@Klotzkopp: Kling vernünftig..."normale" Rückgabe.

Es wird aber der BOOL-Rückgabetyp ausgeblendet. Vielleicht möchte er prüfen, ob die Übergabe auch "gelungen" ist. Leider fehlt eine entsprechende Prüfung...

Es fehlt Info, Info,Info.........;)

Das ist echt ein SUPER Forum... :)

Ich sitz an dem Problem schon etwas länger und jetzt keine 1,5 Stunden nach Eintrag in diesem Forum wurde es gelöst.

@Klotzkopp

Mit Deinem Vorschlag hast Du genau ins Schwarze getroffen. Es funktioniert einwandfrei.

Vielen Dank

@gugelhupf

Ich danke auch Dir aber Dein Vorschlag hat leider nicht funktioniert

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.