macro problem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: macro problem

Beitrag von STARGÅTE »

Bei einer Userlib lädtst du ja nichts mehr ein, weil es ja zu kompilerzeiten eingebunden wird.

Du kannst dann Beispiel(@Test, 123) sofort nutzen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: macro problem

Beitrag von ts-soft »

Bisonte hat geschrieben:Braucht man das mit dem Import auch wenn es sich nur um eine Userlib handelt ?
Eine UserLib wird durch verwendung der enthaltenen Funktionen Importiert, ein explicieter Import ist nicht nötig / möglich!
Bisonte hat geschrieben: (Ich hatte DLL gesagt, weil es sich ja laut PBHilfe programmiertechnisch um das gleiche handelt)
Ich glaube nicht, das so etwas in der Hilfe steht :wink:
Es gibt sehr viele Unterschiede zwischen einer UserLib und einer DLL. Sind zwar alles Feinheiten,
aber darüber sollte man sich im klarem sein.

Gruß
Thomas

PS: passt hier im alten Thread doch etwas besser
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: macro problem

Beitrag von Bisonte »

ts-soft hat geschrieben:Es gibt sehr viele Unterschiede zwischen einer UserLib und einer DLL.
Naja es wird immer im gleichen Atemzug genannt, daher meine Aussage.

Ok wenn es denn so ist, dann hab ich es wohl geschnallt...

Danke für die Mühen die ich gemacht hab... und sorry für das shanghaien des Threads ;)
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​​
kevv
Beiträge: 31
Registriert: 28.11.2010 15:52

Re: macro problem

Beitrag von kevv »

Code: Alles auswählen

Procedure A1(C)
  ;c=10
  
  Debug C
  ProcedureReturn Wert*100
EndProcedure

Procedure A2()
   Debug "A200"
EndProcedure

Prototype Beispiel()

Structure ProzedurListe
   Beispiel.Beispiel[10]
EndStructure

Define ProzedurListe.ProzedurListe
ProzedurListe\Beispiel[1] = @A1()
ProzedurListe\Beispiel[2] = @A2()

; Nun kannst du sowas machen:

A$ = "2"


Debug ProzedurListe\Beispiel[Val(A$)]()

;ProzedurListe\Beispiel[2-1]()
Und wie kann man hier parameter an die structure übergeben
Und return auslesen?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: macro problem

Beitrag von STARGÅTE »

"ganz normal" wie du es auch bei einer Prozedur machen würdest.

Zu beachten ist nur, dass die Definition bei Prototype exakt mit der Prozedur-Definition übereinstimmen muss.

Code: Alles auswählen

Procedure.s A1(A.i, B.s)
  ProcedureReturn B+" "+Str(A)
EndProcedure

Procedure.s A2(A.i, B.s)
  ProcedureReturn Str(A)+". "+B
EndProcedure

Prototype.s Beispiel(A.i, B.s)

Structure ProzedurListe
   Beispiel.Beispiel[10]
EndStructure

Define ProzedurListe.ProzedurListe
ProzedurListe\Beispiel[1] = @A1()
ProzedurListe\Beispiel[2] = @A2()



Debug ProzedurListe\Beispiel[Val("2")](12, "Platz")
Debug ProzedurListe\Beispiel[1](12, "Platz")
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
kevv
Beiträge: 31
Registriert: 28.11.2010 15:52

Re: macro problem

Beitrag von kevv »

ahhh ok
hatte einen Fehler drin, aber so gehst
Danke!
Antworten