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: 2430
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.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

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: 2235
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