Vorkompiliertes Skript in RemObjects Pascal Script laden (Delphi)

8

Ich versuche ein vorkompiliertes RemObjects Pascal-Skript zur Laufzeit in Delphi zu laden. Allerdings, wenn ich versuche, es zu laden, schließt Delphi mit "Kann VALUE_TEAMCODE nicht importieren." Value_TeamCode ist eine Funktion in meiner Delphi-App, die ich bereits bei Pascal Script registriert habe.

Hier ist was ich mache. Grober Pseudocode unten - der tatsächliche Code ist auf mehrere Dateien aufgeteilt. Auch der Aufruf von SetCompiled tritt viel später in der App auf, wenn das Skript ausgeführt werden muss.

Hinweis zum Code:    FPascalScript ist ein TPSScriptDebugger

%Vor%

Vielleicht mache ich das falsch. Ich bin mir nicht sicher, ob es überhaupt möglich ist, ein vorkompiliertes Skript zu laden.

Ich habe auf RemObjects WebSite Wiki gesucht, aber die Pascal Script Hilfe wurde gelöscht. Ich habe auch verschiedene Themen auf StackOverflow durchsucht, aber keine scheint mit diesem Problem zu tun zu haben.

Nur noch eine Anmerkung. Ich habe bereits Skripts, die zur Laufzeit ohne Probleme kompiliert und ausgeführt werden. Ich muss aus Leistungsgründen vorkompilieren.

Jede Hilfe wird geschätzt.

Aktualisierung:

Die aktuelle Arbeit besteht darin, eine Skript-Engine pro Skript in meinem System zu haben. Diese Engines bleiben dann nach der Vorkompilierung im Speicher. Dies entfernt den 30 ms pro Skriptkompilierungsaufwand, den ich sonst habe. Es verwendet auch etwas mehr Speicher, aber nicht genug, um ein Problem zu sein.

Ich würde immer noch lieber nur die eine Skript-Engine verwenden (daher muss ein vorkompiliertes Skript geladen werden)

    
Peter Mayes 14.06.2013, 05:16
quelle

2 Antworten

1

Dank einer Antwort auf RemObject Connect Beta Forum habe ich eine Lösung. (Für den Beitrag siehe Ссылка )

Dank geht an Poster vovanl.

Ich musste meine Funktionen über das OnExecImport-Ereignis wie folgt importieren:

%Vor%

Es scheint, dass SetCompiled alle vorhandenen Registrierungen löscht und Sie MÜSSEN OnExecImport einhängen, um Funktionen, Prozeduren, Methoden usw. neu zu registrieren.

Beachten Sie, dass das Laden eines vorkompilierten Skripts (dh das Ändern eines Skripts für ein anderes) scheinbar zusätzlichen Zeitaufwand verursacht. Ich habe festgestellt, dass meine anfängliche Arbeit in der Tat um etwa 6 mal schneller ist.

    
Peter Mayes 18.06.2013, 02:13
quelle
0

Statt wie dies zu tun, werde ich mit warum kontern?

Kompilierte Skripte werden wahrscheinlich versionsbegrenzt sein, wahrscheinlich sogar plattform- / zielgebunden - und sie kompilieren normalerweise schnell genug, so dass Sie die Zeit nicht bemerken. Verwenden Sie die Skripte wirklich intensiv genug, dass die Kompilierzeit ein Problem ist?

Manchmal ist die beste Antwort: "Musst du das wirklich tun?"

    
account deleted 14.06.2013 07:33
quelle

Tags und Links