Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Zeiger von DLL an Hauptprogramm

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
29.06.2005, 09:00 Uhr
raiser999



Hallo ich habe in einer DLL mit folgende globalen Funktion
den Zeiger auf das Array a möchte ich zurück geben an das Hauptprogramm

DLL

C++:
MemberData* Test(CString value)
{
    MemberData a[100];
    a[0].key2="DLL";

    MemberData *mem;
    mem=a;
    return mem;
}



Hauptprogramm

C++:

LoadLibrary....
typedef MemberData*(*MYFUN14)(CString);
MYFUN14 pfun14;
pfun14=(MYFUN14) GetProcAddress(hMod, "Test");

// aufruf DLL
MemberData *mem;
mem= (pfun14) (_T("HALLO"));
CString a=mem->key2;                      // Funktioniert hier nicht

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.06.2005, 10:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du gibts einen pointer auf eine lokale Variable zurück, welche nach Verlassen der Funktion jedoch zerstört wird -> Pointer ungültig.

Mach es z.b so:


C++:
void Test(CString value, MemberData *mem)
{
    mem[0].key2="DLL";
}

LoadLibrary....
typedef  void(*MYFUN14)(CString);
MYFUN14 pfun14;
pfun14=(MYFUN14) GetProcAddress(hMod, "Test");

// aufruf DLL
MemberData mem[100];
(pfun14) (_T("HALLO"), mem);
CString a = mem[0].key2;


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.07.2005, 08:23 Uhr
raiser999



Achso stimmt ja

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: