Anfängerfragen zum Programmieren mit PureBasic.
PeDre
Beiträge: 13 Registriert: 19.12.2014 11:22
Wohnort: Wien
Beitrag
von PeDre » 09.03.2017 10:03
Ist es möglich mit einem Makro, ein Makro aufzurufen, das den aktuellen Modulnamen als Bestandteil des Namens verwendet.
Der Beispielcode ergibt einen Syntaxfehler, und das Ergebnis ist: DebugModule#PB_Compiler_Module
Peter
Code: Alles auswählen
DeclareModule DebugMacros
Macro DebugModule(CurrentModule)
DebugModule#CurrentModule ; #PB_Compiler_Module wird nicht aufgelöst.
EndMacro
Macro DebugModuleTool
#DebugOut = #True
EndMacro
Macro DebugModuleCommon
#DebugOut = #False
EndMacro
EndDeclareModule
Module DebugMacros
EndModule
DeclareModule Tool
EndDeclareModule
Module Tool
UseModule DebugMacros
DebugModule(#PB_Compiler_Module) ; Macro
;DebugModuleTool
Debug #DebugOut
EndModule
DeclareModule Common
EndDeclareModule
Module Common
UseModule DebugMacros
DebugModule(#PB_Compiler_Module) ; Macro
;DebugModuleCommon
Debug #DebugOut
EndModule
Zuletzt geändert von
PeDre am 09.03.2017 12:27, insgesamt 2-mal geändert.
Bisonte
Beiträge: 2430 Registriert: 01.04.2007 20:18
Beitrag
von Bisonte » 09.03.2017 10:58
Das Macro "DebugModule" wird aufgerufen, bevor es erstellt ist.
Aus "DebugModule#CurrentModule" mache "Debug#CurrentModule"
P ureB asic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
PeDre
Beiträge: 13 Registriert: 19.12.2014 11:22
Wohnort: Wien
Beitrag
von PeDre » 09.03.2017 12:09
Danke, aber dann werden die Modulnamen nur im Debugfenster ausgegeben.
Es sollte aber das jeweilige Makro mit dem Namen 'DebugModule_#PB_Compiler_Module_' aufgerufen werden.
Ich habe den Code oben geändert, damit sich der Modulname von dem Makronamen unterscheidet.
Vermutlich kann die Compiler-Konstante so nicht aufgelöst werden.
Peter
#NULL
Beiträge: 2235 Registriert: 20.04.2006 09:50
Beitrag
von #NULL » 09.03.2017 13:01
du müsstest den module namen direkt angeben.
Code: Alles auswählen
...
Macro DebugModule(CurrentModule)
DebugModule#CurrentModule
EndMacro
...
Module Tool
UseModule DebugMacros
DebugModule(Tool)
...
damit kannst du dann bestimmt auch ein macro names DebugModuleTool anlegen lassen, falls das der plan war.