begin process at 2012 02 10 20:59:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

Problème de classe non static


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

Problème de classe non static

lundi 16 juin 2008 à 23:15:32 | Problème de classe non static

Terminator59140

Bonjour tous le monde! J'ai un problème un peu énervant si je eut me permette. J'utilise Visual Studio 2008 et je créer un projet en c++. Le porjet est une dll vide, de l'application Win32. J'avais jamais trop compris comment on créer une dll en c++, mais maintenant je sais un peut près.

Mais voici mon problème. Dans ma solution il y a deux projets vide, le premier (le principale) est une dll qui me permettra de faciliter le développement de mes applications. La deuxième est un test pour voir si la dll fonctionne sans erreur. Le but que je suis en train de faire est:

code dll: (code .hpp)

#ifndef CODEDLL_HPP
#define CODEDLL_HPP

namespace Dansdll
{
class Init
{
public:
     Init();
     ~Init();

void Initialisation();
};
};
#endif

code dll: (code .cpp)

namespace Dansdll
{
void Init::Initialisation()
{
 // Il n'y a rien dedans car c'est juste pour un test
}
};


code 2nd Projet: (code .hpp)

#ifndef main_HPP
#define main_HPP


class Test
{
public:
    Test();
    ~Test();

    static void DllInit();
};
#endif

code 2nd Projet (code .cpp)

#include <iostream>

#include "main.hpp"
#include "codedll.hpp"


using namespace Dansdll;


int main(void)
{
    Test::DllInit();
}
void Test::DllInit()
{
    std::cout << "Initialisation" << std::endl;
    Init::Initialisation();          // C'est la ou il y a une erreur.**
}

** Erreur    1    error C2352: 'Dansdll::Init::Initialisation' : appel non conforme d'une fonction membre non static


La voilà mon problème. J'ai pensée à mettre static avant void de Initialisation();

Mais c'est du charabia et l'aide msdn ne m'apporte pas la solution.

Erreur    2    error LNK2019: symbole externe non résolu "public: static void __cdecl Dansdll::Init::Initialisation(void)" (?Initialisation@Init@Dansdll@@SAXXZ) référencé dans la fonction "public: static void __cdecl Test::DllInit(void)" (?DllInit@Test@@SAXXZ)    main.obj

Erreur    3    fatal error LNK1120: 1 externes non résolus



lundi 16 juin 2008 à 23:48:32 | Re : Problème de classe non static

luhtor

Tu devrais relire un peu de doc. Appeler une fonction non static sans objet, ca n'a pas de sens.

"Mais c'est du charabia et l'aide msdn ne m'apporte pas la solution."
=> Mais l'erreur est radicalement différente. Avant il s'agissait d'un problème de compilation. Il s'agit maintenant d'un pb de link.

Il faut dire au compilo ce qu'il doit exporter dans la dll.

class __declspec(dllexport) Init
{
...
mardi 17 juin 2008 à 00:25:48 | Re : Problème de classe non static

Terminator59140

Même si tu as raison sa ne change pas grand chose car i l y a toujours le problème de non static et dans ma 2nd application , j'ai rajouté

__declspec(dllimport), mais j'ai un message d'avertissement du type

Avertissement    1    warning C4091: '__declspec(dllimport)' : ignoré à gauche de 'GRAUPEEN::Screen' quand aucune variable n'est déclarée
mardi 17 juin 2008 à 19:23:41 | Re : Problème de classe non static

luhtor

public:
     Init();
     ~Init();

static void Initialisation();
};
mardi 17 juin 2008 à 21:37:59 | Re : Problème de classe non static

Terminator59140

C'est en train de former une boucle puisque je retombe sur l'erreur 2:

Erreur    2    error LNK2019: symbole externe non résolu "public: static void __cdecl Dansdll::Init::Initialisation(void)" (?Initialisation@Init@Dansdll@@SAXXZ) référencé dans la fonction "public: static void __cdecl Test::DllInit(void)" (?DllInit@Test@@SAXXZ)    main.obj
mercredi 18 juin 2008 à 01:14:31 | Re : Problème de classe non static

luhtor

T'as rajouté la librairie .lib associée à ta dll dans ton projet ?
mercredi 18 juin 2008 à 18:08:11 | Re : Problème de classe non static

Terminator59140

Non je ne l'ai pas fait, mais comment on fait? Comme c'est la première fois que je travaille avec une dll.
mercredi 18 juin 2008 à 22:14:41 | Re : Problème de classe non static

luhtor

Comme avec une librairie static, faut ajouter dans les librairies le petit fichier que visual a généré en meme temps que la dll.


Cette discussion est classée dans : test, static, void, init, initialisation


Répondre à ce message

Sujets en rapport avec ce message

Pointeur sur fonction envoyé par dll [ par MoDDiB ] Voila ce que j'ai fais mais ca ne marche pas :Dll :#include BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ retu Initialisation tableau dans un Header ? [ par Capa6T ] Salut,J'ai fait un programme en C qui doit me générer un fichier header (genre test.h) que je pourrais insérer dans un autre projet en C.Ce Header doi variables static (c++) [ par garslouche ] Salut à tous,je fais une appli utilisant un fichier de conf INI. Ma classe Settings est du style:class Settings{public:Settings();~Settings();static v Casse-tête [ par alex1982 ] Bonjour, j'utilise visual dot net, et j'ai un problème avec mon code.Lorsque j'exécute le code suivant (très simple) :#include class essai{private : f Problème avec string [ par visualstar ] Bonjour, J'ai un problème en C++ avec les string.Comment peut-on faire pour passer un string à une fonction. Dans cette fonction, je fais un cin ; mai répeter une action /fonction ?? [ par hansmeier ] //******************************************************* #include "stdafx.h" int APIENTRY WinMain(HINSTANCE hInstance, pointeur static sur fonction :) [ par luhtor ] Certain reconnaitront surement le tutoriel en question. J'ai rajouté quelques trucs au gestionnaire d'exception, mais je bloque sur le point suivant:J CALLBACK dans une Classe => problême mot clef static ! [ par Capa6T ] Salut, Une petite question à 2 euros...je cherche depuis un moment et je ne trouve pas la solution. j'ai une classe bidon:// Bidon.hclass Bidon{public MFC, thread, callback, etc... La totale ! [ par SW_87 ] Bonjour , Je reprends mon problème car apparemment je me suis mal exprimé . J'ai créé une application "MFC AppWizzard (exe)" sous VC++ 6.0. que je n Pb de déclaration multiple de variables [ par skirby ] Bonjour,J'ai un problème que je n'arrive pas à résoudre. Je dirais même que cela fait une éternité que je n'arrive pas à me servir correctement des in


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 3,182 sec (3)

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