Bonjour
Voici mon problème.
J'ai un projet QT 4.4.3 sous Eclipse CDT dans lequel je souhaite ajouter une bibliothèsque statique.
Code de la lib
(Lib compiler sous VS 2008 express)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <string> namespace InjectCodeLib { /*-------------------------------------------------------------------------------------------*/ /* * Permet d'injecter du code dans une application déjà existante. * (Procedure décrite dans le chapitre 22 de "Programming Applications for Microsoft Windows", de Richter) * @param pszCalleeModName Nom de l'API dans laquelle ont souhaite intercepter une fonction. * @param pfnCurrent Pointeur sur la fonction d'orgine. * @param pfnNew Pointeur sur la nouvelle fonction. * @param hmodCaller Handle sur l'application courante. */ /*-------------------------------------------------------------------------------------------*/ extern void InjectCode(PCSTR pszCalleeModName, PROC pfnCurrent, PROC pfnNew, HMODULE hmodCaller); /*-------------------------------------------------------------------------------------------*/ /* * Permet d'injecter du code dans une application déjà existante. * (Procedure décrite dans le chapitre 22 de "Programming Applications for Microsoft Windows", de Richter) * @param sApiName Nom de l'API qui souhaite injecter du code. * @param sInjectApiName Nom de l'API dans laquelle ont souhaite injecter une fonction. * @param sFonctName Nom de la fonction que l'ont souhaite remplacer. * @param pfnNew Adresse de la nouvelle fonction. * @param pfnOrig Adresse de la fonction d'orgine. * @param hmodCaller Handle sur l'application courante. */ /*-------------------------------------------------------------------------------------------*/ extern void InjectCode(const std::string sApiName, const std::string sInjectApiName, const std::string sFonctName, const PROC pfnNew, PROC* pfnOrig); }
Donc j'ai éditer le fichier *.pro et y est ajouter:Ensuite j'ai inclu mon fichier InjectCodeLib.h dans mon fichier source.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 LIBS += -LD:\Eclipse_C-C++_WorkSpace\InjectCodeLib\Debug\InjectCodeLib.lib
Lorsque je lance la compilation j'ai l'erreur de linkage suivante:
Bon la je suis à cours d'idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 debug\WinCopier.exe debug/CHook.o debug/CThread.o debug/main.o debug/wincopier.o debug/moc_wincopier.o -L"c:\Qt\4.4.3\lib" -lmingw32 -lqtmaind -LD:\Eclipse_C-C++_WorkSpace\InjectCodeLib\Debug\InjectCodeLib.lib -lQtGuid4 -lQtCored4 debug/CHook.o: In function `ZN5CHook4HookEv': D:/Eclipse_C-C++_WorkSpace/WinCopier/CHook.cpp:76: undefined reference to `InjectCodeLib::InjectCode(std::string, std::string, std::string, int (*)(), int (**)())' debug/CHook.o: In function `ZN5CHook6UnHookEv': D:/Eclipse_C-C++_WorkSpace/WinCopier/CHook.cpp:88: undefined reference to `InjectCodeLib::InjectCode(std::string, std::string, std::string, int (*)(), int (**)())'
Merci d'avance
Partager