AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dll Problem

Offene Frage von "mr.unbekannt"
Ein Thema von mr.unbekannt · begonnen am 19. Jun 2007 · letzter Beitrag vom 22. Jun 2007
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Dll Problem

  Alt 20. Jun 2007, 23:48
Zitat von nitschchedu:
Das geht viel leichter in dem ich PChar nehme gibts null Probleme.
Das gibt bei einem solchen kleinen Prog wohl keine Probleme, aber trotzdem ist das Beispiel murks. Du gibst als Result einen PChar zurück. Diesen erhälst du aus einer temporären Umwandlung eines Strings. Der String wiederrum ist eine lokale Variable und verliert somit ihre Gültigkeit mit verlassen der Procedure. Damit wird mit dem Rücksprung aus deiner DLL Procedure der String "test" ungültig und damit die von der temporären Umwandlung erzeugte PChar. Das der PChar vllt. noch richtig im Hauptprogramm ausgegeben wird bedeutet einfach nur, dass der Speicher wo die Daten des Strings "test" lagen noch nicht wieder erneut verwendet wurden. Das ist aber ein Spiel mit dem Feuer - da empfehle ich dir lieber Lotto, da sind die Gewinnchancen nicht so hoch, aber man hat bei einem Gewinn länger was davon als von dem Result deiner Funktion.

Der Code ist ein sehr gutes Beispiel wie man es nicht macht.

Frage dazu an dich, nitschchedu: Wenn dies so einfach ist, warum gibt es keine WinAPI Funktion welche einen PChar zurück gibt sondern alle wollen einen Buffer und dessen Grösse haben, den sie dann vollschreiben.

Grundlegend könntest du deinen Code auch schnell und simpel richtig gestalten: Deklariere die Variable "test" global in der DLL (somit verliert sie ihre Gültigkeit erst mit entladen der DLL).

EDIT: Ein Tutorial dazu welches alles nötige erklärt und aufzeigt wie man es machen könnte: Luckie's DLL String Artikel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz