Compiler un petit bout de C du site Microsoft ! [VC++] - C++ - Programmation
Marsh Posté le 24-06-2003 à 18:05:11
ca compile nickel chez moi (mis a part les warnings).
t'as bien fais : new project -> win32 application -> console application + empty project ?
a mon avis t'as omis le "#define _WIN32_WINNT 0x0501" tout en haut
Marsh Posté le 24-06-2003 à 18:16:41
Bah moi j'avais fait :
New Projects -> Win32 Application -> En Empty Project !
Ensuite, j'ai créé un ichier .c, et j'ai lancé la compilation, et il me trouve les 9 erreurs dont je donne la premeire au dessus !
Par contre, je viens encore de rééessayer, et j'ai bien inclus tout le code !
What's wrong?
Marsh Posté le 24-06-2003 à 18:22:00
y a "int main(void)" ds le code.
faut bien faire :
New Project (win32 project) puis ds les application settings, faire Console application + empty project.
Marsh Posté le 24-06-2003 à 18:40:02
Attends, je fais un Win32 Application ou un Win32 Console Application?
Tu dois te dire que je suis un peid, mais il n'est pas possible de suivre à la lettre les steps que tu donnes (je n'ai pas de Win32 Project disponible en tant que tel dans les différents projets possibles)
Marsh Posté le 24-06-2003 à 19:19:01
Oui, en effet, j'ai VS6 (désolé d'avoir omis ce détail)
Donc, j'ai fait :
Win32 Console Application -> Empty Project !
Ensuite, j'ai fait new File, et j'ai collé le code et j'exécute, mais ca me donne les erreurs dont je t'ai parlées !
en fait, il ne "voit" pas les fonctions...
c:\program files\microsoft visual studio\myprojects\tyutyu\dsdsq.cpp(40) : error C2065: 'GetVolumeNameForVolumeMountPoint' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\tyutyu\dsdsq.cpp(54) : error C2065: 'FindNextVolumeMountPoint' : undeclared identifier
....
Marsh Posté le 24-06-2003 à 23:40:56
je viens d'essayer de compiler avec vc6.
ca marche pas.
d'après le MSDN, GetVolumeNameForVolumeMountPoint est déclaré dans winbase.h et je l'ai pas dans le mien.
soit faut mettre un service pack à visual studio, soit c'est une nouveauté vs7.
Marsh Posté le 24-06-2003 à 23:54:20
Euh....Bon, bah j'ai plus qu'a retourner me coucher moi...
Arf, c'est vraiment dommage!
En tout cas, merci pour ton aide !
Moi qui comptais me faire une DLL avec une fonction pour retrouver le num de série de mes Disques durs, si déja ca marche pas ici, c'est clair que ca risque pas de marcher ailleurs...
Marsh Posté le 25-06-2003 à 00:41:29
si tu veux juste récupérer le numéro de série :
Code :
|
après (ou avant, c'est plus pratique) pour énumérer tes DD :
Code :
|
edit : je promets pas que c'est super codé, y en a peut être qui vont râler que c'est codé avec les pied, mais ca a l'air de pas trop mal marcher pour l'instant.
il te reste plus qu'a MSDNiser GetVolumeInformation et GetDriveType.
Marsh Posté le 25-06-2003 à 02:46:58
Parfait, ca marche !
Par contre, je me demande bien pourquoi le code du site de MSoft ne marche pas !
Merci en tout cas
Marsh Posté le 25-06-2003 à 11:34:39
VisualC++ a écrit : Vis a vis de ton pb du code MSN, c koi ton OS ? |
c vrai qu'a cause du #define du haut, faut mini un 2000
pour la fct ki pose pb, d'apres les man :
Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Marsh Posté le 25-06-2003 à 12:15:54
Bah j'ai WinXP Pro, et comme je vous l'ai dit, en fait, toutes les fonctions génèrent une erreur...
Marsh Posté le 25-06-2003 à 12:19:28
Normalement XP Pro devrait passer, mais oui la question c vis a vis de la doc de la fonction c clairment marque en gros noyau NT
La je viens de teste un gros copie coller ds un Win32 console vide du code sous VS.Net et ca marche (sous XP pro)
Marsh Posté le 25-06-2003 à 12:41:52
Cela semble être un problème de Platform SDK. Tu utilises les headers fournis avec Visual Studio 6.0 qui ne référencent pas ces fonctions (à l'époque Windows 2000 n'était pas sorti).
Il faut donc que tu ailles télécharger le dernier Platform SDK disponible ici pour pouvoir profiter de ces fonctions.
Marsh Posté le 25-06-2003 à 13:54:23
gatorette a écrit : Cela semble être un problème de Platform SDK. Tu utilises les headers fournis avec Visual Studio 6.0 qui ne référencent pas ces fonctions (à l'époque Windows 2000 n'était pas sorti). |
D'accord, je veux bien essayer ca, c'est une bonne idée....mais alors, la question, c'est de savoir si, en compilant tout ca dans un Dll, quelqu'un utilisant une autre version de Windows, genre 2000 (ou 98?) sera capable d'utiliser les fonctions incluses dans le dll ! (je compte faire un MFC Regular Dll, car pour le moment, je ne sais pas faire autrement comme Dll pouvant sutiliser avec VBA par exemple)
Marsh Posté le 25-06-2003 à 15:16:58
Yoyo@ a écrit : |
Bah personne pour répondre sur cette question?
Marsh Posté le 25-06-2003 à 15:19:31
Tu ne devrais pas avoir de problèmes du moment que tu respectes les indications de la documentation. Par exemple, la fonction FindFirstVolume n'est disponible que sous Windows 2000 et XP.
Le Platform SDK est un SDK et pas une bibliothèque. C'est à dire qu'il n'ajoute pas de nouvelles fonctions mais te permet d'utiliser les fonctions présentes dans les versions récentes de Windows ou celles qui n'étaient pas documentées auparavant.
Marsh Posté le 25-06-2003 à 17:12:11
Merci pour les infos, je comprends mieux now !
Il me faut les bons SDK pour compiler et le bon Windows pour exécuter
Marsh Posté le 24-06-2003 à 17:52:23
Salut,
Je suis plutot un débutant avec Visual C++! Aussi, j'aurais besoin de votre aide (je suis sur que c'est facile) pour que le code à la page suivante marche :
http://msdn.microsoft.com/library/ [...] points.asp
Personnellement, j'ai créé une simple Console Application (Empty Project) et créé un fichier .c, et j'ai lancé le build + compile, et a priori, il me met des erreurs du type :
c:\program files\microsoft visual studio\myprojects\rudimentaire\essai.cpp(40) : error C2065: 'GetVolumeNameForVolumeMountPoint' : undeclared identifier
Donc, je suppose qu'il manque quelque chose... mais quoi? Dans ce qui est marqué dans les requirements, il me semble que j'ai tout ! (c'est par défaut avec VC++6)
Merci pour votre aide.