Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Schutzrechtsverletzung beim Programmende

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
10.01.2005, 13:24 Uhr
BartS



Hallo zusammen,

ich habe ein etwas kniffliges Problem, ohne klares Fehlerprofil.

Und zwar hab ich in eine Klasse folgende static Funktion:


C++:
static std::string trimXYZ()
{
    return "abc";
}


Eigentlich macht die Funktion mehr aber ich hab zur Fehlersuche sie soweit reduziert, wobei der Fehler immer noch auftritt.

Rufe ich die Funktion im Programm irgendwann mal auf, geht alles. Nur beim Beenden des Programms kommt es zu einer Schutzrechtsverletzung. Rufe ich die Funktion nie auf, passiert dies nicht und alles läßt sich problemlos beenden.

Lasse ich mir von der Funktion anstatt eines strings einen int zurückgeben, kommt es ebenfalls NICHT zur Schutzrechtsverletzung beim Schließen des Programms.

Ich kann mir das alles nicht erklären und sitze schon so lange an dem Problem, dass mir vielleicht der Blick für die klare Lösung abhanden gekommen ist.

Wißt ihr da Rat?

Habt vielen Dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.01.2005, 21:53 Uhr
typecast
aka loddab
(Operator)


Koenntest du mal den aufruf posten?

Ich hab das gerade bei mir ausprobiert und es funktioniert einwandfrei.

Mein Testprogramm:


C++:
#include <string>

static std::string trimXYZ()
{
        return "abc";
}

int main() {
        std::string tmp = trimXYZ();
        return 0;
}




Funktioniert das Programm bei dir?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.01.2005, 14:09 Uhr
BartS



Ja, das Programm läuft so ... nur ist bei mir der Aufruf innerhalb einer größeren DLL für ein andere Programm. Mittlerweile glaube ich ,dass der Fehler gar nicht da liegt, sondern irgendwo anders was mit der Speicherfreigabe nicht rund läuft und der Funktionsaufruf das nur indirekt bedingt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.01.2005, 14:11 Uhr
(un)wissender
Niveauwart


So wird es sein.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.01.2005, 17:17 Uhr
stephanw
localhorst


Wenn Du einen std::string wie bei Dir von einer DLL in ein Programm übergibst oder umgekehrt, kommt es z.B. dann zu Problemen, wenn Programm und DLL mit verschiedenen Compilern und / oder verschiedenen Versionen der Standardbibliothek übersetzt wurden (--> keine Binärkompatiblität).

Ich hatte auch schon einen Fall, wo DLL und Hauptprogramm in einem Workspace zusammen übersetzt wurden, trotzdem Crash. Möglicherweise waren verschiedene Einstellungen Schuld daran oder es war noch ein anderer Fehler, keine Ahnung.
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.01.2005, 20:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


immer char* für deine dll-funktionen nehmen, ist besser in der hinsicht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.01.2005, 09:46 Uhr
stephanw
localhorst


Ja! Wobei es natürlich kein befriedigender Zustand ist, für ein Programm keine STL in Schnittstellen benutzen zu können, nur weil es in verschiedene DLLs aufgeteilt ist oder mit solchen arbeitet.
--
Reden ist Schweigen und Silber ist Gold.
 
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: