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

AmStErDaMnEd Messages postés 12 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 25 août 2010 - 7 janv. 2009 à 10:54
AmStErDaMnEd Messages postés 12 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 25 août 2010 - 7 janv. 2009 à 17:23
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 janv. 2009 à 11:19
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++
0
AmStErDaMnEd Messages postés 12 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 25 août 2010
7 janv. 2009 à 14:56
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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 janv. 2009 à 16:13
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++
0
AmStErDaMnEd Messages postés 12 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 25 août 2010
7 janv. 2009 à 17:23
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.
0
Rejoignez-nous