Problème création de service sous Visual Studio 2005 (avec GetFilesAttributesA)

Signaler
Messages postés
12
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
25 août 2010
-
Messages postés
12
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
25 août 2010
-
Bonjour,

Je suis débutant en C++. Je dois créer un service tournant sur Windows XP pour mon entreprise.

J'ai préalablement programmé mon outil en tant qu'application console, ce que je n'aurais pas du faire.

J'ai une fonction qui permet de tester l'existence d'un fichier. J'ai trouvé ce bout de code sur le forum. Elle fonctionne pour une application console mais pas pour le service.

Voici le contenu du fichier cpp:

#include <cstdlib>
#include
#include <windows.h>
#include <stdafx.h>

#include "function_verif_file_exists.hpp"

using namespace std; // POUR POUVOIR UTILISER string !!

int function_verif_file_exists(string fileName)
{
return (0 <= (intptr_t)GetFileAttributesA(fileName.c_str()));
}


L'erreur retournée est la suivante:

error C3861: 'GetFileAttributesA' : identificateur introuvable


Quelqu'un aurait-il une idée ?

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
using namespace std;
Vire cette daube, un service n'est pas du tout l'endroit pour transformer l'espace mémoire en gruyère.
Bosse avec du char[].

#include <cstdlib>
#include
Idem à virer.

Un service doit avoir le code le plus court et le plus efficace possible, les allocs et desallocs non indispensables sont à proscrire.

#include <windows.h>
devrait suffire dans la plupart des cas.
Essaie avec GetFileAttributes (sans le A).

Vu que tu es sur VC++, utilise selon ton cas:
VS 2008: http://www.cppfrance.com/code.aspx?ID=44835
VS 2005: http://www.cppfrance.com/code.aspx?ID=36940
Tu choisis le template cDlg dans le combo et ensuite dans VS tu effaceras le code de la dialog.

ciao...
BruNews, MVP VC++
Messages postés
12
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
25 août 2010

Merci de m'aider BruNews.

Pourrais tu m'indiquer la démarche pour utiliser un template ? J'ai mon projet d'une part, et ton template. Que dois-je faire ?

Merci d'avance.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
C'est le prog de template qui doit générer le projet.
Ensuite tu double clic sur le vcproj et ça t'ouvre VS avec ton projet correctement configuré pour faire le service.

Ensuite regarde ici, tu auras le squelette principal:
http://www.cppfrance.com/codes/CREER-SERVICE_24463.aspx

ciao...
BruNews, MVP VC++
Messages postés
12
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
25 août 2010

En fait, je voulais savoir à quel endroit je dois insérer mon code dans le projet créé.

Pour GetFileAttributesA, j'avais essayé sans le A ou avec le W, en vain.