AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DLL Problem bei IntToStr und Uppercase
Thema durchsuchen
Ansicht
Themen-Optionen

DLL Problem bei IntToStr und Uppercase

Ein Thema von Jackie1983 · begonnen am 27. Jan 2009 · letzter Beitrag vom 28. Jan 2009
 
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

DLL Problem bei IntToStr und Uppercase

  Alt 27. Jan 2009, 13:08
servus,

habe mir eine kleine Testanwendung mit TJvInterpreterProgram gebaut.
Möchte die Procedure gerne in einer DLL auslagern, so kann ich mein Script immer wieder updaten ohne das die Anwendung neu kompiliert werden muss. Allerdings kommt bei uppercase ein Fehler

Delphi-Quellcode:
Type
  TScriptData = procedure(st : TScriptThread; Identifier: string; var Value: Variant; Args: TJvInterpreterArgs; var Done: Boolean); stdcall;// external 'Script.dll';

//...

procedure TScriptThread.Interpreter_GetValue(Sender: TObject;
  Identifier: string; var Value: Variant; Args: TJvInterpreterArgs;
  var Done: Boolean);
var
  Dll : THandle;
  DllPath : String;
  DLLScriptData : TScriptData;
begin
  DllPath := ExtractFilePath(ParamStr(0)) + 'script.dll';
  DLL := LoadLibrary(PChar(DllPath));

  try
    DLLScriptData := GetProcAddress(DLL, 'ScriptData');
    if Assigned(DLLScriptData) then
      DLLScriptData(self, Identifier, Value, Args, Done);
  except
    fErrorStr := 'Fehler beim Befehl <'+sIdentifier+'>';
    if Assigned(fonError) then
      fonError(fErrorStr, self);
  end;
  FreeLibrary(DLL);
end; //<- wenn uppercase in Identifier steht kommt hier der fehler
Meine DLL
Delphi-Quellcode:
library Script;

uses
  SysUtils,
  Classes, JvInterpreter, Tools_Scripte;

Procedure ScriptData(st : TScriptThread; Identifier: string; var Value: Variant; Args: TJvInterpreterArgs; var Done: Boolean); stdcall;
begin
  ///...

  Identifier := lowercase(Identifier);
  lCommands.Text := lowercase(lCommands.Text);
  done := not( lCommands.IndexOf(Identifier) = -1);

  if Identifier = 'uppercasethen Value := Uppercase(Args.Values[0]);

  //Konsole
  if Identifier = 'konsolethen st.OutKonsoleP(Args.Values[0]);
end;

exports
  ScriptData;

begin
end.
Der Befehl Konsole funktioniert. Nur bei uppercase kommt eine Fehlermeldung.
Kann mir da einer weiterhelfen? Habe bestimmt irgend wo einen Fehler gemacht.

mfg
  Mit Zitat antworten Zitat
 


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 00:49 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 by Thomas Breitkreuz