ich möchte ein projekt von mir mit DLLs zu zB C exportierbar machen.
Dafür möchte ich mir ein Macro schreiben, damit ich die Prozeduren ganz normal nutzen (und debuggen) kann, solange ich entwickle. Sobald ich das Projekt erstelle sollen dann alle "Procedure" auf "ProcedureDLL" gesetzt werden.
Dafür folgender Code der in der DLL steht:
Code: Alles auswählen
#DEBUG = #true
CompilerIf #DEBUG = #true
Macro Procdll
Procedure
EndMacro
CompilerElse
Macro Procdll
ProcedureDLL
EndMacro
CompilerEndIf
Procdll test()
MessageRequester("hey",Str(#DEBUG))
EndProcedure
Code: Alles auswählen
OpenLibrary(0,"test.dll")
CallFunction(0,"test")
Es funktioniert eigentlich auch, allerdings passiert folgendes:
Setzte ich #DEBUG auf #true oder #false, und erstelle das ganze als DLL, kann ich die Funktion mit der Testdatei aufrufen.
Ersetze ich den Code manuell mit Procedure statt ProcDLL, so funktioniert das ganze nicht.
Ich möchte nicht riskieren einen fiesen Fehler im Grundaufbau zu haben.
Bonusfrage:
Was genau macht den Unterschied zwischen ProcedureDLL und ProcedureCDLL aus? Sind ProcedureCDLL ausschließlich von C lesbar und umgekehrt kann C nur diese lesen? (Ich weiss nicht, wie ich den Satz besser formulieren soll

Schonmal ein nettes Danke an alle die sich die Mühe machen