Accueil > Forum > > > > undefined value
undefined value
samedi 27 octobre 2007 à 16:25:28 |
undefined value

elpens
|
Bonjour, j'ai un petit soucis avec un test qui ne passe pas... J'ai un Char *strName qui a comme valeur <undefined value> Je voudrais l'empêcher de passer dans ma boucle. Pour ce faire, j'ai testé: - if(strName != NULL) - if(strName != "") - if(strName != " ") - if(sizeof(strName) > 0) //étonnament, sizeof = 4... Mais aucun de ces tests ne fonctionne, elle passe toujours dans ma boucle Merci pour votre aide  ElpenS 
|
|
samedi 27 octobre 2007 à 16:50:38 |
Re : undefined value

elpens
|
Excusez-moi... En fait, il suffit de faire if(*fctStr != NULL)... bien-sûr Mais en faisant cela, le probleme maintenant est que j'obtient l'erreur: Attempted to read or write protected memory, This is often an indication that memory is corrupted...Merci pour votre aide!  ElpenS 
|
|
samedi 27 octobre 2007 à 17:20:46 |
Re : undefined value

juju12
|
Il sort d'où ton pointeur? Parce que là apparemment tu essayes d'accéder à une zone interdite... Mets voir le code avant.
|
|
samedi 27 octobre 2007 à 17:30:48 |
Re : undefined value

elpens
|
En fait, je vais chercher le nom des fonctions API présentent dans un exe. Donc cette addresse est de l'ordre de 0x85000000, d'ou le problème mémoire...  ElpenS 
|
|
samedi 27 octobre 2007 à 18:05:12 |
Re : undefined value

juju12
|
Ouais d'accord mais du moment que tu utilises tout correctement...j'insiste pour voir le code  Au passage quelques remarques sur tes premiers posts : strName != "" ou strName != " " Tu testes ici si ton pointeur pointe sur les chaînes de caractères "" et " " que le compilateur va donc créer quelque part sur la pile ou dans les données constantes...ca ne sert strictement à rien; si tu veux comparer des chaînes il faut faire par exemple if strName[0]!='\0' ou *strName!='\32' etc... sizeof(strName)>0 Attention sizeof ne renvoie en aucun cas la taille de la chaîne mais la taille du pointeur qui sert à la référencer (ici 4, t'es en Win32). *fctStr != NULL Là ca ne teste pas si le pointeur est invalide mais seulement si le premier caractère est le caractère nul (équivalent à fctStr[0]!='\0'). En fait pour tester si le pointeur est valide ta toute première solution était la bonne if(strName != NULL); du moment que le pointeur pointe au bon endroit, ce qui n'a pas l'air d'être ton cas, donc le code serait utile.
|
|
samedi 27 octobre 2007 à 18:22:28 |
Re : undefined value

elpens
|
Yes, comme quoi on en apprend tout les jours! Bon, le code maintenant: //Je vais rechercher les fonctions de mon PE while(pimage_thunk_data->u1.AddressOfData!=0) { try { dwAPIaddress = pimage_thunk_data->u1.AddressOfData; pFctName = pImageBase + dwAPIaddress + pimage_section_header->PointerToRawData - pimage_section_header->VirtualAddress +2;
//Insert value into struct fctData[tabCount].dllName = (pImageBase + pimage_import_descriptor->Name + pimage_section_header->PointerToRawData -pimage_section_header->VirtualAddress); fctData[tabCount].fctAddress = (dwThunk + pimage_nt_headers->OptionalHeader.ImageBase); fctData[tabCount].fctName = pFctName;
... Ensuite, quand je parcours mon fctData[], je n'ai pas de problème, tant que la fonction a un nom. Mais par exemple, SHLWAPI.dll contient des fonctions qui sont appelé par #436, c-a-d que je ne peux pas récupérer le nom de la fonction. Donc, quand je veux lire mon fctData[i].fctName et qu'il n'y a pas de nom, mon programme plante car l'address enregistree est protégé... Est-ce clair? Merci en tout cas, ce post n'aura pas été inutile   ElpenS 
|
|
samedi 27 octobre 2007 à 19:10:40 |
Re : undefined value

juju12
|
C'est plus clair comme ça...Effectivement le IMAGE_THUNK_DATA est une union qui représente soit un pointeur vers le nom, soit un ordinal, soit autre chose...En fait apparemment il suffit de tester le bit de poids fort; si c'est 1 c'est un ordinal en fin du moins faut prendre les 31 bits de poids faible...enfin un truc de ce genre; j'ai trouvé cette page qui pourrait t'aider, j'ai juste survolé mais ils parlent effectivement de ce problème. [ Lien ]Bonne prog.
|
|
dimanche 28 octobre 2007 à 10:06:51 |
Re : undefined value

omnia
|
- if(sizeof(strName) > 0) //étonnament, sizeof = 4...
strlen serait plus approprié, pour info, les réponses aont déja été donnés par les autres
bon codage :p
|
|
Cette discussion est classée dans : passe, value, undefined, strname, if
Répondre à ce message
Sujets en rapport avec ce message
"graphics.h" problème de compilation [ par carole ]
J'utilise l'ide Borland 4.5 et je souhaite faire du graphisme.Mon problème et que lorsque je compile l'exemple borland ci dessous,#include #include #i
Filtre passe bande [ par ElBlacky ]
Salut je suis à la recherche d'une routine qui soitcapable de découper un fichier son en plusieurs frequences, un équalizeur en fait, mais avec plus d
comment protéger l'ouverture d'un fichier ? [ par f1cobra ]
Bonjour, je voudrais protéger l'ouverture d'un fichier excell par un mot de passe, de manière a ce que seules les personnes ayant le mot de passe puis
* Mot de passe [ par shenron ]
Slt,vs savez comment on fait pour lorsqu'un user saisit une chaine de caractère, ce k'il tape se met en * comme si c t un mot de passe?
vérification du mot de passe [ par biscot19 ]
Bonjour,Je cherche comment vérifier un mot de passe NT en C++.J'ai vu que la fonction NetUserChangePassword permettait de le faire mais comme son nom
Mot de passe à l'ouverture d'une BDD [ par lyricman ]
Bonjourje fais un programme en C++ (Borland C++ Builder 6) avec une base de données.le pb est que chaque fois que j'exécute mon programme, il me deman
acces base de donnée DAO protégée par mot de passe [ par Frederyck ]
Bonjour,Alors je voudrais savoir comment faire pour acceder à une base de donnée Access 97 via DAO quand celle ci est protégée par mot de passe.J'aime
Problème de pointeur [ par ngryman ]
Salut à vs, g un gros pb inexplicable pr moi, alors si qqn trouvait la solution ce serait un dieu.Voilà je m'explik, j'ai une classe X qui possède un
PROBLEME AVEC DEVC++ ET GLUT [ par arfalchon ]
Je n'arrive à compiler aucune source utilisant GLUT avec DEVC++, il me marque à chaque fois : [Linker error] undefined reference to `__glutInitWithExi
Probleme DevCPP & Glut [ par Kaliman ]
Salut à tous j'essaye d'apprendre à utiliser OpenGL grâce à DevCpp mais je n'ai jamais réussi à utiliser glut qui crée des erreurs de link.J'ai ajoute
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|