Seite 2 von 3

Verfasst: 22.03.2007 21:17
von walker
ts-soft hat geschrieben: Ich würde aber lieber Prototypes nutzen statt CallCFunctionFast und gleich
mit Compilerdirektiven für Win und Lin.
Könnte das bisherige darauf anpassen, aber nur wenn Dir die Prototypes
recht sind (kein zusätzlicher Overhead durch Proceduren und sicherer)

Gruß
Thomas
ja, natürlich gehen auch Prototypes (muß mir mal angewöhnen die zu benutzen) ... und meinen kleinen include generator abändern (der stammt noch aus 3.94 zeiten...) habe absolut nichts dagegen und die Compilerdirective dürfte momentan wohl nur in der Auswahl der DLL/.SO liegen...

@vTvT: da muss ich Thomas allerdings recht geben...ich benutze zwar (manchmal) auch ein Konsolenprogramm aber nur, wenn ich keine andere Möglichkeit habe (sei es wegen mangeldem Wissen oder ich brauche eine Funktion SOFORT... dann werde ich es aber über kurz oder lang mit eigenem Code ersetzen... oder es ist einfach erforderlich...weil gewünscht...)

Verfasst: 22.03.2007 21:17
von ts-soft
vonTurnundTaxis hat geschrieben:In diesem Fall ist der Unterschied zwischen der SO und dem Program recht marginal...
Und wie kommt man an die Ergebnisse der Funktionen? StdOut lesen?
Das wäre mir zu umständlich. Da ist die *.so oder *.dll praktischer, diese sind
schließlich auch dafür vorgesehen, von anderen Programmen genutzt zu
werden.

// Nachtrag:
@walker
Werde heute noch die geänderte, nur das bisherige, Version hier Posten.
Bin schon dabei es zu ändern, Code wird auch kürzer

Verfasst: 22.03.2007 22:06
von ts-soft
Angepaßte Version mit Prototypes:
http://ts-soft.eu/dl/libdef_curl_.pbi

Für Funktionen, die einen String zurückgeben, sollten trotzdem Proceduren
eingebaut werden, das erspart das PeekS

Verfasst: 17.06.2007 19:29
von bender-rulez
Hallo,

super für die User-Lib, jedoch ist das wohl noch nicht ganz ausgereift?

Jedenfalls erhalte ich bei folgendem Code keinen Erfolg!

Code: Alles auswählen

	curlGlobalHandle = curl_global_init()
        ; gibt 0 zurück


	curlHandle = curl_easy_init()
        ; gibt mir einen Wert größer 0 zurück


        value.s = "http://www.marcbender.de"

 	optionReturn = curl_easy_setopt(curlHandle, CURLOPT_URL, value)
        
	messagerequester("INFO", peeks(curl_easy_strerror(optionReturn)),0)
       ; curl_easy_setopt  liefert einen Fehler, "failed init"


	res = curl_easy_perform(curlHandle)


Ok, was mache ich falsch!?!?![/code]

Verfasst: 17.06.2007 19:42
von ts-soft
bender-rulez hat geschrieben: Ok, was mache ich falsch!?!?![/code]
Du hast vergessen die *.pbi zu vervollständigen, da fehlt fast alles zum
funktionieren :mrgreen:

Verfasst: 17.06.2007 22:52
von bender-rulez
ok,ok, warum einfach...

nun, da ich bisher noch nie eine pbi erstellt hab, ist natürlich für mich erstmal fraglich, was noch zu tun ist? :-)

Sofern man mir nen Tipp gibt, kann ich das gerne machen...

Verfasst: 17.06.2007 23:00
von ts-soft
Ich vermute mal, das Du Einsteiger bist, somit wird es im Moment nicht viel
Sinn machen.

Ich persönlich benötige die Lib nicht und habe deswegen im Moment keine
Lust und Zeit dafür. Wenn Du Dir die Documentation besorgst, diie Parameter
usw. vervollständigst sollte es laufen. C-Grundkenntnisse wären von Vorteil.
Gute PB Kenntnisse sind natürlich auch erforderlich.

Verfasst: 18.06.2007 07:22
von bender-rulez
Naja, Anfänger würd ich jetzt nicht mehr so sagen...
Egal, was ich bisher gemacht hatte war:

1. API von libcurl lesen!

2. Parameter in libdef_curl_.pbi vervollständigen


z.B. bei der initial wichtigen Funktion 'curl_easy_setopt' in der pbi

Code: Alles auswählen

...
PrototypeC curl_easy_setopt_(*handle, option.l, parameter.l)
...
Leider liefert diese jedoch entsprechende Fehler.

Beispiel:
wird im Code dieser Aufruf gemacht

Code: Alles auswählen

optionReturn = curl_easy_setopt(curlHandle, CURLOPT_URL, "http://xyz.de")
liefert die Funktion einen Errorcode, der, wenn er mittels

Code: Alles auswählen

peeks(curl_easy_strerror(optionReturn))
ausgelsen wird (im Klartext) "failed init" liefert!

Ein Problem hab ich da scheinbar a) mit den Datentypen und b) evtl. mit dem Handle?

a)
es funktioniert überhaupt erst beim Compilieren, wenn ich in der pbi das wie folgt abändere:

Code: Alles auswählen

...
PrototypeC curl_easy_setopt_(*handle, option.l, parameter.s)
...
wobei ich glaube "option.l" sollte ebenfalls ein "option.s" sein!?

Also:

Code: Alles auswählen

optionReturn = curl_easy_setopt(curlHandle, "CURLOPT_URL", "http://xyz.de")
liefert dann aber trotzdem ein "failed init"! :-(

Jedenfalls lässt sich "curl_easy_setopt" nicht nutzen!

Verfasst: 18.06.2007 07:31
von bender-rulez
Letztlich würde ich libcurl benötigen um https zu nutzen!
Und zwar unter Linux bzw. cross-platform!

Falls jemand eine andere Lösung hat, immer her damit!

Verfasst: 18.06.2007 08:11
von 125
CURLOPT_URL ist eine Konstante die musst du definieren und dann #CURLOPT_URL.... das Option.l ist richtig :)