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

DirectX Discussion :

{DirectPlay} Echec de connection - HRESULT non reference...


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 61
    Par défaut {DirectPlay} Echec de connection - HRESULT non reference...
    Salut,

    Jusque la tout allait bien, mais sur ce coup la je vais craquer ^_^' ... je vous expose mon probleme.

    je cree 1 client et 1 serveur TCP IP.

    J'host le server, ca me renvoie un HRESULT qui faut S_OK, pas de probleme tout va bien... detail du code par ici :

    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
    38
    39
    40
    41
    42
    	CoInitialize(NULL);
    	CoCreateInstance( CLSID_DirectPlay8Server, NULL, CLSCTX_INPROC_SERVER, IID_IDirectPlay8Server, (LPVOID*)&ds);
    	ds->Initialize( NULL , DPlayMessageMap , 0 );	
    	CoCreateInstance( CLSID_DirectPlay8Address, NULL, CLSCTX_INPROC_SERVER, IID_IDirectPlay8Address, (LPVOID*)&deviceaddress);
    	deviceaddress->SetSP( &CLSID_DP8SP_TCPIP);
     
    	DPN_PLAYER_INFO	playerinfo;
    	WCHAR	wservername[256];
     
    	DXUtil_ConvertGenericStringToWide( wservername, "LESERVEUR" );	
    	ZeroMemory( &playerinfo, sizeof(DPN_PLAYER_INFO));
    	playerinfo.dwSize = sizeof(DPN_PLAYER_INFO);
    	playerinfo.dwInfoFlags = DPNINFO_NAME;
    	playerinfo.pwszName = wservername;
    	hr = ds->SetServerInfo(&playerinfo,NULL,NULL,DPNSETSERVERINFO_SYNC);
     
    	if( FAILED( hr ) ) 
    	{
    		return hr;
    	}
     
    	// APPLICATION_DESC
    	DPN_APPLICATION_DESC	appdesc;
    	DWORD	dwPort = 9000;
    	WCHAR	wsessionname[256];
     
    	DXUtil_ConvertGenericStringToWide( wsessionname, "LaSession" );	
    	ZeroMemory( &appdesc, sizeof(DPN_APPLICATION_DESC) );
    	appdesc.dwSize			= sizeof(DPN_APPLICATION_DESC);
    	appdesc.guidApplication	= LEGUID;
    	appdesc.pwszSessionName	= wsessionname;
    	appdesc.dwMaxPlayers	= 0;
    	appdesc.dwFlags		= DPNSESSION_CLIENT_SERVER;
    	hr = deviceaddress->AddComponent(DPNA_KEY_PORT,&dwPort,sizeof(DWORD),
    						DPNA_DATATYPE_DWORD);
     
    	if( FAILED( hr ) ) 
    	{
    		return hr;
    	}
     
    	hr = ds->Host( &appdesc, &deviceaddress,1,NULL,NULL,NULL,NULL );

    Puis je lance mon client, et la probleme, il me renvoie sur le "connect()" un HRESULT valant 1409038 (non reference chez msdn)... le code idem :

    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
    	CoInitialize(NULL);
    	CoCreateInstance( CLSID_DirectPlay8Client,NULL,CLSCTX_INPROC_SERVER,IID_IDirectPlay8Client,(LPVOID*)&dc);
    	dc->Initialize( NULL , DPlayMessageMap , 0 );	
    	CoCreateInstance( CLSID_DirectPlay8Address, NULL, CLSCTX_INPROC_SERVER, IID_IDirectPlay8Address, (LPVOID*)&deviceaddress);
    	deviceaddress->SetSP( &CLSID_DP8SP_TCPIP);
    	CoCreateInstance( CLSID_DirectPlay8Address, NULL, CLSCTX_INPROC_SERVER, IID_IDirectPlay8Address, (LPVOID*)&hostaddress);
    	hostaddress->SetSP( &CLSID_DP8SP_TCPIP);
     
    	DPN_PLAYER_INFO playerinfo;
    	WCHAR wpeername[256];
     
    	DXUtil_ConvertGenericStringToWide( wpeername, "LeClient"); 
    	ZeroMemory( &playerinfo, sizeof(DPN_PLAYER_INFO) );
    	playerinfo.dwSize = sizeof(DPN_PLAYER_INFO);
    	playerinfo.dwInfoFlags = DPNINFO_NAME;
    	playerinfo.pwszName = wpeername;
    	hr=dc->SetClientInfo( &playerinfo, NULL, NULL, DPNSETCLIENTINFO_SYNC );
     
    	DPN_APPLICATION_DESC appdesc;
    	WCHAR hostname[256];
     
    	ZeroMemory( &appdesc, sizeof( DPN_APPLICATION_DESC ) );
    	appdesc.dwSize = sizeof( DPN_APPLICATION_DESC );
    	appdesc.guidApplication = LEGUID;
    	appdesc.dwFlags=DPNSESSION_CLIENT_SERVER;
    	WCHAR	wsessionname[256];
    	DXUtil_ConvertGenericStringToWide( wsessionname, "LaSession" );	
    	appdesc.pwszSessionName	= wsessionname;
     
    	DXUtil_ConvertGenericStringToWide( hostname, "127.0.0.1" );
    	hr=hostaddress->AddComponent(DPNA_KEY_HOSTNAME,hostname,(wcslen(hostname)+1)*sizeof(WCHAR),DPNA_DATATYPE_STRING);
     
    	DWORD dwPort;
    	dwPort=atol("9000");
    	hr=hostaddress->AddComponent(DPNA_KEY_PORT,&dwPort,sizeof(DWORD),DPNA_DATATYPE_DWORD);
     
    	hr=dc->Connect( &appdesc,hostaddress,deviceaddress,NULL,NULL,NULL,0,NULL,&ConnectAsyncOp,NULL);

    Voila en gros mon soucis, comment faire pour que ce foutu client se connecte ? ^_^ je craque

    ps: j'ai lu sur le journal d'un prog trouve sur le net une idee comme quoi il faut faire une copie complete des hostaddress/deviceaddress entre le client et le serveur, mais bon c'est a peu pres ce que j'ai fait ...
    pps: les GUID entre client et serveur sont identiques, c'est correct ?

    merci d'avance..

    edit : l'erreur est "1409038 = DPNSUCCESS_PENDING" ... cela voudrait il dire qu'en fait je suis connecte ? pourtant mon serveur ne recoit aucun message de connection

  2. #2
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 61
    Par défaut
    pourquoi faut il que le forum directx soit tout en bas la ou personne va jamais ? j'etais mieux sur C++ ^^

Discussions similaires

  1. erreur Connect: Classe non enregistrée
    Par chrisbdx dans le forum SAS Base
    Réponses: 14
    Dernier message: 26/11/2020, 15h45
  2. Tester si on est connecté ou non à Internet
    Par seiferph4 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/06/2009, 12h14
  3. [FAQ] Comment savoir si l'on est connecté ou non à Internet
    Par Droïde Système7 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 10/09/2008, 15h38
  4. Savoir si une personne est connectée ou non
    Par MANU_2 dans le forum Langage
    Réponses: 5
    Dernier message: 17/03/2008, 14h06
  5. Modem eci USB sur connection free non dégroupé
    Par tiboooo dans le forum Hardware
    Réponses: 3
    Dernier message: 31/07/2006, 11h05

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