Référencer une dll C en vb6

cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012 - 5 juin 2012 à 09:55
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 5 juin 2012 à 17:08
Bonjour, j'ai créer une dll en C avec des fonctions qui permettes de gérer des opératons :

Voila le code :
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>

DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}


BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;

      case DLL_PROCESS_DETACH:
        break;

      case DLL_THREAD_ATTACH:
        break;

      case DLL_THREAD_DETACH:
        break;
    }

    /* Returns TRUE on success, FALSE on failure */
    return TRUE;
}

extern "C" __declspec(dllexport) int addition(int a,int b)
{
return a+b;
}
extern "C" __declspec(dllexport) int soustraction(int a,int b)
{
return a-b;
}
extern "C" __declspec(dllexport) int multiplication(int a,int b)
{
return a*b;
}
extern "C" __declspec(dllexport) int division(int a,int b)
{
return a/b;
}
extern "C" __declspec(dllexport) int incremente(int a)
{
return a++;
}
extern "C" __declspec(dllexport) int decremente(int a)
{
return a--;
}


Lors de la compilation j'ai le fichier .def qui se créé avec les noms des fonctions.
Le but étant d'utiliser la dll c en VB6 seulement quand j’essaie d'ajouter une référence (ma dll se nomme MADLL.dll) il me dit :

Can't add a reference to the specified file.

J'ai essayer d'enregistrer la dll avec regsvr32 mais il n'arrive pas à trouver le point d'entrée DLLRegisterServer.
Quelqu'un à une solution?
Merci.

3 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juin 2012 à 10:17
Tu vires le logiciel qui te crée tout ce fatras.

Une vraie DLL (C ou ASM) ne s'enregistre pas, ce n'est pas un objet COM.

Tu fais un projet dll VIDE, réglage compilation en C (et NON C++).

ciao...
BruNews, MVP VC++
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
5 juin 2012 à 15:18
Re et merci pour ta réponse. Quel est l'avantage de créer des dll en c plutôt qu'en c++ ?
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juin 2012 à 17:08
Voyons la chose dans le bon sens:

Pourquoi créer des classes et autres couches d'abstraction pour en finale exposer des fonctions ???

Je passe le discours sur le 'hachis menu' de ton espace mémoire à coups de 'new', 'string' et autres biniouteries de ce genre.

ciao...
BruNews, MVP VC++
0