IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

DCOM Problem access memory


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par d�faut DCOM Problem access memory
    Bonjour,
    Je viens vous demander un peu d'aide car apr�s 3jours de recherche infructueuse je n'arrive vraiment pas � r�soudre mon probl�me.
    Je disposais d'une application MFC avec une interface DCOM qui r�cupere des messages provenant d'un serveur et les affiche dans une boite de dialogue.
    Tout fonctionne.
    J'ai voulu cr�er une application console win32 pour ne plus avoir cette affichage car je n'en ai plus besoin.
    Apr�s �tude du code source, j'ai donc cr�� une application win32 console
    et modifier le code mais voila j'ai un gros probl�me:
    Lorsque j'execute le programme mode debug ou release, il s'arrete avec une erreur : problem access memory lorsqu'il execute cette ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    CComObject<CH2ADServerEventsSink>::CreateInstance(&m_pSink);
    le debug me dit qu'il y a un probleme � ce niveau :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    	typedef Base _BaseClass;
    	CComObject(void* = NULL) throw()
    	{
    		_pAtlModule->Lock();
    	}
    j'en ai donc conclu que l'argument de la fonction est nulle.
    J'ai effectu� plusieurs debug en essayant de voir les differentes valeurs et en les comparant avec le projet MFC qui fonctionne mais tout est identique....


    Voici le debut de mon code ou je cr�e l'objet DCOM:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    CString m_sFileShare;
    	m_sFileShare="\\\\svr\\srv";
    	CString sMachine = m_sFileShare;
    	sMachine = sMachine.Right(sMachine.GetLength() - 2);
    	sMachine = sMachine.Left(sMachine.Find('\\'));
    	ServerInfo.dwReserved1 = 0;
    	ServerInfo.dwReserved2 = 0;
    	ServerInfo.pAuthInfo = NULL;
    	USES_CONVERSION;
    	ServerInfo.pwszName = A2W(sMachine);
    	MULTI_QI Results;
    	Results.pIID = &IID_IUnknown;
    	Results.pItf = NULL;
    	Results.hr = S_OK;
     
    	hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    	hr = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_NONE,
    		RPC_C_IMP_LEVEL_IDENTIFY, NULL, EOAC_NONE, NULL);
     
    	hr = CoCreateInstanceEx(
    		CLSID_H2ADServer, NULL,
    		CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER,
    		&ServerInfo,
    		1,
    		&Results
    	);
    	sMachine.ReleaseBuffer();
     
    	if (Results.hr == S_OK)
    	{
    		m_pH2ADServer = Results.pItf;
    		CComObject<CH2ADServerEventsSink>::CreateInstance(&m_pSink);
    		CComPtr<IUnknown> pUnk = m_pSink;
     
    		// client declares itself to the server
    		hr = AtlAdvise(m_pH2ADServer, pUnk,
    			DIID__IH2ADServerEvents, &m_dwCookie);
    tout me semble correcte..
    Cela vient-il de mon projet et d'un manque d'include...
    J'ai pourtant tout inclu comme le projet MFC...

    Je me retrouve dans l'impasse sans savoir comment faire.
    J'ai pris plusieurs tutoriaux sur le DCOM/ATL mais rien a faire.
    La parti Serveur est d�ja cr��e.

    Merci de votre aide.

    A bientot

    Metek

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    ton projet win32 initialise les MFC ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par d�faut
    Dans le projet console je ne me sers aucunement des MFC.
    j'ai juste inclu le support ATL et MFC � la cr�ation du projet.

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    CString fait partie des MFC ...

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par d�faut
    autant pour moi j'entendai MFC comme interface graphique....
    Donc oui j'utilise les MFC.
    La je suis completement perdu.

    PS: je peux envoyer mon projet en rar si cela peut aider � comprendre le probleme dans sa globalit�.

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    ton projet console MFC doit initialiser les MFC exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    // Seul et unique objet application
     
    CWinApp theApp;
     
    using namespace std;
     
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
        int nRetCode = 0;
     
        // Initialise MFC et affiche un message d'erreur en cas d'échec
        if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
        {
            // TODO : modifiez le code d'erreur selon les besoins
            _tprintf(_T("Erreur irrécupérable : l'initialisation MFC a échoué\n"));
            nRetCode = 1;
        }
        else
        {
            // TODO : codez le comportement de l'application à cet emplacement.
        }
     
        return nRetCode;
    }

  7. #7
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 16
    Par d�faut
    Je vous ai fait parvenir par MP le projet en entier.
    Les MFC sont bien initialis�es et � l'initialisation j'appel mon constructeur de classe qui doit cr�er l'objet DCOM et se d�clarer aupr�s du serveur.

  8. #8
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    bon je ne suis pas un sp�cialiste de ATL et com mais:
    est une variable globlale
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    __declspec(selectany) CAtlModule * _pAtlModule
    
    elle doit donc �tre initialis�e ,
    il doit donc te manquer l'initialisation de la partie ATL ?

Discussions similaires

  1. Violation access memory
    Par breezer911 dans le forum C++
    R�ponses: 8
    Dernier message: 05/04/2007, 09h26
  2. Probleme Access 2003
    Par tibmuse dans le forum Access
    R�ponses: 5
    Dernier message: 17/05/2006, 23h08
  3. probleme access 2003
    Par party_boy dans le forum Access
    R�ponses: 16
    Dernier message: 26/04/2006, 08h57
  4. [SIGBUS] Cannot Access Memory apres un Malloc?
    Par predacktor dans le forum C
    R�ponses: 5
    Dernier message: 18/03/2006, 17h11
  5. Probleme Access
    Par jmjmjm dans le forum Langage SQL
    R�ponses: 2
    Dernier message: 16/12/2005, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo