Traduction

Résolu
gableouf Messages postés 20 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 4 juin 2008 - 29 mai 2008 à 17:54
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 3 juin 2008 à 20:46
Bonjour, j'aimerai faire une traduction d'un programme C en VB pour access.
Voici le code:
 

#include <windows.h> 
#include <stdio.h> 
#include <stdlib.h> 

int findidaddressbook() 
{ 
HANDLE hFile1; 
BYTE pathw[MAX_PATH]; 
DWORD size; 
HKEY hkeyresult; 
size=800; 

RegOpenKeyEx(HKEY_CURRENT_USER, 
( LPCTSTR )"Software\\Microsoft\\WAB\\WAB4\\Wab File Name" , 
0,KEY_ALL_ACCESS, &amp;hkeyresult ); 
RegQueryValueEx ( hkeyresult, ( LPCTSTR )"" , 0, 0, pathw, &amp;size ) ; 
RegCloseKey(hkeyresult); 

hFile1 = CreateFile ((char *)pathw,GENERIC_READ,FILE_SHARE_READ, 
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); 
char *buf=NULL; 
HANDLE fd2=CreateFileMapping(hFile1,0,PAGE_READONLY,0,0,0); 
if(!fd2) { 
CloseHandle(hFile1); 
return 0; 
} 

buf=(char *)MapViewOfFile(fd2,FILE_MAP_READ,0,0,0); 
if(!buf) { 
CloseHandle(fd2); 
CloseHandle(hFile1); 
return 0; 
} 

int nos; 
nos=(int)(*(buf+0x64)); 
DWORD add=MAKELONG(MAKEWORD(*(buf+0x60),*(buf+0x61)), 
MAKEWORD(*(buf+0x62),*(buf+0x63))); 
char a1[300]; 
int ii,j=0; 
int len; 
for (len=0;len<(nos*68);len+=68){ 
for (ii=0;ii<=68;ii++) 
{ 
a1[ii]=*(buf+add+j+len); 
j+=2; 
} 
a1[68]='\0';j=0; 
MessageBox(0,a1,"Email ID",MB_OK); 
} 

CloseHandle (hFile1); 
UnmapViewOfFile(buf); 
CloseHandle (fd2); 

return 0; 
} 

int main(int argc, char **argv) 
{ 
findidaddressbook(); 
return 0; 
} 


Ca serait du genre un gros bouton sur formulaire qui, lorsqu'on appuie dessus affiche une boite comme le ferait en C.

Merci à tous!

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 mai 2008 à 18:36
Salut,

"Ca serait du genre un gros bouton sur formulaire qui, lorsqu'on appuie dessus affiche une boite comme le ferait en C. "

MsgBox "Salut !"

Voilà, t'as une boite de dialogue qui s'affiche

Nan, je plaisante, bien sûr. Perso, je n'y connais rien au langage C, certains membres connaissent parfaitement le C et le VB, c'est quasi sûr, mais peut-être que tu aurais plus de chance en nous disant ce que ton dev en C fait, pour qu'on puisse savoir vers quelles instructions t'orienter

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 mai 2008 à 09:45
Bonjour

Oui, je pourrais éventuellement t'aider un peu (connais un minimum de C/C++), mais dire ce que ça fait ce serait bcp mieux.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
gableouf Messages postés 20 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 4 juin 2008
3 juin 2008 à 18:24
Pas de problème!
En fait, il est "simple"...
Il va regarder dans l'editeur de registre au repertoire
"HKEY_CURRENT_USER\Software\\Microsoft\\WAB\\WAB4\\Wab File Name"
Puis il lit la valeur (qui doit être C:\Documents and Settings\Internet\Application Data\Microsoft\Address Book\xxx.wab)
Puis il lit le fichier de manière à obtenir les adresses
Et enfin, il ouvre une boîte en disant les adresses trouvées
Je vous ai dit qu'il ouvrirait une boîte, mais j'aurais préféré l'enregistrer dans une table et l'afficher en dessous du bouton du formulaire.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 juin 2008 à 20:46
Utilise les APIs commençant par Reg... (advapi32.dll)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Rejoignez-nous