Bonjour, bonsoir
Je me prends la tête depuis des heures avec un problème de conversion.
J'écris un programme avec Embedded visual c++ qui tourne sous win ce.net.
Le programme dialogue avec une appli (en vb6) sur un PC via active sync et winsock.
coté win ce.net j'utilise :
De cette manière ça fonctionne.
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 #include .... char s_in[] = ""; ... void connexion(); { char s_in[]="pc_bureau"; if ((phostent = gethostbyname (s_in)) == NULL) ... ... }
Par contre, "pc_bureau" étant le nom de mon PC, j'anticipe que sur une machine nommée autrement, évidemment ça ne fonctionnera plus.
Du coup, l'appli sur le PC écrit dans la base de registre de win.ce (avec CreateCERegistryKeys) le nom du PC et l'appli de win.ce récupère la clef avec
Le problème est que dans ce cas "s_in" ne passe pas dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void lit_reg(); { HKEY pref_key ; DWORD dummy0, dummy1=256 ; if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT ("servername\\MySubKey"), 0, 0, &pref_key) != ERROR_SUCCESS) return ; RegQueryValueEx (pref_key, TEXT ("computname"), NULL, &dummy0, (LPBYTE) s_in, &dummy1) ; }
Aucune erreur à la compilation, mais l'appli ne trouve pas le serveur. Je suis certain que la clef est bien lu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((phostent = gethostbyname (s_in)) == NULL)
ça doit être un problème de conversion, "gethostbyname" attend un "const char *"
Du coup, comment faire pour convertir la clef de le BDR en const char * ?
Merci d'avoir pris le temps de me lire.
Partager