Author Topic: Update  (Read 15263 times)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5013
  • O Rly?
    • View Profile
Update
« Reply #30 on: 2007-Aug-01 »
Aber import macht dann ja nichts anderes als Declare oder liege ich da falsch?

also nochmal grundsätzlich:

Code: GLBasic [Select]
// Programm : DLL-Test
EXPORT Test // Nur um die DLL zu erstellen !

WHILE TRUE    
    // GLBasic Code
SHOWSCREEN
WEND
END

FUNCTION Test: X,Y
    E = X+Y
    RETURN E
ENDFUNCTION

// Weil mans braucht.....
FUNCTION foo:
ENDFUNCTION

INLINE
    Declare(Test,"DLL-Test.dll",(int,int),int);
    If(Test){

    Test(10,30);
    }
ENDINLINE
Ist das so im Groben richtig?
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Update
« Reply #31 on: 2007-Aug-01 »
so wie ich das jetzt verstanden habe, ja. Nur natürlich nicht alles in einem Quellcode

1. DLL erstellen
Code: GLBasic [Select]
EXPORT test

FUNCTION test: x, y
  RETURN x + y
ENDFUNCTION
2. Aufruf im programm
Code: GLBasic [Select]
IMPORT "test.dll", test: x, y

PRINT test(10, 15)
SHOWSCREEN

Offline tft

  • Mr. Polyvector
  • ***
  • Posts: 132
    • View Profile
Update
« Reply #32 on: 2007-Aug-01 »
Hi ...

IMPORT_DLL("LIBNAME.DLL";"FUNKTIONNAME",par1 as Int, par2 as Int, par3 as float,return as int)

Var=CALL_DLL("FUNKTIONNAME",par1,par2,par3)

Die anzahl Parameter wird durch den IMPORT festgelegt, und CALL_DLL wird beim Compilieren auf gültigkeit geprüft.

Solte eigentlich nicht so schwer sein. Ansonsten schau dir doch mal GFABASic an, Das gibts jetzt umsonst.

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
Update
« Reply #33 on: 2007-Aug-01 »
hmm ich find die möglichkeit von c++ in nem basic ganz klasse. weiß gar nicht was ihr habt. und vorallem so eine devumgebung wie glbasic sie ist schafft ihr nichmal in 20 jahren zusammenzuschustern ;)
was ich damit sagen will ist ganz einfach das glbasic eine offene basic variante ist, die durch INLINE erweitert werden kann. ich hab damit auch schon reine c++ anwendungen gemacht trotzdem blieb es einfach. also nich meckern.

zum anderen will ich gern mal die mac os x sache ansprechen (ich arbeite noch am cross compiler der will aber libjava nich) wäre es nicht möglich eine umgebung auch auf dem mac zu machen? praktisch die ide und einen mac compiler bzw den von xcode. denn nicht jeder mac user wird einen intel mac haben oder einen win pc. das wäre noch ein anlaufpunkt für die mac entwickler.

zu der funktion die die dll laden soll, bin ich für die IMPORT foo: param1, param2 für glbasic funktionen. für c++ funktionen sollte man entweder ne erweiterte IMPORT funktion haben in dem man den typ mit angeben kann oder halt das DECLARE lassen.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10689
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Update
« Reply #34 on: 2007-Aug-01 »
Danke turricade. Sehe ich auch so mit IMPORT/DECLARE. Auch wenn's bisserl verwirrt.  Evtl. mache ich beim Erstellen einer DLL einfach eine gbas Datei, die man blos dazupacken muss. Wäre ja auch leicht.

Die IDE unter Mac ist unmöglich. Die ist in MFC gemacht und hat ewig viel Arbeit gekostet. Evtl. bekommt man's mit WINE hin, aber da flippt der Compiler derzeit noch aus. :/

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
Update
« Reply #35 on: 2007-Aug-01 »
Problem mit wine ist einfach nur die das man auf dem ppc kein x86 code emulieren kann. somit scheidet das aus. eine ide könnte ich dir im cocoa framework zaubern jedoch müsstest du den rest machen. würde dir mein ibook zur verfügung stellen (per remote tag und nacht).

p.s. was habt ihr alle heute mit meinen namen? ich schrieb heute ne mail mit meinem namen unter und bekamm als antwort dann: Sehr geehrter Herr Tohnnaagel....
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5013
  • O Rly?
    • View Profile
Update
« Reply #36 on: 2007-Aug-01 »
Tohnnagel LOL

Mach dir nix draus, geht mir täglich so, obwohl ich nen aus Deutschland stammenden Namen habe.... Mein alter Herr dreht da immer voll am Rad... :D
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline tft

  • Mr. Polyvector
  • ***
  • Posts: 132
    • View Profile
Update
« Reply #37 on: 2007-Aug-01 »
Hi ...

@trucidare .... du hast sicher recht. Es ist halt wichtig welche Ziehlgruppe  @GernotFrisch
ansprechen will. Wenn er einen Hybriden mit der recht gewöhnungs bedürftigen C++ Architekture machen will. Ist das OK. Ich als reiner Basic verwender (Und Registrierter benutzer), brauche andere dinge als jemand der GLBasic als reine lowlevel SDK benötigt, und andere dinge sowiso in C++ macht. In Basic ist die vorgehensweise so wie @Quentin vorgeschlagen hat, am einfachsten für den anwender. Und @GernotFrisch hat sich an die Fahne geschrieben mit GLBasic eine leichte Sprache zu kreiren. Ich weis das es nicht einfach ist die ständigen Wünsche der anwender zu befriedigen. Aber kompliziert kann man es auch mit GNU C haben. Es gibt da eine Lektüre. Die da heist. STANDART OF BASIC.
Ich möchte damit die leistung von @GernotFrisch keinesfals schmälern. Aber er muss halt stellung beziehen damit kommende Kunden wissen woran sie sind.
Ich weis das er daran arbeiten wird wenn es einen machbaren Weg für ihn gibt. War ja bissher immer so. Also ... weiter so @GernotFrisch

MfG Turgut Temucin alias TFT

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1061
    • View Profile
    • http://www.deuteriumoxid.com
Update
« Reply #38 on: 2007-Aug-05 »
GLOBAL Var AS Tdll_loader // Tdll_loader ist ein Interner Type von GLB



Var = loaddll("test.dll") // Loaddll ist eine function vom Type Tdll_loader
                           //und gibt auch diesen TYPE zurück
                           
                           
PRINT Var.name$, 10,10 //Ausgabe vom dll Namen
PRINT Var.anzahl, 10,10 //Ausgabe der anzahl der vorhandenen Funktionen
PRINT Var.func_name$[0], 10,10 //Ausgabe des Functionsnamen mit benötigten Argumenten und rückgabe
                     //Z.B: erste ist er name, letzte die rückgabe, mitendrin die Argumente
                     //math, int,int,float,float

//Functions aufruf

test = Var.run("name der Function",Argument1,Arg2)// Aufruf der function

PRINT test,10,100
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5013
  • O Rly?
    • View Profile
Update
« Reply #39 on: 2007-Aug-05 »
o.O
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1061
    • View Profile
    • http://www.deuteriumoxid.com
Update
« Reply #40 on: 2007-Aug-05 »
ich mach nicht soviel mit dll, sorry :)
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10689
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Update
« Reply #41 on: 2007-Aug-06 »
Das geht so nicht, weil die DLL nicht weiß welche Argumente eine Funktion hat - nur den Namen.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5013
  • O Rly?
    • View Profile
Update
« Reply #42 on: 2007-Aug-06 »
Noch mal eine bitte an Gernot:

Mach doch mal ein Beispiel wie man eine Simple Function exportiert, und dann die DLL lädt... aber bitte ganz simpel.
Kann ja nur eine Addition beinhalten oder so, reicht ja.... *LIEBGUCK* :D
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1665
    • View Profile
    • http://lostrevenant.blogspot.com
Update
« Reply #43 on: 2007-Aug-06 »
Schließe mich Schranzi an! Bin auch neugierig, wie's funktioniert!!!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10689
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Update
« Reply #44 on: 2007-Aug-06 »
Das ist noch richtig Beta. Ich mach ganz klar ein Beispiel, wenn's läuft.