Makroname mit #PB_Compiler_Module

Anfängerfragen zum Programmieren mit PureBasic.
PeDre
Beiträge: 13
Registriert: 19.12.2014 11:22
Wohnort: Wien

Makroname mit #PB_Compiler_Module

Beitrag von PeDre »

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.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Makroname mit #PB_Compiler_Module

Beitrag von Bisonte »

Das Macro "DebugModule" wird aufgerufen, bevor es erstellt ist.
Aus "DebugModule#CurrentModule" mache "Debug#CurrentModule"
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
PeDre
Beiträge: 13
Registriert: 19.12.2014 11:22
Wohnort: Wien

Re: Makroname mit #PB_Compiler_Module

Beitrag von PeDre »

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
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Re: Makroname mit #PB_Compiler_Module

Beitrag von #NULL »

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.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten