Bonjour à tous,
Je dois développer une application qui récupère les données des cartes
Vitale. Pour cela je dois utiliser la librairie api_lec.lib. Je l'ai incluse
à mon projet anisi que les headers qui étaient fournis avec. Avec ce code
tout simple :
ompilateur: Default compiler
Building Makefile: "C:\Documents and
Settings\Administrateur\Bureau\Lecole\Vitale\Makefile.win"
Exécution de make...
make.exe -f "C:\Documents and
Settings\Administrateur\Bureau\Lecole\Vitale\Makefile.win" all
g++.exe -D__DEBUG__ -c main.cpp -o
ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32"
-I"include/c++/3.4.2" -I"include" -I"C:/Documents and
Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6:
include/api_lec.h:162: error: `WORD' does not name a type
include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7:
include/api_cps.h:19: error: `CPS_StatusService' does not name a type
include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type
include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type
include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type
include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type
include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type
include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair?
Merci.
Je dois développer une application qui récupère les données des cartes Vitale. Pour cela je dois utiliser la librairie api_lec.lib. Je l'ai incluse à mon projet anisi que les headers qui étaient fournis avec. Avec ce code tout simple :
[...]
voici ce que le compilateur me donne :
ompilateur: Default compiler Building Makefile: "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" Exécution de make... make.exe -f "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" all g++.exe -D__DEBUG__ -c main.cpp -o ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" -I"C:/Documents and Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6: include/api_lec.h:162: error: `WORD' does not name a type include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7: include/api_cps.h:19: error: `CPS_StatusService' does not name a type include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair? Merci.
Sans en voir plus ca va pas être facile, ce sont des problèmes dans les headers, que l'on a pas. Mais à la vue de ce type d'erreurs, je pencherai pour une solution spécifique à cette librairie.
Il n'y a pas un exemple fourni avec ? qui dirait par exemple de définir, à la compilation, certaines constantes pour le préprocesseur ? du genre il faudrait définir __WIN32__, _WINDOWS, _APILECTURE_ ou quoique ce soit d'autre ? [ donc soit avec un #define dans le fichier, soit avec -D__WIN32__ ] ? Et si ce n'est pas ca, est ce qu'ils imposent un fichier .h à inclure obligatoirement avant un autre ? Et dans le même genre de solution, le compilateur ne serait-il pas appelé avec une option genre -std=c++98 ou -ansi et qui ferait que certaines features de la librairie serait désactivées ? Si l'on a la ligne de l'appel de g++ en entier, rien n'y figure, sinon vérifier quand même que c'est pas le cas. Si c'était le cas, le .h contiendrait des #ifndef STD_... ou #ifndef STRICT_ANSI avant la définition des types qui ne sont pas trouvés (ca c'est valable en C sous gcc, je ne sais pas si il y a des équivalents C++).
Sans voir les deux .h qui sont concernés, je penche pour ce genre de solutions.
-- Anthony Fleury
Bonjour à tous,
Bonjour,
Je dois développer une application qui récupère les données des cartes
Vitale. Pour cela je dois utiliser la librairie api_lec.lib. Je l'ai incluse
à mon projet anisi que les headers qui étaient fournis avec. Avec ce code
tout simple :
[...]
voici ce que le compilateur me donne :
ompilateur: Default compiler
Building Makefile: "C:Documents and
SettingsAdministrateurBureauLecoleVitaleMakefile.win"
Exécution de make...
make.exe -f "C:Documents and
SettingsAdministrateurBureauLecoleVitaleMakefile.win" all
g++.exe -D__DEBUG__ -c main.cpp -o
ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32"
-I"include/c++/3.4.2" -I"include" -I"C:/Documents and
Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6:
include/api_lec.h:162: error: `WORD' does not name a type
include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7:
include/api_cps.h:19: error: `CPS_StatusService' does not name a type
include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type
include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type
include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type
include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type
include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type
include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair?
Merci.
Sans en voir plus ca va pas être facile, ce sont des problèmes dans les
headers, que l'on a pas. Mais à la vue de ce type d'erreurs, je
pencherai pour une solution spécifique à cette librairie.
Il n'y a pas un exemple fourni avec ? qui dirait par exemple de définir,
à la compilation, certaines constantes pour le préprocesseur ? du genre
il faudrait définir __WIN32__, _WINDOWS, _APILECTURE_ ou quoique ce soit
d'autre ? [ donc soit avec un #define dans le fichier, soit avec
-D__WIN32__ ] ? Et si ce n'est pas ca, est ce qu'ils imposent un fichier
.h à inclure obligatoirement avant un autre ? Et dans le même genre de
solution, le compilateur ne serait-il pas appelé avec une option genre
-std=c++98 ou -ansi et qui ferait que certaines features de la librairie
serait désactivées ? Si l'on a la ligne de l'appel de g++ en entier,
rien n'y figure, sinon vérifier quand même que c'est pas le cas. Si
c'était le cas, le .h contiendrait des #ifndef STD_... ou #ifndef
STRICT_ANSI avant la définition des types qui ne sont pas trouvés (ca
c'est valable en C sous gcc, je ne sais pas si il y a des équivalents C++).
Sans voir les deux .h qui sont concernés, je penche pour ce genre de
solutions.
Je dois développer une application qui récupère les données des cartes Vitale. Pour cela je dois utiliser la librairie api_lec.lib. Je l'ai incluse à mon projet anisi que les headers qui étaient fournis avec. Avec ce code tout simple :
[...]
voici ce que le compilateur me donne :
ompilateur: Default compiler Building Makefile: "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" Exécution de make... make.exe -f "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" all g++.exe -D__DEBUG__ -c main.cpp -o ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" -I"C:/Documents and Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6: include/api_lec.h:162: error: `WORD' does not name a type include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7: include/api_cps.h:19: error: `CPS_StatusService' does not name a type include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair? Merci.
Sans en voir plus ca va pas être facile, ce sont des problèmes dans les headers, que l'on a pas. Mais à la vue de ce type d'erreurs, je pencherai pour une solution spécifique à cette librairie.
Il n'y a pas un exemple fourni avec ? qui dirait par exemple de définir, à la compilation, certaines constantes pour le préprocesseur ? du genre il faudrait définir __WIN32__, _WINDOWS, _APILECTURE_ ou quoique ce soit d'autre ? [ donc soit avec un #define dans le fichier, soit avec -D__WIN32__ ] ? Et si ce n'est pas ca, est ce qu'ils imposent un fichier .h à inclure obligatoirement avant un autre ? Et dans le même genre de solution, le compilateur ne serait-il pas appelé avec une option genre -std=c++98 ou -ansi et qui ferait que certaines features de la librairie serait désactivées ? Si l'on a la ligne de l'appel de g++ en entier, rien n'y figure, sinon vérifier quand même que c'est pas le cas. Si c'était le cas, le .h contiendrait des #ifndef STD_... ou #ifndef STRICT_ANSI avant la définition des types qui ne sont pas trouvés (ca c'est valable en C sous gcc, je ne sais pas si il y a des équivalents C++).
Sans voir les deux .h qui sont concernés, je penche pour ce genre de solutions.
-- Anthony Fleury
kanze
Anthony Fleury wrote:
Je dois développer une application qui récupère les données des cartes Vitale. Pour cela je dois utiliser la librairie api_lec.lib. Je l'ai incluse à mon projet anisi que les headers qui étaient fournis avec. Avec ce code tout simple :
[...]
voici ce que le compilateur me donne :
ompilateur: Default compiler Building Makefile: "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" Exécution de make... make.exe -f "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" all g++.exe -D__DEBUG__ -c main.cpp -o ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" -I"C:/Documents and Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6: include/api_lec.h:162: error: `WORD' does not name a type include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7: include/api_cps.h:19: error: `CPS_StatusService' does not name a type include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair?
Sans en voir plus ca va pas être facile, ce sont des problèmes dans les headers, que l'on a pas. Mais à la vue de ce type d'erreurs, je pencherai pour une solution spécifique à cette librairie.
D'après le nom WORD, je me démande s'il ne s'attend pas à certains en-têtes Windows, qui ne sont peut-être pas complète sous devcpp (qui est, je crois, g++). Ou peut-être, comme tu dis, il s'attend qu'on ait inclut l'en-tête générale de Windows (dont je ne me souviens plus du nom) avant, chose qui est tout naturel quand on compile avec VC++, mais pas avec g++.
De toute façon, il dit qu'on lui a fourni un .lib. Ce qui veut dire qu'il y a du code déjà compilé. Si c'est du C++ (et non seulement du C), il ne va pouvoir s'en servir qu'avec le même compilateur que celui qui a servi à le générer. C-à-d probablement VC++. Donc, même s'il résoud son problème d'en-têtes...
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Anthony Fleury wrote:
Je dois développer une application qui récupère les données
des cartes Vitale. Pour cela je dois utiliser la librairie
api_lec.lib. Je l'ai incluse à mon projet anisi que les
headers qui étaient fournis avec. Avec ce code tout simple :
[...]
voici ce que le compilateur me donne :
ompilateur: Default compiler
Building Makefile: "C:Documents and
SettingsAdministrateurBureauLecoleVitaleMakefile.win"
Exécution de make...
make.exe -f "C:Documents and
SettingsAdministrateurBureauLecoleVitaleMakefile.win" all
g++.exe -D__DEBUG__ -c main.cpp -o
ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32"
-I"include/c++/3.4.2" -I"include" -I"C:/Documents and
Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6:
include/api_lec.h:162: error: `WORD' does not name a type
include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7:
include/api_cps.h:19: error: `CPS_StatusService' does not name a type
include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type
include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type
include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type
include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type
include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type
include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair?
Sans en voir plus ca va pas être facile, ce sont des problèmes
dans les headers, que l'on a pas. Mais à la vue de ce type
d'erreurs, je pencherai pour une solution spécifique à cette
librairie.
D'après le nom WORD, je me démande s'il ne s'attend pas à
certains en-têtes Windows, qui ne sont peut-être pas complète
sous devcpp (qui est, je crois, g++). Ou peut-être, comme tu
dis, il s'attend qu'on ait inclut l'en-tête générale de Windows
(dont je ne me souviens plus du nom) avant, chose qui est tout
naturel quand on compile avec VC++, mais pas avec g++.
De toute façon, il dit qu'on lui a fourni un .lib. Ce qui veut
dire qu'il y a du code déjà compilé. Si c'est du C++ (et non
seulement du C), il ne va pouvoir s'en servir qu'avec le même
compilateur que celui qui a servi à le générer. C-à-d
probablement VC++. Donc, même s'il résoud son problème
d'en-têtes...
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Je dois développer une application qui récupère les données des cartes Vitale. Pour cela je dois utiliser la librairie api_lec.lib. Je l'ai incluse à mon projet anisi que les headers qui étaient fournis avec. Avec ce code tout simple :
[...]
voici ce que le compilateur me donne :
ompilateur: Default compiler Building Makefile: "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" Exécution de make... make.exe -f "C:Documents and SettingsAdministrateurBureauLecoleVitaleMakefile.win" all g++.exe -D__DEBUG__ -c main.cpp -o ain.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" -I"C:/Documents and Settings/Administrateur/Bureau/Lecole/Vitale/include" -g3
In file included from main.cpp:6: include/api_lec.h:162: error: `WORD' does not name a type include/api_lec.h:163: error: `WORD' does not name a type
In file included from main.cpp:7: include/api_cps.h:19: error: `CPS_StatusService' does not name a type include/api_cps.h:20: error: `CPS_InfosCarte' does not name a type include/api_cps.h:21: error: `CPS_InfosPorteur' does not name a type include/api_cps.h:22: error: `CPS_ListeAppli' does not name a type include/api_cps.h:23: error: `CPS_InfosFichier' does not name a type include/api_cps.h:24: error: `CPS_InfosPS2' does not name a type
include/api_cps.h:25: error: `CPS_SituationPS' does not name a type include/api_cps.h:26: error: `CPS_Num_ST_PS' does not name a type
make.exe: *** [main.o] Error 1
Exécution terminée
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair?
Sans en voir plus ca va pas être facile, ce sont des problèmes dans les headers, que l'on a pas. Mais à la vue de ce type d'erreurs, je pencherai pour une solution spécifique à cette librairie.
D'après le nom WORD, je me démande s'il ne s'attend pas à certains en-têtes Windows, qui ne sont peut-être pas complète sous devcpp (qui est, je crois, g++). Ou peut-être, comme tu dis, il s'attend qu'on ait inclut l'en-tête générale de Windows (dont je ne me souviens plus du nom) avant, chose qui est tout naturel quand on compile avec VC++, mais pas avec g++.
De toute façon, il dit qu'on lui a fourni un .lib. Ce qui veut dire qu'il y a du code déjà compilé. Si c'est du C++ (et non seulement du C), il ne va pouvoir s'en servir qu'avec le même compilateur que celui qui a servi à le générer. C-à-d probablement VC++. Donc, même s'il résoud son problème d'en-têtes...
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Damien
Ok, je vais essayer avec le compilateur vc++ et je vous tiens au courant. Je tiens à préciser que je ne peux pas vous en montrer plus : le code concernant l'API ne doit pas être divulgué. Merci pour votre aide.
Ok, je vais essayer avec le compilateur vc++ et je vous tiens au courant. Je
tiens à préciser que je ne peux pas vous en montrer plus : le code
concernant l'API ne doit pas être divulgué.
Merci pour votre aide.
Ok, je vais essayer avec le compilateur vc++ et je vous tiens au courant. Je tiens à préciser que je ne peux pas vous en montrer plus : le code concernant l'API ne doit pas être divulgué. Merci pour votre aide.
Aurelien Regat-Barrel
In file included from main.cpp:6: include/api_lec.h:162: error: `WORD' does not name a type include/api_lec.h:163: error: `WORD' does not name a type
WORD c'est vraiment un type de base en Win32, cette erreur est typique de l'oublie d'inclusion de <windows.h>. La ligne 6, c'est: #include "api_err.h" Je ne sais pas ce que contient ce fichier, mais apparement il repose sur <windows.h>. Au pire: typedef unsigned short WORD; (voir <windef.h> s'il y en a d'autres). Pour les autres erreurs (CPS_StatusService...), c'est lié à ta bibliothèque (oublie d'include, de #define, etc...).
Pour ta bibliothèque, "api_lec.lib" c'est typiquement une lib pour VC++. Avec devcpp, ça donnerait plutot libapi_lec.a. En fait, dans le cas d'une dll, c'est compatible et tu peux bêtement la renommer et rajouter "-lapi_lec" dans les options de compilation.
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair? Merci.
Mais maintenant que VC++ 8 est dispo gratuitement dans sa version Express, le choix de devcpp est à mon avis discutable. Ca résoudra le problème de .lib, mais pas de compilation je pense.
-- Aurélien Regat-Barrel
In file included from main.cpp:6:
include/api_lec.h:162: error: `WORD' does not name a type
include/api_lec.h:163: error: `WORD' does not name a type
WORD c'est vraiment un type de base en Win32, cette erreur est typique
de l'oublie d'inclusion de <windows.h>.
La ligne 6, c'est:
#include "api_err.h"
Je ne sais pas ce que contient ce fichier, mais apparement il repose sur
<windows.h>.
Au pire:
typedef unsigned short WORD;
(voir <windef.h> s'il y en a d'autres).
Pour les autres erreurs (CPS_StatusService...), c'est lié à ta
bibliothèque (oublie d'include, de #define, etc...).
Pour ta bibliothèque, "api_lec.lib" c'est typiquement une lib pour VC++.
Avec devcpp, ça donnerait plutot libapi_lec.a. En fait, dans le cas
d'une dll, c'est compatible et tu peux bêtement la renommer et rajouter
"-lapi_lec" dans les options de compilation.
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair?
Merci.
Mais maintenant que VC++ 8 est dispo gratuitement dans sa version
Express, le choix de devcpp est à mon avis discutable.
Ca résoudra le problème de .lib, mais pas de compilation je pense.
In file included from main.cpp:6: include/api_lec.h:162: error: `WORD' does not name a type include/api_lec.h:163: error: `WORD' does not name a type
WORD c'est vraiment un type de base en Win32, cette erreur est typique de l'oublie d'inclusion de <windows.h>. La ligne 6, c'est: #include "api_err.h" Je ne sais pas ce que contient ce fichier, mais apparement il repose sur <windows.h>. Au pire: typedef unsigned short WORD; (voir <windef.h> s'il y en a d'autres). Pour les autres erreurs (CPS_StatusService...), c'est lié à ta bibliothèque (oublie d'include, de #define, etc...).
Pour ta bibliothèque, "api_lec.lib" c'est typiquement une lib pour VC++. Avec devcpp, ça donnerait plutot libapi_lec.a. En fait, dans le cas d'une dll, c'est compatible et tu peux bêtement la renommer et rajouter "-lapi_lec" dans les options de compilation.
J'utilise devcpp. Quelqu'un peut-il m'aider à y voir clair? Merci.
Mais maintenant que VC++ 8 est dispo gratuitement dans sa version Express, le choix de devcpp est à mon avis discutable. Ca résoudra le problème de .lib, mais pas de compilation je pense.
-- Aurélien Regat-Barrel
Damien
J'ai suivi vos conseils et j'ai installé Visual C++ 2005 Express Edition. Je cherche maintenant à télécharger dynamiquement la dll : api_lec.lib. Voici le code que je compile :
// Vitale.cpp : Defines the entry point for the console application.
// FCTX is a pointer to a function waiting an int, char * etc. typedef int __stdcall (*FCTX)(unsigned short * pusMode, unsigned short * pusCodeErreur);
// Name off the function we want to call #define FUNCTION_NAME "Hn_Init"
// Name of the DLL to load #define MODULE_NAME "api_lec.dll"
int main()
{ static char ModPath[255]="C:Documents and SettingsAdministrateurBureauLecoleVitale"; int Status; FCTX Fn_Ptr; HMODULE ModId; unsigned short * pusMode; unsigned short * pusCodeErreur; strcat(ModPath, MODULE_NAME); ModId = LoadLibrary(ModPath); Fn_Ptr = (FCTX)GetProcAddress(ModId, FUNCTION_NAME); Status = Fn_Ptr(pusMode, pusCodeErreur); FreeLibrary(ModId); return 0; }
Mon problème c'est qu'il ne trouve pas le fichier <windows.h>. Je sais que le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de rechercher dans ce répertoire. Merci pour votre aide.
J'ai suivi vos conseils et j'ai installé Visual C++ 2005 Express Edition. Je
cherche maintenant à télécharger dynamiquement la dll : api_lec.lib. Voici
le code que je compile :
// Vitale.cpp : Defines the entry point for the console application.
// FCTX is a pointer to a function waiting an int, char * etc.
typedef int __stdcall (*FCTX)(unsigned short * pusMode, unsigned short *
pusCodeErreur);
// Name off the function we want to call
#define FUNCTION_NAME "Hn_Init"
// Name of the DLL to load
#define MODULE_NAME "api_lec.dll"
int main()
{
static char ModPath[255]="C:\Documents and
Settings\Administrateur\Bureau\Lecole\Vitale\";
int Status;
FCTX Fn_Ptr;
HMODULE ModId;
unsigned short * pusMode;
unsigned short * pusCodeErreur;
strcat(ModPath, MODULE_NAME);
ModId = LoadLibrary(ModPath);
Fn_Ptr = (FCTX)GetProcAddress(ModId, FUNCTION_NAME);
Status = Fn_Ptr(pusMode, pusCodeErreur);
FreeLibrary(ModId);
return 0;
}
Mon problème c'est qu'il ne trouve pas le fichier <windows.h>. Je sais que
le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft
Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de
rechercher dans ce répertoire.
Merci pour votre aide.
J'ai suivi vos conseils et j'ai installé Visual C++ 2005 Express Edition. Je cherche maintenant à télécharger dynamiquement la dll : api_lec.lib. Voici le code que je compile :
// Vitale.cpp : Defines the entry point for the console application.
// FCTX is a pointer to a function waiting an int, char * etc. typedef int __stdcall (*FCTX)(unsigned short * pusMode, unsigned short * pusCodeErreur);
// Name off the function we want to call #define FUNCTION_NAME "Hn_Init"
// Name of the DLL to load #define MODULE_NAME "api_lec.dll"
int main()
{ static char ModPath[255]="C:Documents and SettingsAdministrateurBureauLecoleVitale"; int Status; FCTX Fn_Ptr; HMODULE ModId; unsigned short * pusMode; unsigned short * pusCodeErreur; strcat(ModPath, MODULE_NAME); ModId = LoadLibrary(ModPath); Fn_Ptr = (FCTX)GetProcAddress(ModId, FUNCTION_NAME); Status = Fn_Ptr(pusMode, pusCodeErreur); FreeLibrary(ModId); return 0; }
Mon problème c'est qu'il ne trouve pas le fichier <windows.h>. Je sais que le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de rechercher dans ce répertoire. Merci pour votre aide.
Fabien LE LEZ
On Tue, 29 Nov 2005 11:35:54 +0100, "Damien" :
Je sais que le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de rechercher dans ce répertoire.
On Tue, 29 Nov 2005 11:35:54 +0100, "Damien" <dlecole@memorys.fr>:
Je sais que
le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft
Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de
rechercher dans ce répertoire.
Je sais que le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de rechercher dans ce répertoire.
Mon problème c'est qu'il ne trouve pas le fichier <windows.h>. Je sais que le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de rechercher dans ce répertoire.
Depuis l'IDE, menu Tools->Options->Projects and Solutions->VC++ Directories-> Include files: pour les .h Library files: pour les .lib
-- Aurélien Regat-Barrel
Mon problème c'est qu'il ne trouve pas le fichier <windows.h>. Je sais que
le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft
Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de
rechercher dans ce répertoire.
Depuis l'IDE, menu Tools->Options->Projects and Solutions->VC++
Directories->
Include files: pour les .h
Library files: pour les .lib
Mon problème c'est qu'il ne trouve pas le fichier <windows.h>. Je sais que le fichier se trouve à l'emplacement suivant : C:Program FilesMicrosoft Platform SDKInclude mais je ne sais pas comment indiquer au compilateur de rechercher dans ce répertoire.
Depuis l'IDE, menu Tools->Options->Projects and Solutions->VC++ Directories-> Include files: pour les .h Library files: pour les .lib
-- Aurélien Regat-Barrel
Damien
J'ai reussi à inclure le windows.h mais je suis confronté à un nouveau problème : lorsque j'inclus un fichier fourni, il me donne ceci à la compilation
1>------ Build started: Project: Test, Configuration: Debug Win32 ------ 1>Compiling... 1>Test.cpp 1>c:documents and settingsadministrateurbureaulecoletesttest.cpp(4) : warning C4005: 'WIN32' : macro redefinition 1> command-line arguments : see previous definition of 'WIN32' 1>c:documents and settingsadministrateurbureaulecoletestwin32def.h(60) : error C2371: 'INT8' : redefinition; different basic types 1> c:program filesmicrosoft platform sdkincludebasetsd.h(60) : see declaration of 'INT8' Avous-vous une idée pour résoudre mon problème?
J'ai reussi à inclure le windows.h mais je suis confronté à un nouveau
problème :
lorsque j'inclus un fichier fourni, il me donne ceci à la compilation
1>------ Build started: Project: Test, Configuration: Debug Win32 ------
1>Compiling...
1>Test.cpp
1>c:documents and settingsadministrateurbureaulecoletesttest.cpp(4) :
warning C4005: 'WIN32' : macro redefinition
1> command-line arguments : see previous definition of 'WIN32'
1>c:documents and settingsadministrateurbureaulecoletestwin32def.h(60)
: error C2371: 'INT8' : redefinition; different basic types
1> c:program filesmicrosoft platform sdkincludebasetsd.h(60) : see
declaration of 'INT8'
Avous-vous une idée pour résoudre mon problème?
J'ai reussi à inclure le windows.h mais je suis confronté à un nouveau problème : lorsque j'inclus un fichier fourni, il me donne ceci à la compilation
1>------ Build started: Project: Test, Configuration: Debug Win32 ------ 1>Compiling... 1>Test.cpp 1>c:documents and settingsadministrateurbureaulecoletesttest.cpp(4) : warning C4005: 'WIN32' : macro redefinition 1> command-line arguments : see previous definition of 'WIN32' 1>c:documents and settingsadministrateurbureaulecoletestwin32def.h(60) : error C2371: 'INT8' : redefinition; different basic types 1> c:program filesmicrosoft platform sdkincludebasetsd.h(60) : see declaration of 'INT8' Avous-vous une idée pour résoudre mon problème?
Aurelien Regat-Barrel
Essaye de comprendre les warnings/erreurs... Tu définis WIN32 dans ton code, et juste après le compilo se plaint : 'WIN32' : macro redefinition Pour l'autre erreur, même constat: 'INT8' : redefinition; different basic types
Le type INT8 est donc déclaré de manière différente dans win32def.h et dans <windows.h>. C'est un conflit. 2 possibilités: - c'est une erreur dans win32def.h, et alors tu supprimes/définis comme dans windows.h - c'est pas une erreur, on a 2 types différents avec le même nom, alors les namespaces peuvent être une solution
-- Aurélien Regat-Barrel
Essaye de comprendre les warnings/erreurs...
Tu définis WIN32 dans ton code, et juste après le compilo se plaint :
'WIN32' : macro redefinition
Pour l'autre erreur, même constat:
'INT8' : redefinition; different basic types
Le type INT8 est donc déclaré de manière différente dans win32def.h et
dans <windows.h>. C'est un conflit.
2 possibilités:
- c'est une erreur dans win32def.h, et alors tu supprimes/définis comme
dans windows.h
- c'est pas une erreur, on a 2 types différents avec le même nom, alors
les namespaces peuvent être une solution
Essaye de comprendre les warnings/erreurs... Tu définis WIN32 dans ton code, et juste après le compilo se plaint : 'WIN32' : macro redefinition Pour l'autre erreur, même constat: 'INT8' : redefinition; different basic types
Le type INT8 est donc déclaré de manière différente dans win32def.h et dans <windows.h>. C'est un conflit. 2 possibilités: - c'est une erreur dans win32def.h, et alors tu supprimes/définis comme dans windows.h - c'est pas une erreur, on a 2 types différents avec le même nom, alors les namespaces peuvent être une solution
-- Aurélien Regat-Barrel
Damien
pour le type INT8 j'ai trouvé juste après avoir posté mon message: * j'ai laissé la définition de win32def.h et j'ai mis en commentaire celle de basetsd.h
pour win32 je peux enlever le define mais ce qui me gène c'est que la documentation de l'API avit spécifié de l'inclure...
bon, il ne me reste plus qu'à bien utliser loadlibrary maintenant
Merci beaucoup pour votre aide.
pour le type INT8 j'ai trouvé juste après avoir posté mon message:
* j'ai laissé la définition de win32def.h et j'ai mis en commentaire celle
de basetsd.h
pour win32 je peux enlever le define mais ce qui me gène c'est que la
documentation de l'API avit spécifié de l'inclure...
bon, il ne me reste plus qu'à bien utliser loadlibrary maintenant
pour le type INT8 j'ai trouvé juste après avoir posté mon message: * j'ai laissé la définition de win32def.h et j'ai mis en commentaire celle de basetsd.h
pour win32 je peux enlever le define mais ce qui me gène c'est que la documentation de l'API avit spécifié de l'inclure...
bon, il ne me reste plus qu'à bien utliser loadlibrary maintenant