| |
|
|
Clemens Meier | Ich wollte meine erste DLL mit der Vollversion erzeugen und bekam (logischerweise ) folgende Fehlermeldung: KompilierenMarkierenSeparieren Entsprechende Zeilen in der CPP: KompilierenMarkierenSeparieren Offenbar wird bemängelt, dass diese Variablen nicht deklariert wurden. In Profan sind alle deklariert und der Test mit dem Inspektor ergab keine Fehler. Ich benutze p2cpp 1.5a
Gruß |
|
|
| |
|
|
|
Clemens Meier | Was mir gerade auffällt ist: Es gibt zwei Prozeduren, in beiden werden Variablen deklariert, die teilweise die gleichen Bezeichnungen haben. Die erste Prozedur wird korrekt übersetzt, erst in der zweiten Prozedur werden die Fehler gemacht. Ggf. nimmt p2cpp an, es handle sich um die gleichen Variablen und deklariert sie nicht mehr neu, bzw. setzt kein Variablentyp voran. |
|
|
| |
|
|
|
Sebastian König | Hallo,
hmm... mal gucken, was da schiefläuft. Normalerweise sollte es kein Problem sein, wenn Variablen mit gleichen Namen in verschiedenen Prozeduren benutzt (ist ja eigentlich völlig normal und kommt sicher häufig vor...)
Kannst Du einen kurzen Testcode posten, mit dem sich das Problem nachvollziehen lässt?
Danke,
Sebastian |
|
|
| |
|
|
|
| Sorry, er zeigt das hier jetzt als Gast an, da ich mich in einem zweiten Browser-Fenster versehentlich vor dem Abschicken ausgeloggt hatte -- Sebastian
Ich glaube, ich habe eine mögliche Ursache für das Problem gerade gefunden:
Enthält Dein Code verschachtelte Prozeduren? Also so etwas wie KompilierenMarkierenSeparieren Normalerweise erkennt Profan2Cpp dies und schlägt vor, für die Übersetzung des Codes die Option Alle Variablen global deklarieren zu aktivieren.
Gerade fiel mir jedoch auf, dass die Verschachtelung in manchen Situationen offenbar nicht erkannt wird - wann genau und woran das liegt, habe ich leider noch nicht herausgefunden
Funktioniert es denn korrekt, wenn Du in den Übersetzungsoptionen Alle Variablen global deklarieren manuell aktivierst? |
|
|
| |
|
|
|
Clemens Meier | Nein, es gibt keine verschachtelten Prozeduren. Ob es mit global deklarierten Variablen geht, kann ich nicht sagen. Ist aber wohl auch nicht relevant. Die Prozeduren laufen unter XProfan ohne Problem, durchlaufen den Inspector ohne Fehlermeldung und auch bei der Übersetzung zu CPP werden keine Fehler gemeldet. Erst bei der Compilierung gibt es die Probleme. Das CPP zum laufen zu bringen wäre nicht schwierig, man kann die fehlende Deklaration ja nachholen, doch damit ist das Problem mit p2cpp noch nicht gelöst.
Man behebt keinen Bug, indem man ihn umgeht
P.S.: habe dir den kompletten prf-Code per E-Mail geschickt. |
|
|
| |
|
|
|
Sebastian König | Hallo Clemens,
danke für den Code! Ich konnte damit die Ursache glücklicherweise schnell finden Es lag an einem blöden Fehler beim Erkennen von lokalen Variablen - in der nächsten Version wird das Problem behoben sein.
BTW: Mit dem Aktivieren von Alle Variablen global deklarieren funktioniert es auch korrekt. [quote:d147f65a14]Man behebt keinen Bug, indem man ihn umgeht [/quote:d147f65a14] Da stimme ich Dir selbstverstänglich grundsätzlich zu! Wenn Dir der Alle global...-Workaround nicht genügt, melde Dich bitte nochmal per eMail bei mir
MfG
Sebastian |
|
|
| |
|
|