begin process at 2012 05 30 13:26:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Testé dll c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Testé dll c++

vendredi 24 juillet 2009 à 00:17:55 | Testé dll c++

wislam2007

Salut
mon dll que je veux testé est :
Header

Code C/C++ :

/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "stdafx.h"
#include "rpc.h"
#include "rpcndr.h"
#include <string>

using namespace std;

#ifndef __DLLTEST_h__
#define __DLLTEST_h__

#define EXPORT __declspec(dllexport);

#ifdef __cplusplus
extern "C"{
#endif

EXPORT string __stdcall GetTypeConnexion(string PS_szTypeConnexion, string PS_szLibelleErreur);

#ifdef __cplusplus
}
#endif

#endif

.cpp
Code C/C++ :

#include "stdafx.h"
#include "resource.h"
#include <initguid.h>
#include "DLLTEST.h"
#include <fstream>
#include <string>
#include "DLLTEST.c"

// Taille maximale de l'url
#define TAILLE_MAX 1000
using namespace std;

char CODEERREUR;
string LIBELLEERREUR;
char MODEDECONNEXION;
string GetURL() {
ifstream fichierConfig("DLLTEST.config" );
string pURL = "";
if (fichierConfig) {
getline(fichierConfig,pURL);
if (pURL == "") {
CODEERREUR = '9';
LIBELLEERREUR = "Fichier DLLTEST.config vide";
MODEDECONNEXION = 'S';
return pURL;
}

} else {

// Si fichier introuvable
CODEERREUR = '9';
LIBELLEERREUR = "Fichier DLLTEST.config non trouvé";
MODEDECONNEXION = 'S';
return pURL;
}

return pURL;
}
string __stdcall GetTypeConnexion(string PS_szTypeConnexion, string PS_szLibelleErreur) {

// Chargement du module DLL
HINSTANCE hDLL = LoadLibrary("uneautredlldotnetacharger.dll");

string modeCnx;
string codeErr;

if (hDLL != NULL) {


typedef char *DLL_Function_getTypeConnexion (string pURL);

// instantiation de la fonction getTypeConnexion
DLL_Function_getTypeConnexion *fn_getTypeConnexion;

// Chargement en mémoire
fn_getTypeConnexion = (DLL_Function_getTypeConnexion*)GetProcAddress(hDLL,"getTypeConnexion");

// Lecture de l'url sur DLLTEST.config
string pURL = GetURL();

if (pURL != "") {
// Appel de la méthode getTypeConnexion()
MODEDECONNEXION = *fn_getTypeConnexion(pURL);

} else {
MODEDECONNEXION = 'S';
}
modeCnx = MODEDECONNEXION;
codeErr = CODEERREUR;
FreeLibrary(hDLL);
}
return string(modeCnx) + string(codeErr) + LIBELLEERREUR;
}


J'ai ajouté au projet mon fichier .def.
Je veux ajouter un programme pour testé cette dll ou bien ajouter des message pour testé que l'appel du dll dotnet ça se passe comme il le faut.
Merci

A vs

samedi 25 juillet 2009 à 22:04:35 | Re : Testé dll c++

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

Ah, heu... C'est la dll que tu comptes mettre entre la dll native et la dll .NET, comme précisé dans ce thread ?

Alors en fait, c'est pas parce que tu fais un LoadLibrary d'une dll .NET dans un dll que ça va mieux marcher que dans un .exe.

Une dll .NET ça propose des classes. C'est pas compilé en natif. C'est pas avec un LoadLibrary que tu vas pouvoir agir dessus.
Après, bon, tu es sûr que c'est une dll .NET ? Pour info, c'est pas parce qu'une dll a été compilé avec Visual Studio .NET qu'elle est en .NET... Mais si elle a été compilée en C# ou en VB.NET, c'est du .NET, c'est sûr.

Tu as essayé un coup de depends dessus ?

samedi 25 juillet 2009 à 23:21:08 | Re : Testé dll c++

wislam2007

Salut
Oui c'est une dll .NET compilé en C#, je suis sur.
Pour le dependency walker, je l'ai essayer mais j'ai pas vu la methode que je doit appelé.
Merci

A vs

dimanche 26 juillet 2009 à 20:18:24 | Re : Testé dll c++

rt15

Membre Club Administrateur CodeS-SourceS

Eh bien oui, comme c'est du C#, dependency walker est perdu.
Une dll C# ne s'utilise pas du tout comme une dll classique...

J'ai oublié la procédure exacte (Quelqu'un l'a posté sur ce fofo il y a peu...). C'est plus ou moins dans la configuration du projet quoi. Après, on peut utiliser les classes de la dll comme si on avait leur code dans notre projet.

Quelque chose dans ce genre là.

dimanche 26 juillet 2009 à 22:06:25 | Re : Testé dll c++

wislam2007

Le problème c'est que je peux pas modifier la dll .net, si y'aura des modifs pour que mon programme marche, je doit l'implémenter dans le prg c++.
quelqu'un m'a parlé des COM, ça je le comprend pas!!


A vs

lundi 27 juillet 2009 à 09:19:34 | Re : Testé dll c++

rt15

Membre Club Administrateur CodeS-SourceS

Je ne te parles pas de modifier la dll, mais de l'utiliser, dans une dll .NET (Qui proposera effectivement une interface COM).

3 dlls :


  • Une dll(1) C# dont tu n'as pas le source.
  • Une dll(2) en .NET (C#, ou C++ CLI) avec la dll(1) dans ses référence de manière à utiliser les classes .NET contenue dans la dll(1). dll(2) propose une interface COM contenant les fonctionnalité de la dll(1). En interne, elle appelle dll(1) pour implémenter ces fonctionnalités.
  • Une dll(3), en C++ natif, qui exploite l'interface COM de la dll(2), et donc peut finalement interagir avec la dll(1) en passant par la dll(2).


Pour réaliser la dll(2), il faut que tu ajoutes la dll(1) au projet (Pas avec LoadLibrary !!!! C'est de la configuration ! Ajout de référence ou quelque chose comme ça.) et que tu suive ce tuto pour en faire une dll .NET qui propose une interface COM.



Cette discussion est classée dans : string, dll, include, purl, gettypeconnexion


Répondre à ce message

Sujets en rapport avec ce message

Passage d'un String dans une DLL C++ [ par Argile92 ] Bonjour à tous.J'aimerai pouvoir accéder à un fichier texte via une DLL.Je suis dans Excel, avec l'adresse où se trouve mon fichier texte que j'aimera exemple de creation et utilisation d'un simple dll . [ par bonapart002 ] Bonjour:je suis débutant en c++ .je travail  avec Borland C++ 5.01.je veux créer une dll puis l'utiliser dans un programme .pour cela j'ai crée  un pr Probleme d'utilisation de DownloadToFile dans une DLL. [ par xela138 ] Bonjour à tous et merci à ceux qui pouront m'éclairer sur mon problème.Mon client est un projet universitaire(il est sensé faire une mise à jour autom c++ urgence svp [ par yanlou ] maximus salut,j'ai u fichier txt qui contient des chaine de caracté, exemple :RFRPAD7RFRPAD8/A8 DLL avec stdcall [ par gmeha ] bonjourj'ai ecrit un DLL programme en utilisant stdcall je l'ai compile ,il y a eu aucune faute.#include "stdafx.h"#include #include extern "C" __decl conversion de flottant en string [ par biduletrucmachin ] Bonjour j'essaie en vain d'utiliser la fonction sscanf pour convertir une des données flottantes en string. Est ce que quelqu'un connait la syntaxe ex Différence char - string [ par herlockg ] Bonjour,Voilà, je me demandais quelle était la différence exacte entre le type string et le type char. De plus, il pourquoi n'est-il pas nécessaire d' Créer dll en C++ [ par ANDRIAMIADANARIVO ] Pourquoi lorsqu'on compile le fichier .cpp ci-dessous, il y a une erreur qu'il faudra mettre ";" devant "void" et que "cout" n'est pas déclaré.#includ probleme creation de tableaux à taille dynamique [ par veka61 ] Bonjour tout le monde,Voila j'essai depuis plusieurs jour de creer une fonction pour transformer un string en char seulement j'obtient une erreur que Exportation de string sur dll [ par wasaikos ] Bonjour,Je suis sur un projet où je développe une application IHM sous WinDev11 qui fait appel à des DLL en C++ (codées sous Visual 6.0).Seulement je


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales