begin process at 2012 05 30 02:40:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Juste une petit précision.Pour être sur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Juste une petit précision.Pour être sur

lundi 8 janvier 2007 à 18:59:12 | Juste une petit précision.Pour être sur

deck_bsd

Membre Club
Yop à tous,

Voila je n'avai encore jamais travailer sur des chaines en Unicode jusqu'a présent et je me demandai si ce que j'avai fait était un gros coup de bol ou non . Voila je devai affecter une WCHAR avec une autre, lstrcpy n'allant évidement pas, j'ai juste fait une bête affectation avec = et cela fonctionne. Est-ce normale ?


Merci d'avance.

++
deck_bsd
___________________________________
[ [ Lien ]]
lundi 8 janvier 2007 à 19:04:36 | Re : Juste une petit précision.Pour être sur

deck_bsd

Membre Club
Oui non en faite me suis gouré c'est pas la bonne solution, il y a t il une fonction qui permet de copier une chaine unicode dans une autre?

++
deck_bsd
___________________________________
[ [ Lien ]]
lundi 8 janvier 2007 à 19:10:27 | Re : Juste une petit précision.Pour être sur

BruNews

Administrateur CodeS-SourceS
wcscpy()

ciao...
BruNews, MVP VC++
lundi 8 janvier 2007 à 19:12:49 | Re : Juste une petit précision.Pour être sur

vecchio56

Administrateur CodeS-SourceS
lstrcpy a l'avantage d'être portable ANSI et UNICODE (lstrcpyA et lstrcpyW)
Visiblement tu compiles en mode ANSI donc ca ne t'intéresse pas

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 8 janvier 2007 à 19:19:32 | Re : Juste une petit précision.Pour être sur

deck_bsd

Membre Club
Merci,

Mais mon problème devient plus compliquer maintenant, je doit mettre une chaine ANSI dans un membre de structure qui est un pointeur sur chaine Unicode WSPTR , mais voila je veut d'abort allouer la mémoire du pointeur unicode avec la taille de la chaine ansi avec un malloc ce qui a l'aire de ne pas fonctionner pour ensuite convertir la chaine ansi avec MultiByteToWideChar et que cette fonction mette directement le contenu dans le membre de la structure :s Seulement voila la fonction plante. Si quelqu'un à une idée .

Plus facile avec le code :

GetWindowText(hwEditName,szRecup,MAX_PATH);
uiUser.usri1_name = (LPWSTR) malloc(sizeof(MAX_PATH));
if(!MultiByteToWideChar((UINT)CP_ACP,(DWORD)MB_PRECOMPOSED,(LPSTR)szRecup,(int)-1,(LPWSTR)uiUser.usri1_name,(int)sizeof(uiUser.usri1_name))){
   MessageBox(hwDlg,"capout","ds",MB_OK);
   break;
}

++
deck_bsd
___________________________________
[ [ Lien ]]
lundi 8 janvier 2007 à 19:22:32 | Re : Juste une petit précision.Pour être sur

BruNews

Administrateur CodeS-SourceS
suffit d'un petit

#ifdef UNICODE
#define mycpy wcscpy
etc....

strcpy et consorts sont inline par compilo, par contre appel vers dll pour un cpy c'est perf vb à tout coup.

ciao...
BruNews, MVP VC++
lundi 8 janvier 2007 à 19:24:43 | Re : Juste une petit précision.Pour être sur

vecchio56

Administrateur CodeS-SourceS
sizeof(uiUser.usri1_name) ne plait pas beaucoup...
Pourquoi caster szRecup, c'est déja un LPSTR non?

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 8 janvier 2007 à 19:24:54 | Re : Juste une petit précision.Pour être sur

deck_bsd

Membre Club
Oui merci BruNews, mais cela ne résoud pas vraiment mon problème pour autant car je voudrait bien faire comme j'ai dit juste au dessus :s

++
deck_bsd
___________________________________
[ [ Lien ]]
lundi 8 janvier 2007 à 19:25:12 | Re : Juste une petit précision.Pour être sur

BruNews

Administrateur CodeS-SourceS
Il y a tout ce qu'il faut dans cet exemple:

int __stdcall CreateShortcut(char* szflSrc, char* szLink, char *szTooltip)
{
  IShellLink* psl;
  HANDLE hheap;
  WORD* pwsz;
  IPersistFile* ppf;
  int bOK;
  char *c, *d;
  if(CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
                               IID_IShellLink, (LPVOID*) &psl)) return 0;
  hheap = GetProcessHeap(); bOK = 0;
  if((pwsz = (WORD*) HeapAlloc(hheap, 0, MAX_PATH*2)) == 0) goto outPsl;
  if(psl->QueryInterface(IID_IPersistFile, (LPVOID *) &ppf)) goto outHeap;
  psl->SetPath(szflSrc); psl->SetDescription(szTooltip);
  d = (char*) pwsz; c = szflSrc;
  while(*d = *c++) d++;
  bOK = 0;
  while((*d != '\\') && (d > (char*) pwsz)) d--;
  if(d <= (char*) pwsz) goto outHeap;
  *d = 0;
  psl->SetWorkingDirectory((char*) pwsz);
  if(MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szLink, -1, pwsz, MAX_PATH))
      bOK = (ppf->Save(pwsz, TRUE) == 0);
  ppf->Release();
outHeap: HeapFree(hheap, 0, pwsz);
outPsl: psl->Release();
  return bOK;
}


ciao...
BruNews, MVP VC++
lundi 8 janvier 2007 à 19:25:59 | Re : Juste une petit précision.Pour être sur

vecchio56

Administrateur CodeS-SourceS
OK BruNews, j'ignorais que des appels vers une DLL étaient effectués

_____________________________________
Un éditeur de ressources gratuit pour Windows


1 2 3

Cette discussion est classée dans : précision, juste, deck, bsd, avai


Répondre à ce message

Sujets en rapport avec ce message

[C/win32]2 petites questions :D [ par deck_bsd ] Bonsoir à la communauté cppfrance :p (oufti j'ai la peche ces temps si )voila j'ai deux questions à vous soumettre  :- je supose que l'élément dwTime Question toute simple [ par deck_bsd ] Bonour/bonsoir a tous,Juste comme ça, car j'ai completement oublié le nom de la fonction lstrcmp mais celle qui ne prend pas en compte majuscule/minus Information sur les services [ par deck_bsd ] Bonjour / Bonsoir,Voila j'ai crée mon 1er service lol, mais j'ai deux question en suspen.- Qu'est ce que le SC manager ? Le gestionnaire de service?- Ajouter du texte dans une richedit [ par deck_bsd ] Bonjour à tous,Voila je cherche à savoir comment ajouter du texte, sans couleur ni rien dans ma richtext box, je me disait que vu que je ne voulai déf Récupérer la class de la fenêtre. [ par deck_bsd ] Yop,Voila je voudrai savoir comment récupérer le nom de la class d'une fenêtre par sont handle si possible. Il me semble que une fonction GetClassName HDC dans fichier. [ par deck_bsd ] Yop à tous,Voila j'ai récupérer le HDC du bureau avec la fonction GetDC(hWnd); et je voudrait bien le sauver dans un fichier bmp. J'ai cherché plusie concaténation ds textbox [ par deck_bsd ] Yop à tous,Je voulai savoir si il y avait un message particulier pour ajouter du text à celui déjà présent dans une textbox. Ou alors doit-on faire un lister les périphériques [ par deck_bsd ] Yop,Voila je cherche des API qui me permettrai de lister les périphérique du pc.Merci d'avance.++deck_bsd___________________________________[http:/ SDK vista [ par deck_bsd ] Yop à tous,Je voudrait savoir si il existe une image iso ou autre du SDK pour vista. Car j'ai télécharger le programme d'installation sur le site de m nouveau projet pour driver. [ par deck_bsd ] Yop à tous,Voila , je voudrait develloper un driver avec soit VS 2008 , 2005 ou dev-cpp , mais voila pour aucun , il n'existe une option driver dans l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales