Seite 1 von 2
IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 15:51
von GPI
Ich versuche gerade ein selbstgeschriebenes Programm in Tools-Menü unterzubringen. Wenn ich es in Finder starte, wird es geöffnet. Wenn ich in Tool-Menü es eintrage passiert überhaupt nichts. Keine Fehlermeldung kein irgendwas. Egal welchen Trigger (Menüeintrag, vor den Compilen oder sonstwo eintrage.
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 17:42
von mk-soft
Ist ein bischen blöd bei MacOS. Must den Path zur APP manuell anpassen
Etwa so:
Path "... /Applications/MyApp.app/contents/MacOS/MyApp"
Wie bei diesen tool
http://www.purebasic.fr/english/viewtop ... =myappdata
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 19:10
von GPI
Danke das hilft.
Dafür hab ich gerade gelernt, das dylib in der Datasection kein @Procedure() haben dürfen. Der Linker steigt hier aus....
Blöd, das mein PreCompiler das als Basis für alles hat....
Und blöd auch, dass das MAC-IDE die Windows-IDE einstellungen nimmt und damit natürlich nicht klar kommt.
Und blöde groß/kleinschreibung
und blödes mac-tastaturlayout
alles blöd
<schulterzuck> naja, ich schreib mal weiter...
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 20:07
von mk-soft
Ist noch ein Bug in Purebasic.
Es geht keine DyLib zu erstellen...
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 20:29
von GPI
Also DyLib kann ich problemlos erstellen. Funktionieren auch so wie erwartet. Auch der Code außerhalb der Proceduren wird eingesammelt und beim laden der dylib automatisch ausgeführt.
das einzige, was nicht geht, ist eine DATASECTION mit einen @Procedure() - das gibt einen Linkerfehler.
aus bspw.
Code: Alles auswählen
ProcedureDLL __Get_vt_New()
ProcedureReturn ?vt_new
DataSection
vt_new:
Data.i @ObjectNew(),@ObjectNew(),@ClassFree(),@ClassCopy(),@ClassIsClass(),@ClassIsAccessable()
EndDataSection
EndProcedure
muss man bspw. sowas machen
Code: Alles auswählen
Structure __Get_vt_New
*new1
*new2
*free
*copy
*isClass
*isAccessable
EndStructure
ProcedureDLL __Get_vt_New()
Static vt.__Get_vt_New
If vt\new1=0
With vt
\new1=@ObjectNew()
\new2=@ObjectNew()
\free=@ClassFree()
\copy=@ClassCopy()
\isClass=@ClassIsClass()
\isAccessable=@ClassIsAccessable()
EndWith
EndIf
ProcedureReturn vt
EndProcedure
Ob die dylib lauffähig ist, muss ich noch testen. Generell ob das alles, was ich in Windows so gemacht hab, jetzt noch geht
Und rate mal, was mir gerade passiert ist, als ich ein @ machen wollte....
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 20:46
von mk-soft
Bei mir habe ich das Problem gefunden.
Purebasic mag keine Leerzeichen im Ordner
Leg mal deine DataSection ausserhalb der Procedure.
Das hier funktioniert. Hatte ich zum testen mal schnell geschrieben.
Code: Alles auswählen
;-TOP
Procedure fcA()
ProcedureReturn 1
EndProcedure
Procedure fcB()
ProcedureReturn 2
EndProcedure
ProcedureDLL fcList()
ProcedureReturn ?MyFC
EndProcedure
DataSection
MyFC:
Data.i @fcA()
Data.i @fcB()
EndDataSection
Test
Code: Alles auswählen
Prototype protoInvoke()
Structure udtfcList
fcA.protoInvoke
fcB.protoInvoke
EndStructure
If OpenLibrary(0, "MyLib.dylib")
*fcList.udtfcList = CallFunction(0, "fcList")
Debug *fcList\fcA()
Debug *fcList\fcB()
Else
Debug "Fehler DyLib"
EndIf
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 20:50
von mk-soft
Und rate mal, was mir gerade passiert ist, als ich ein @ machen wollte....
Quit
Habe jetzt eher das Problem das ich das '@' bei windows nicht immer sofort finde...
Alt == AltGr
@ = Alt+L
\ = Alt+Shift+7
| = Alt+7
[ = Alt+5
] = Alt+6
~ = Alt+n
P.S.
Muss mich getäuscht haben. So geht es nur. Muss ein Bug sein.
Code: Alles auswählen
;-TOP
Procedure fcA()
ProcedureReturn 1
EndProcedure
Procedure fcB()
ProcedureReturn 2
EndProcedure
ProcedureDLL fcList()
Static Dim fc(1)
fc(0) = @fcA()
fc(1) = @fcB()
ProcedureReturn fc()
EndProcedure
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 22:04
von GPI
edit:
hmm... jetzt wirds interessant. Die mein dylib wird erstellt, ist aber leider ungültig
beim laden schmierts ab....
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 22:34
von mk-soft
Code immer in Prozeduren kapseln...
Re: IDE-Tools - Keinerlei Funktiontion
Verfasst: 25.09.2017 22:44
von GPI
das war nicht das Problem, sondern das ich einmal .integer statt \i geschrieben hab....
Jetzt bleibt mir ein Problem: Wo sucht standardmäßig macos nach einer dylib.... Mit fixen pfad klappt das wunderbar. aber dann darf die sich nicht verschieben. Morgen nochmal anschauen
Unter Windows ist das ganze Thema so viel leichter...