Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISER L'IP CONTROLE


Information sur la source

Description

Cliquez pour voir la capture en taille normale
Il s'agit d'un code simple pour montrer comment on se sert de l'IP Control.
il convertira l'ip DWORD en CHAR *

 

Conclusion

faite par de vos remarques.
Merci
PS : Merci a brunews (Pour m'avoir mis sur la voie, et m'avoir aider pour la conversion).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de wxccxw le 01/01/2007 22:25:22

Merci de laisser vos commentaires,
j'ai oublier de preciser que de plus ce code posseder le style XP

signaler à un administrateur
Commentaire de BruNews le 01/01/2007 23:13:28 administrateur CS

oh le vilain sprintf...

void __stdcall bnIpFormatStr(DWORD dwip, char *psz)
{
  DWORD n;
  n = dwip >> 24;
  if(n < 100) *psz++ = '0';
  if(n < 10) *psz++ = '0';
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 16) & 0xFF;
  if(n < 100) *psz++ = '0';
  if(n < 10) *psz++ = '0';
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 8) & 0xFF;
  if(n < 100) *psz++ = '0';
  if(n < 10) *psz++ = '0';
  psz = bnultoa(n, psz);
  *psz++ = '.';
  dwip &= 0xFF;
  if(dwip < 100) *psz++ = '0';
  if(dwip < 10) *psz++ = '0';
  bnultoa(dwip, psz);
}

signaler à un administrateur
Commentaire de wxccxw le 01/01/2007 23:30:06

je vais rajouter sa. mais ne pense tu pas que cela aura une approche un peu difficile pour les debutants ?

signaler à un administrateur
Commentaire de BruNews le 01/01/2007 23:36:38 administrateur CS

Personne ne demande de comprendre bnultoa() comme on ne demande à personne de savoir l'implem de sprintf(), suffit de l'employer.
Par contre on peut au moins coder ce mini algo de formatage qui justifie la source, sinon quel intérêt.

signaler à un administrateur
Commentaire de BruNews le 01/01/2007 23:41:33 administrateur CS

J'ai vérifié, le compilo avait corrigé mon truc à la va vite mais comme ce n'est pas une raison je remets la forme correcte:void __stdcall bnIpFormatStr(DWORD dwip, char *psz)
{
  DWORD n;
  n = dwip >> 24;
  if(n < 100) {
    *psz++ = '0';
    if(n < 10) *psz++ = '0';
  }
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 16) & 0xFF;
  if(n < 100) {
    *psz++ = '0';
    if(n < 10) *psz++ = '0';
  }
  psz = bnultoa(n, psz);
  *psz++ = '.';
  n = (dwip >> 8) & 0xFF;
  if(n < 100) {
    *psz++ = '0';
    if(n < 10) *psz++ = '0';
  }
  psz = bnultoa(n, psz);
  *psz++ = '.';
  dwip &= 0xFF;
  if(dwip < 100) {
    *psz++ = '0';
    if(dwip < 10) *psz++ = '0';
  }
  bnultoa(dwip, psz);
}

bien sur ne tester <10 QUE si est <100.

signaler à un administrateur
Commentaire de julienbj le 02/01/2007 11:39:50

J'avais juste une petite remarque quand au décalage de bits pour récupérer les différentes valeurs des champs, ne pourrais-tu pas utiliser une union pour ca?

typedef union u_ipfield
{
  struct
  {
    BYTE ip0;
    BYTE ip1;
    BYTE ip2;
    BYTE ip3;
  } desc;
  DWORD val;
} IPFIELD;

Comme ca pour récupérer la valeur du controle:
IPFIELD monIp;
SendDlgItemMessage(Dlg,IDC_IP,IPM_GETADDRESS, 0 ,(LPARAM) &(monIp.val));
et ensuite pour travailler sur les différents champs de ton ip:
monIp.desc.ip0 ou monIp.desc.ip1 etc...

Meme si tu n'utilises pas d'union, qu'est ce qui justifie l'utilisation de toutes ces variables globales? Normalement il n'y en a besoin d'aucune dans ton code.
Pas besoin de Dlg, tu ne t'en sers que dans ta winmain, alors mets cette variable dans le winmain!
Pour les autres, tu ne t'en sers que dans ta boucle de message, mets les uniquement dans ta boucle de message.

signaler à un administrateur
Commentaire de julienbj le 02/01/2007 11:44:37

Ah si une autre remarque!
Tu codes en quoi? C ou C++?

Parcque le new pour créer le buffer ca ressemble (et ca fait meme plus que ressembler) à du c++ alors que le reste de ton code est en C (sauf le placement de la variable MSG en plein milieu du code).

Qui plus est, on a bien un new, mais pas de delete! Attention, c'est comme un malloc sans free (en C)!

signaler à un administrateur
Commentaire de julienbj le 02/01/2007 11:49:45

Et encore une dernière pour la route!
Dans le traitement du IDCANCEL:
Pourquoi un PostQuitMessage? J'aurais utilisé un DestroyWindow et dans le message WM_DESTROY, j'aurais fait à ce moment la un PostQuitMessage.

Un passage de MSDN pour DestroyWindow:
"The function first destroys child or owned windows, and then it destroys the parent or owner window."

Voila, je crois que cette fois-ci ce sera tout. :D

signaler à un administrateur
Commentaire de wxccxw le 02/01/2007 15:43:27

merci je vais corriger tout sa dans la soiree.

signaler à un administrateur
Commentaire de decize le 02/01/2007 17:29:17

"Personne ne demande de comprendre bnultoa() comme on ne demande à personne de savoir l'implem de sprintf(), suffit de l'employer.
Par contre on peut au moins coder ce mini algo de formatage qui justifie la source, sinon quel intérêt."

Ca me pause un probleme, j'ai du mal à utiliser une fonction que je ne comprend pas.
Bien sur on a "man" ou tout autre recherche pour trouver le prototype et l'application de la fonction.
Mais de la à utiliser la fonction sans la comprendre ?
Je suis sur qu'avec une petite ligne de commentaire dans le code ce serait nikel ;).

signaler à un administrateur
Commentaire de BruNews le 02/01/2007 17:50:20 administrateur CS

bnultoa partout dans mes sources, comme ultoa() en moins idiot nettement plus rapide, retourne pointeur sur fin d'écriture.
http://www.cppfrance.com/code.aspx?ID=36937
dans bnIntA.h et c.

char buf[40], *c;
c = bnultoa(127, buf);
*c++ = '-';
bnultoa(25, c);
etc...
buf contient "127-25" sans strcat ni aucun reparcours stérile de la chaine.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

IP Address Control [ par zeratul67 ] Voila, c un common control que j'arrive pas à utiliser.----------- Extrait du code ---------------------INITCOMMONCONTROLSEX lpInitCtrls;lpInitCtrls.d questions diverses API [ par youpiyoyo ] j'aurai quelques petites questions a vous posés a propos des lists controls et des tab control en API win32 je debute dans la prog api win32 et pour l list control api win32 [ par ThePiepie12 ] g créer une list control avec l'option Report sous visual C++.Pb: je voudrais ajouter des colonnes à cette list control.Merci d'avance. Win API - Tree Control - Comment effacer ? [ par k_n1 ] Salut, j'ai une question qui va surement vous paraitre relativement simple mais sur laquelle je bloque, sans reussir a trouver de reponse ni ici ni s IP CONTROL [ par T_Mehdi ] Salut^_____^.ma question est la suivante :j'aimerai s'avoir comment on peu recuperé l'adress IP apartir du control : IP CONTROL de IDE Visual C++merci Spin control API win32 [ par ralebole ] Bonjour à tous J'ai un spin control dans une boite de dialogue associer à un edit. Mon probleme est quand je clique sur la fleche du bas cela augmente [API] graphique [ par Xs ] salut !bon, ca fait un bail que j'aimerai faire des graphique en C++. Mais la, je m'y attaque serieusement.la meilleur illustration de ce que je dis s API sous DOS [ par kip ] Est il possible d'utiliser les API a partir d'un programme DOS compilé par un compilateur DOS (turbo c++) Ceci dans la fenetre DOS de windows.merci d' TCP/IP [C++ Linux G++] Pas encore poste (?) [ par Niko2012 ] Bon, je suis en train de m'initier au tcp/ip sous linux et j'en bave...je recherche:-de bon tutoriels (si vous en connaissez en francais c mieux)-des erreur dans la bibliothèque control.h [ par ronaldo1 ] J'essai de faire un petit code de rendu directshow mais le compilateur détect des erreur dans la bibliothèque control.h (issue du SDK de Directx9.0 SU


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.