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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|