| |
|
|
Clemens Meier | Soweit ich gelesen habe, sind verschachtelte Prozeduren nicht erlaubt. Verschachtelt heißt aber wohl, dass sich eine Prozedur innerhalb einer anderen befindet. Heißt verschachtelt auch, dass eine Prozedur von der anderen aufgerufen wird? Oder ist das erlaubt?
Prozeduren, die exportiert werden sollen, müssen statt mit proc mit dllproc definiert werden, da sie vermutlich anders verarbeitet werden. Wenn das Aufrufen von anderen Prozeduren innerhalb von DLL kein Problem ist, gestaltet sich der Aufruf von dllproc(eduren) genauso wie normale PROCs oder muss dabei etwas beachtet werden? |
|
|
| |
|
|
|
Sebastian König | Hallo Clemens,
[quote:38387d6e4f]Soweit ich gelesen habe, sind verschachtelte Prozeduren nicht erlaubt. Verschachtelt heißt aber wohl, dass sich eine Prozedur innerhalb einer anderen befindet. Heißt verschachtelt auch, dass eine Prozedur von der anderen aufgerufen wird? Oder ist das erlaubt? [/quote:38387d6e4f] Mit verschachtelt meine ich, wie Du richtig vermutet hast, nur die Definition einer Prozedur innerhalb einer anderen, also etwas in dieser Art: KompilierenMarkierenSeparieren Im Gegensatz zu (X)Profan (und z.B. Delphi) gibt es diese Möglichkeit in C++ nicht.
Aber: Erlaubt ist das ganze mit Profan2Cpp trotzdem! Bei der Übersetzung wird die Verschachtelung einfach (ok, ganz einfach ist es nicht ) aufgelöst. Oft ist es dabei eigentlich nötig (und Profan2Cpp schlägt es beim Erkennen von verschachtelten Prozeduren auch vor), die Option Alle Variablen global deklarieren zu aktivieren.
Der Grund dafür ist folgender: In dem obigen Beispiel-Code werden in der übergeordneten Prozedur die Variablen a% und b% deklariert. in der untergeordneten Prozedur werden sie allerdings auch benutzt. In (X)Profan kein Problem - in C++ nach der Auflösung der Verschachtelung jedoch schon. Wenn sie allerdings global zu Verfügung stehen ist alles in Ordnung .
[quote:38387d6e4f]Prozeduren, die exportiert werden sollen, müssen statt mit proc mit dllproc definiert werden, da sie vermutlich anders verarbeitet werden. Wenn das Aufrufen von anderen Prozeduren innerhalb von DLL kein Problem ist, gestaltet sich der Aufruf von dllproc(eduren) genauso wie normale PROCs oder muss dabei etwas beachtet werden?[/quote:38387d6e4f] Extra vorgesehen hatte ich diese Möglichkeit nicht (was man daran merkt, dass sich der Syntax-Check über eine nicht definierte Funktion beschwert ), aber eigentlich sollte es kein Problem sein. Ich habe es gerade mal mit dem Beispiel aus der Profan2Cpp-Hilfe probiert - funktioniert abgesehen von der Falschmeldung im Syntax-Check ohne Probleme...
MfG
Sebastian |
|
|
| |
|
|