Seite 1 von 1

Externe DLL/Lib importieren

Verfasst: 20.10.2010 05:46
von Oliver13
Hallo zusammen,

es gibt ja einige interessante und kostenlose Customcontrols, die als LIB bzw. DLL vorliegen und ich weiß, daß man diese dann grds. mittels IMPORT auch in Purebasic nutzen könnte.

Interessant wären beispielsweise
http://www.codeproject.com/KB/library/cuctrl.aspx
http://www.codeproject.com/KB/list/html_listctrl.aspx
http://www.codeproject.com/KB/cpp/ProgressTaskList.aspx

Nun geht es aber schon los:
mit welchem Tool erstelle ich die erforderlichen Deklarationen der in der Lib enthaltenen Funktionen bzw. wandele die vorliegenden .h (in C) um nach Purebasic ?

Und wenn es dann importiert ist - wie kann ich so ein Control dann als Gadget in PB nutzen ?

Wäre super, wenn mir da jemand einen Tipp hätte oder vielleicht sogar ein obiges Control exemplarisch für alle in ein Projekt umsetzen könnte.

Danke + viele Grüsse
Oliver

Re: Externe DLL/Lib importieren

Verfasst: 20.10.2010 16:36
von mbuettner
Funktionen einer DLL kann man mit Prototypes aufrufen (siehe Hilfe), wenn du die .h-Datei der DLL hast, dann kannst du nach Funktionen wie z.B.

Code: Alles auswählen

int quardrat ( int a ) {
  return a * a;
}
oder

Code: Alles auswählen

void sagWas ( const char* Text ) {
  MessageBox(0,Text,"Hallo von der MessageBox!",MB_OK)
}
suchen und dann die erste Zeile (z.B. int quadrat ( int a )) in PureBASIC folgendermaßen schreiben:

Code: Alles auswählen

Prototype Quadrat( Zahl.i )
; oder
Prototype sagWas (Text.s)
Diese dann folgendermaßen benutzen:

Code: Alles auswählen

OpenLibrary(0,"DeineDLL.dll")
quadrat.Quadrat = GetFunction(0,"quadrat")
quadrat(2)
;bzw
nachricht.sagWas = GetFunction(0,"sagWas")
nachricht("Hallo")
Eine andere Alternative wäre natürlich noch CallFunctionFast, was ich aber jetzt hier nicht beschreibe, da Prototypes (anscheinend) die bessere Möglichkeit ist.

P.S: Du kannst mir die .h-Datei schicken, ich kann die Funktionen heraussuchen, wenn du willst.

Re: Externe DLL/Lib importieren

Verfasst: 20.10.2010 16:40
von Bisonte
mbuettner hat geschrieben:Eine andere Alternative wäre natürlich noch CallFunctionFast, was ich aber jetzt hier nicht beschreibe, da Prototypes (anscheinend) die bessere Möglichkeit ist.
Nicht nur anscheinend besser... CallFunction ist laut Aussage unserer "Gurus" nur noch aus
Abwärtskompatibilitätsgründen ( <= cooles Wort für Hangman :D ) im Funktionsumfang von PB.