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