Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Methoden Parameter-Rückgabe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.06.2022, 18:33 Uhr
machmalwas



Hallo an alle.

Ich bin ein C-Newbie und am lernen. (komme aus der vb,vba,vb.net Ecke).

In der Methode myText soll der Parameter ptrText als Rückgabeparameter fungieren.
Die Methode myText funktioniert auch, aber sobald sie nach main zurückkehrt ist der
Wert von ptrText NULL. (free() funktioniert dann auch nicht?)

Wo ist da mein Denk(programmier) Fehler?

In Google habe ich nur Beispiele gefunden die entweder int oder double Parameter
zurückgeben oder String als Rückgabe der Methode.

Umgebung: Windows 10, VS2019

Über Hilfe würde ich mich freuen.


C++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define LEN_NULLBYTE 1

//char* ptr;
int myText(char* txt);

int main()
{
  char* ptrText = NULL;      // Rückgabeparameter deklarieren.
  int ret = myText(ptrText);

  printf("%p\n", ptrText);

  free(ptrText);

  getchar();
  
  return 0;
}

int myText(char* ptrText)
{
  //Hier text evt. aus anderen Quellen einlesen und zusammenbauen.
  //Rückgabeparameter ptrText soll text sein.
  
  char *text = "Na das ist ja toll.";

  int lenText = strlen(text) + LEN_NULLBYTE;
  
  ptrText = (char *)malloc(lenText);
  strcpy_s(ptrText, lenText, text);

  return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.06.2022, 22:24 Uhr
f.-th.



https://www.amd.e-technik.uni-rostock.de/ma/rs/lv/smpi/malloc.pdf
Abschnitt 6 liest Strings aus der Kommandozeile, reicht es durch an die Funktion, die das Ergebnis an die Main zurückliefert.

Das ist nicht was du möchtest?

Musst du die Aufgabe in C lösen oder ist eine C++ Lösung am Ende angestrebt? Wenn C++, dann aktuelle C++ Möglichkeiten nutzen.

MfG
F.-Th.

Dieser Post wurde am 26.06.2022 um 22:25 Uhr von f.-th. editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.06.2022, 13:42 Uhr
machmalwas



Hallo F.-Th.
danke für dem Link, aber das ist nicht das was ich möchte.

Mein Beispiel ist vieleicht nicht ganz passend.
Ziel ist es eine WIN_DLL in Stil einer WIN_API zu erstellen und in anderen Anwendungen (MS-Office Excel) zu verwenden.

Fast alle Methoden der WIN API geben das Ergebnis als Parameter zurück.
Die Rückgabe der Methoden ist meist Erfolg oder Nichterfolg.

Warum in C?
Nun ja, in C++ ist das Verwenden von String's einfacher.
Ich möchte aber nicht nur wissen wie, sonderm auch warum etwas funktioniert.
Also rein Interessenhalber.

mfg
Harald
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.06.2022, 08:11 Uhr
f.-th.



C-Newbie und DLL, das ist schon heftig.

Je nach Compiler und Programmiersprache waren vor vielen Jahren viele kleine Nigligkeiten zu beachten. Ich hoffe das das heute etwas einfacher geht? Eventuell unterstützt deine IDE die DLL-Entwicklung etwas?

Hier ein ganz einfaches Beispiel:
[url]
https://stackoverflow.com/questions/15199806/how-to-export-an-array-from-a-dll
[/url]
Da sollte die DLL ein char-array zurück liefern.

Die Antwort im Link ist zwar C++ im MS-Stil. Die DLL sollte aber gleich sein? Das aufrufende Programm muss dann etwas geändert werden.


MfG
f.-th.

Dieser Post wurde am 30.06.2022 um 08:21 Uhr von f.-th. editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.07.2022, 22:20 Uhr
machmalwas



Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: