IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Problême migration VS08 => VS 05 , nombreux types non reconnus (problême de headers?)


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 105
    Par défaut Problême migration VS08 => VS 05 , nombreux types non reconnus (problême de headers?)
    Bonjour à tous,
    J'ai retrouvé quelques projets compilés sous VS08 et je possède chez moi la version 05. Comme je ne peut pas ouvrir directement les .sln/.vcproj des version 08, j'ai du recréer des projets et y coller les sources.
    Seulement, lors de la compilation, j'ai pas mal de types inconnus (undeclared identifier) qui devraient normalement être connus.
    Je m'explique avec un petit exemple: l'appel de NtQueryInformationProcess.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <iostream>
    #include <Winternl.h>
    #include <Windows.h>
    #include <Winnt.h>
    //Les headers sont éparpillés un peu partotu sur d'autres includes, mais si je ne me trompe pas, ces trois devraient faire l'affaire.
    typedef NTSTATUS (__stdcall * pfnNtQueryInformationProcess) (HANDLE , PROCESSINFOCLASS , PVOID, ULONG, PULONG);
     
    int main(int argc, char ** argv){
    PROCESS_BASIC_INFORMATION pbinfo;
    NTSTATUS status;
    HMODULE hNtdll = LoadLibraryA("Ntdll");
    pfnNtQueryInformationProcess pNtQueryInformationProcess = (pfnNtQueryInformationProcess) GetProcAddress(hNtdll, "NtQueryInformationProcess");
     
    status= pNtQueryInformationProcess(GetCurrentProcess(), ProcessBasicInformation, &pbinfo, sizeof(PROCESS_BASIC_INFORMATION), &pbinfo_size);
    //...
    return 0;
    }
    Dans cet exemple qui compilait très bien sur ma machine de test, sous VS05 j'ai les types NTSTATUS, PROCESS_BASIC_INFORMATION et PROCESSINFOCLASS qui ne sont pas reconnus lors de la compilation (erreur de type "undeclared identifier").
    Sachant que la machin de test et ma machine persos sont toutes les deux sous WinXp pro, il doit y avoir eu des headers plus "complets" installés sur la machine de test, surement dus à la version 08 de visual.
    J'aimerais donc savoir ou se procurer se genre de header, sachant que pour le moment j'ai VS05 ed. pro et la MSDN 2005 qui va avec, et le DDK donc je ne sais pas vraiment quoi installer de plus (un SDK ou quelque chose dans le genre?)

    Merci pour vos réponses (je ne sais pas si un poste similaire existe, mais ne sachant pas l'origine du problème je n'ai ps vraiment pu trouver).
    A+

    edit: petite précision, je viens de tester l'installation du SDK VS2005 (http://www.microsoft.com/downloads/d...displaylang=en) et j'ai eu droit à une belle erreur ... les ennuis continuent -_-

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 105
    Par défaut
    Bon, je pense avoir un début d'identification du problème.
    En fait, j'ai installé le DDK Windows juste après visual, il ya quelques temps déjà, et j'avais déjà des soucis au niveau des symboles. Le problème semble être réglé dans la mesure où, quand je lance un programme en mode debug, j'obtiens l'output suivant (j'ai la version fr de MSDNAA donc désolé :s):
    'test.exe' : Chargé 'C:\Documents and Settings\X\Mes documents\Visual Studio 2005\Projects\myproj\test.exe', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'test.exe' : Chargé 'C:\WINDOWS\system32\ntdll.dll', Symboles chargés (informations sources supprimées).
    'test.exe' : Chargé 'C:\WINDOWS\system32\kernel32.dll', Symboles chargés (informations sources supprimées).
    Par contre le compilo ne génère pas de fichier .pdb en mode debug (pas moyen de placer un breakpoint donc, et autres). Si vous savez d'ou vient le problème.
    Y'aurait-til un lien avec mon problème de départ? Si le compilo va chercher les définitions des structures dans les .pdb, ça pourrait être le cas.
    Je vais continuer un peu mes recherches, en attendant , hésitez pas à émettre votre avis.

Discussions similaires

  1. Problème Migration BCB5 -> BCB6
    Par Xav++ dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/08/2006, 10h02
  2. Réponses: 1
    Dernier message: 21/12/2005, 19h08
  3. Réponses: 8
    Dernier message: 15/11/2005, 18h06
  4. Problème Migration Oracle
    Par bob_doulz dans le forum Administration
    Réponses: 4
    Dernier message: 20/04/2004, 09h56
  5. Réponses: 3
    Dernier message: 18/11/2002, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo