[Visual studio c++] initialiser un HANDLE
Résolu/Fermé
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
-
5 mai 2008 à 20:30
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 11 mai 2008 à 17:55
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 11 mai 2008 à 17:55
A voir également:
- [Visual studio c++] initialiser un HANDLE
- Microsoft visual c++ runtime - Guide
- Visual petanque - Télécharger - Sport
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Cam studio - Télécharger - Capture d'écran
- Visual paradigm - Télécharger - Gestion de données
11 réponses
peut tu donner la fonction que tu utilise et sa liste d'arguments ?
si il s'agit d'un handle de fenetre et que tu n'en utilise pas tu peut passer la valeur NULL a priori, ensuite ca depend de la fonction bien sûr ;)
si il s'agit d'un handle de fenetre et que tu n'en utilise pas tu peut passer la valeur NULL a priori, ensuite ca depend de la fonction bien sûr ;)
en fait le handle "WIFI" doit etre obtenu par "wlanOpenHAndle", une fonction que tu doit appeler avant.
https://docs.microsoft.com/en-us/windows/win32/api/wlanapi/nf-wlanapi-wlanopenhandle?redirectedfrom=MSDN
tu passe 1 ou 2 dans le parametre "clientversion" suivant la version de ton Windows,
puis en retour tu obtiendra dans "phClientHandle" le handle a utiliser dans la fonction suivante.
(une recherche google sur ces 2 noms de fonctions dervait te retourner quelques exemples, en fonction du language que tu utilise)
bon courage :)
https://docs.microsoft.com/en-us/windows/win32/api/wlanapi/nf-wlanapi-wlanopenhandle?redirectedfrom=MSDN
tu passe 1 ou 2 dans le parametre "clientversion" suivant la version de ton Windows,
puis en retour tu obtiendra dans "phClientHandle" le handle a utiliser dans la fonction suivante.
(une recherche google sur ces 2 noms de fonctions dervait te retourner quelques exemples, en fonction du language que tu utilise)
bon courage :)
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 11:37
6 mai 2008 à 11:37
bon ce qui est bien sur un forum c'"est que tu peux te repondre à toi meme :
dans WlanopenHandle si les deux dernier parametres sont à null alors la focntion retourne un code d'erreur donc pas d'initialisation à null pour out1 et out2.
bon ok pour mais maintenant j'ai ça comme message d'erreur:
Run-Time Check Failure #3 - The variable 'out2' is being used without being initialized.
et là je crois ne pa pouvoir m'aider alors "please help me"
comment initilaiser un pointeur sans le mettre à null ?
dans WlanopenHandle si les deux dernier parametres sont à null alors la focntion retourne un code d'erreur donc pas d'initialisation à null pour out1 et out2.
bon ok pour mais maintenant j'ai ça comme message d'erreur:
Run-Time Check Failure #3 - The variable 'out2' is being used without being initialized.
et là je crois ne pa pouvoir m'aider alors "please help me"
comment initilaiser un pointeur sans le mettre à null ?
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
5 mai 2008 à 20:37
5 mai 2008 à 20:37
voici la fonction utilisée :
DWORD WINAPI WlanGetAvailableNetworkList(
__in HANDLE hClientHandle,
__in const GUID* pInterfaceGuid,
__in DWORD dwFlags,
__reserved PVOID pReserved,
__out PWLAN_AVAILABLE_NETWORK_LIST* ppAvailableNetworkList
);
le probleme c'est que le handle n epeut pas etre null
merci pour ton aide
DWORD WINAPI WlanGetAvailableNetworkList(
__in HANDLE hClientHandle,
__in const GUID* pInterfaceGuid,
__in DWORD dwFlags,
__reserved PVOID pReserved,
__out PWLAN_AVAILABLE_NETWORK_LIST* ppAvailableNetworkList
);
le probleme c'est que le handle n epeut pas etre null
merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
5 mai 2008 à 20:44
5 mai 2008 à 20:44
au passage je suis aller voir sur la msdn et je ne voit pas comment faire
bitrate
Messages postés
439
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
22 mars 2011
98
5 mai 2008 à 21:03
5 mai 2008 à 21:03
comme indiqué sur MSDN le HANDLE demandé en entrée est retourné par la fonction WlanOpenHandle
faut juste appeler avant
++
faut juste appeler avant
++
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 10:26
6 mai 2008 à 10:26
salut les gens, tout d'abord merci, ensuite encore besoin d'aide
voici la fameuse fonction à utiliser pour choper le handle :
DWORD WINAPI WlanOpenHandle(
__in DWORD dwClientVersion,
__reserved PVOID pReserved,
__out PDWORD pdwNegotiatedVersion,
__out PHANDLE phClientHandle
);
ma 1ère question (certainement bête) : PHANDLE est un pointer sur un HANDLE ?
2nde question : voici le code tel que je l'utilise:
PDWORD out1=NULL;
PHANDLE out2=NULL;
if (WlanOpenHandle(1,NULL,out1,out2) != ERROR_SUCCESS ) cout << "error openHandle" << endl;
PWLAN_AVAILABLE_NETWORK_LIST p;
char c1;
GUID g;
HRESULT res = CoCreateGuid(&g);
if (res != S_OK) cout << "erreur CoCreateGuid" << endl;
DWORD d = WlanGetAvailableNetworkList(*out2,(const GUID *)&g ,0x00000001,NULL,&p);
//la j'ai un switch sur le resultat d pour savoir si j'ai une erreur
lorsque je compile j'ai une erreur :
Unhandled exception at 0x00412128 in Scan.exe: 0xC0000005: Access violation reading location 0x00000000.
Scan étant le nom du projet
bon est-ce que cela viendrait du troisieme parametre de lWlanGetAvailableNetworkList ?
merci encore
voici la fameuse fonction à utiliser pour choper le handle :
DWORD WINAPI WlanOpenHandle(
__in DWORD dwClientVersion,
__reserved PVOID pReserved,
__out PDWORD pdwNegotiatedVersion,
__out PHANDLE phClientHandle
);
ma 1ère question (certainement bête) : PHANDLE est un pointer sur un HANDLE ?
2nde question : voici le code tel que je l'utilise:
PDWORD out1=NULL;
PHANDLE out2=NULL;
if (WlanOpenHandle(1,NULL,out1,out2) != ERROR_SUCCESS ) cout << "error openHandle" << endl;
PWLAN_AVAILABLE_NETWORK_LIST p;
char c1;
GUID g;
HRESULT res = CoCreateGuid(&g);
if (res != S_OK) cout << "erreur CoCreateGuid" << endl;
DWORD d = WlanGetAvailableNetworkList(*out2,(const GUID *)&g ,0x00000001,NULL,&p);
//la j'ai un switch sur le resultat d pour savoir si j'ai une erreur
lorsque je compile j'ai une erreur :
Unhandled exception at 0x00412128 in Scan.exe: 0xC0000005: Access violation reading location 0x00000000.
Scan étant le nom du projet
bon est-ce que cela viendrait du troisieme parametre de lWlanGetAvailableNetworkList ?
merci encore
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 11:24
6 mai 2008 à 11:24
bon tout compte fait, je viens de voir que le message d'erreur dans la console etait "error openHandle" donc le probleme doit venir des argument passés. il me semble pourtant ne pas m'etre trompé.
je besoin de votre aide
merci
je besoin de votre aide
merci
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 11:51
6 mai 2008 à 11:51
voici mon nouveau code:
DWORD out1;
HANDLE out2;
DWORD d1 = WlanOpenHandle(2,null,&out1,&out2);
switch(d1){
case ERROR_INVALID_PARAMETER :cout <<" error: parameter" << endl;break;
case ERROR_NOT_ENOUGH_MEMORY :cout <<" error: memory allocation" << endl;break;
case ERROR_REMOTE_SESSION_LIMIT_EXCEEDED:cout <<" error: too much handle" << endl;break;
case ERROR_SUCCESS:cout << "no problem" << endl;break;
default: cout << "default" << endl;break;
}
PWLAN_AVAILABLE_NETWORK_LIST p;
char c1;
GUID g;
HRESULT res = CoCreateGuid(&g);
if (res != S_OK) cout << "error :CoCreateGuid" << endl;
DWORD d = WlanGetAvailableNetworkList(out2,(const GUID *)&g ,WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES,NULL,&p);
switch(d){
case ERROR_SUCCESS : cout << " no problem " << endl;break;
case ERROR_INVALID_PARAMETER : cout << " error: parameter " << endl;break;
case ERROR_INVALID_HANDLE : cout << " error :handle " << endl;break;
case ERROR_NDIS_DOT11_POWER_STATE_INVALID : cout << " error :wifi turned off() " << endl;break;
//case RPC_STATUS : cout << " probleme ??? " << endl; exit(-1);break;
case ERROR_NOT_ENOUGH_MEMORY : cout << " error :memory allocation" << endl;break;
default:break;
}
/*
resultat dans la console (grace aux cout):
default
error :handle
ensuite une fenetre s'ouvre avec comme message d'erreur :
Windows has triggered a breakpoint in Scan.exe.
This may be due to a corruption of the heap, which indicates a bug in Scan.exe or any of the DLLs it has loaded.
This may also be due to the user pressing F12 while Scan.exe has focus.
The output window may have more diagnostic information.
on peut cliquer sur break ou continue
je fais continue et le programme termine
cela ne me satisfait pas car ça signifie qu'il y a toujours un pb avec le HANDLE
merci pour votre aide, je revient sur le forum ce soir, la je dois y aller
*/
DWORD out1;
HANDLE out2;
DWORD d1 = WlanOpenHandle(2,null,&out1,&out2);
switch(d1){
case ERROR_INVALID_PARAMETER :cout <<" error: parameter" << endl;break;
case ERROR_NOT_ENOUGH_MEMORY :cout <<" error: memory allocation" << endl;break;
case ERROR_REMOTE_SESSION_LIMIT_EXCEEDED:cout <<" error: too much handle" << endl;break;
case ERROR_SUCCESS:cout << "no problem" << endl;break;
default: cout << "default" << endl;break;
}
PWLAN_AVAILABLE_NETWORK_LIST p;
char c1;
GUID g;
HRESULT res = CoCreateGuid(&g);
if (res != S_OK) cout << "error :CoCreateGuid" << endl;
DWORD d = WlanGetAvailableNetworkList(out2,(const GUID *)&g ,WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES,NULL,&p);
switch(d){
case ERROR_SUCCESS : cout << " no problem " << endl;break;
case ERROR_INVALID_PARAMETER : cout << " error: parameter " << endl;break;
case ERROR_INVALID_HANDLE : cout << " error :handle " << endl;break;
case ERROR_NDIS_DOT11_POWER_STATE_INVALID : cout << " error :wifi turned off() " << endl;break;
//case RPC_STATUS : cout << " probleme ??? " << endl; exit(-1);break;
case ERROR_NOT_ENOUGH_MEMORY : cout << " error :memory allocation" << endl;break;
default:break;
}
/*
resultat dans la console (grace aux cout):
default
error :handle
ensuite une fenetre s'ouvre avec comme message d'erreur :
Windows has triggered a breakpoint in Scan.exe.
This may be due to a corruption of the heap, which indicates a bug in Scan.exe or any of the DLLs it has loaded.
This may also be due to the user pressing F12 while Scan.exe has focus.
The output window may have more diagnostic information.
on peut cliquer sur break ou continue
je fais continue et le programme termine
cela ne me satisfait pas car ça signifie qu'il y a toujours un pb avec le HANDLE
merci pour votre aide, je revient sur le forum ce soir, la je dois y aller
*/
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 19:32
6 mai 2008 à 19:32
besoin d'aide please
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
6 mai 2008 à 21:02
6 mai 2008 à 21:02
please
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
11 mai 2008 à 17:55
11 mai 2008 à 17:55
je passe en résolu