Quand je compile mon programme, il dit qu'il ne trouve pas atlbase.h. Est-ce que je manque un SDK ou quelque chose?
Microsoft ATL (Active Template Library), qui inclut l'en-tête atlbase.h
, est inclus dans le SDK Windows 2003 , mais il n'est pas inclus dans les versions plus récentes de Windows SDK. Il est également inclus avec les éditions professionnelles de Visual Studio.
Il est inclus avec Windows Driver Kit Version 7.1.0 .
Pour les utilisateurs de Visual Studio 2015, assurez-vous que Common Tools pour C++ est installé (faisant partie du programme d'installation du VS).
Solution pour l'édition Visual Studio 2017 Express
J'ai eu la même erreur lors de la construction d'un projet COM C++ dans Visual Studio 2017 Express Edition. Comme mentionné par plusieurs utilisateurs ici, la prise en charge d'ATL n'est pas incluse dans l'édition Express de Visual Studio. Donc, pour construire un projet C++ COM/ATL, vous avez besoin au moins de la Community Edition.
Si vous avez vraiment besoin d'utiliser l'édition Express, vous pouvez télécharger et installer le Build Tools for Visual Studio 2017 . Assurez-vous d'activer le composant 'Visual C++ ATL pour x86 et x64' lors de l'installation.
Après cela, ajoutez des répertoires VC++ supplémentaires dans les propriétés du projet:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\lib\x86
Le compilateur VC++ devrait maintenant pouvoir trouver les fichiers source et de bibliothèque ATL.
Cela semble faire partie du Windows Platform SDK .
Vous devriez rechercher le fichier sur votre ordinateur. Cela vous dira si vous le manquez.
Avec Visual Studio 2017 Community Edition, nous avons installé "Prise en charge de Visual C++ ATL" et MFC et ATL. L'erreur s'est encore produite dans notre projet x64.
Nous avons corrigé certains chemins avec les deux commandes suivantes:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>mklink /d atlmfc "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc"
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib>mklink /d AMD64 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib\x64
Nous avons finalement trouvé l'en-tête atlbase.h
dans C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include
. Ce chemin n'a tout simplement pas été ajouté au répertoire VC Include par vsvars32.bat
; l'en-tête n'a donc pas été trouvé lors de la construction.
vsvars32.bat comprend la ligne suivante:
@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%`.
Ceci résolu à C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include
dans notre machine.
Nous avons créé une jonction de répertoire afin que l'outil de génération trouve atlbase.h
dans le répertoire attendu (il s'agit de la première commande de la section Solution ci-dessus):
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>mklink /d atlmfc "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc"
Ensuite, l'éditeur de liens n'a pas trouvé atls.lib
(voir Impossible d'ouvrir le fichier atls.lib ). Cela était dû à la structure de fichier attendue: lib
devait contenir directement la version x86 des bibliothèques et lib\AMD64
devait contenir les variantes x64. À la place, lib\x86
contenait les versions x86 et lib\x64
contenait les versions 64 bits. Depuis que nous construisons un projet 64 bits, la création d'un autre répertoire indésirable d'AMD64 à x64 a résolu le problème:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib>mklink /d AMD64 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\lib\x64
J'ai eu le même problème avec le projet exemple. J'ai spécifié les propriétés du projet exemple et le projet exemple compilé avec succès.
Visual Studio 8
Pour en-têteC:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include
Pour le fichier .lib
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib