galamot
Messages postés30Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 5 mars 2011
-
31 mai 2010 à 19:19
developpementdb
Messages postés6Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention16 décembre 2010
-
16 déc. 2010 à 21:13
Bonjour,
j'ai ce script:qui marche tres bien mais je voudrais en faire une DLL.
la ou j'ai mis:
"http:l'adresse demandée");
et :
("./Le nom du fichier", je voudrais que ces parametres puissent etre passées sous le nom de variable donc texte.
comme dans cet exemple:#include "dll.h"
#include <windows.h>
export double add(double number1, double number2)
{
return(double)number1+number2;
}
Mais avec des chaines de caracteres:
que faut il mettre a la place de double
number 1 ou 2 pour envoyer l'url et récuperer le résultat
Merci.
Le . exe qui fonctionne:
#include <curl/curl.h>
#include <stdio.h>
int main(int argc, char **argv)
{
/* Initialisation de la session*/
CURL *session = curl_easy_init();
/* On précise l'url qui nous intéresse*/
curl_easy_setopt(session, CURLOPT_URL, "http:l'adresse demandée");
/* On précise le nom de notre fichier destination qui recevra le contenu de la page */
FILE * fp = fopen("./Le nom du fichier", "w");//Création de notre fichier
/* On balance notre pointeur de fichier comme destination */
curl_easy_setopt(session, CURLOPT_WRITEDATA, fp);
/*On précise la fonction qui gèrera l'écriture dans notre fichier.
Peut être n'êtes-vous pas habitués à cela,
il faut mettre un pointeur de fonction en paramètre de curl_easy_setopt.
Comme ça, curl_easy_setopt utilisera cette fonction pointée
pour écrire dans le fichier. La fonction en question doit
respecter la même en-tête que la fonction standard fwrite:
si vous ne voulez pas vous prendre la tête, utilisez fwrite qui est déjà toute prête: */
curl_easy_setopt(session, CURLOPT_WRITEFUNCTION, fwrite);
/* lancer le téléchargement */
curl_easy_perform(session);
/*Enfin, on libère nos ressources utilisées */
fclose(fp); // le fichier
/**/
curl_easy_cleanup(session); // la scession
/**/
return 0;
}
galamot
Messages postés30Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 5 mars 2011 1 juin 2010 à 22:36
Bonjour,
Merci, je vais eqssayer avec celà.
en fait ce que je veux faite est de passer en parametres ce quui est dans l'exemple que j'ai trouvé
a la place de double des chaines de caracteres
export double add(double number1, double number2)
{
ce qui est dans le script qui fnctionne (en exe) en passant les parametres a la place de "http:l'adresse demandée") le premier parametre ;
et a la place de "Le nom du fichier" le second parametre.
}
c'est pour appeler la dll a partir d'un autre systeme de programmation (gamemaker)
c'est dur d'être clair.
merci
galamot
Messages postés30Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 5 mars 2011 2 juin 2010 à 18:17
Bonjour,
Bon, ça avance mais je n'y arrive pas même en faisant un truc simple (des essais simples)
String n'est pas reconnu sur dev cc+ !
donc il nr voulait pas compiler.
j'ai vu je ne sais plus où qu'il fallait ajouter:
#include <string>
using namespace std;
j'appelle bien ma dll depuis mon programme mais soit elle me reenvoie dans le premier cas toujours les mêmes caracteres quelque soit l'entrée t si j'essaye de concaténer ça plante.
galamot
Messages postés30Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 5 mars 2011 3 juin 2010 à 18:03
Bonjour Bruno,
j'ai eu une lueur d'espoir mais Non.
avec ou sans * c'est le même bisness!
de toutes façons, j'ai vu sur un site (traduit) que avec curl_easy on ne peut pas mettre de variables a la place chaines de caracteres.
Ce serait peut etre possible avec mais pas en Easy mais je n'ai rien compris a leurs pages en Anglais.
Ce que je voudrais faire est de passer l'adresse http et que au retour ca me donne la source en chaine de caractere (même pas en fichier) sans plus.
Je conais bien des DLL toutes faites:
netread.dll mais certaines pages ne pasent pas.
Wget.exe (et son code source)mais je n'ai pas les entrées et en tant que batch (au pire) je ne connais que -S qui renvoie un fichier pas une chaine.
également 39.dll (et sa source) IDEM je ne trouve pas les entrées
ces sources sont trop pour moi helas.
je vais devoir abandonner.
galamot
Messages postés30Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 5 mars 2011 12 déc. 2010 à 23:14
Bonjour,
Merci, je prends note.
Toutefois, depuis le temps, j'ai un peu trouvé autrement (l'exemple de l'addition etait pour si je me souviens bien expliquer comment avec mon systeme on passe et on recupere les parametres.
en ce moment, je serais plus sur un calcul qui es:
developpementdb
Messages postés6Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention16 décembre 2010 13 déc. 2010 à 10:35
Bonjour,
Avec DEV-C++, en mode console, peux-tu vérifier en changeant les valeurs si ça fonctionne correctement ( peut-être faut t'il rajouter des parenthèses pour les calculs) ?
class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);
private:
};
#endif /* _DLL_H_ */
//////////////
DANS DLLMAIN.CPP je met:
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <cstdlib>
#include
#include <stdio.h>
#include <math.h>
galamot
Messages postés30Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 5 mars 2011 16 déc. 2010 à 20:12
Bonsoir,
Merci Bernard (celà me fait penser a une emiion de TV)
la compil a marché,
Effectivemet, il y avait (en plus les majuscules) donc "casse"
je regarde les différences et il est des lignes que j'ai posées parce que écrites, come celà est pour comprendre au cas où mais cette solution sera utile
Merci.
je teste avec mon système de programmation mais je suis sur que celà va marcher d'enfer.
Je te donne des nouveles du résultat (je suis confient) dès que possible.
En tous cas, a toi, Ta famille, tes Amis , aux amis de tous les Forums, aux animateurs de TOUS les sites de toute envergure, au Monde entier sur cette toile en fait...
Joyeuses Fêtes de Fin d'année.