Problème de linkage?? [DEVC++] - C++ - Programmation
Marsh Posté le 06-08-2004 à 10:50:57
Voilà mon problème : J'essaye d'attaquer une DLL dont je n'ai pas le source. Avec les outil PEXPORT et DLLTOOL j'ai crée un fichier .def qui contient les noms des fonctions et créer une library objet libskunkcmp.a voici le contenu (une partie) du fichier .def LIBRARY SkunkCmp.dll EXPORTS ??0CCat@@QAE@XZ ??0CChunkFile@@QAE@XZ ??1CCat@@QAE@XZ ??1CChunkFile@@QAE@XZ ??4CCat@@QAEAAV0@ABV0@@Z ??4CChunkFile@@QAEAAV0@ABV0@@Z ?AddChunk@CChunkFile@@QAEHKKPAXKH@Z ?CheckChunkFileSize@CChunkFile@@IAEHK@Z ?Close@CCat@@QAEXXZ ?Close@CChunkFile@@QAEXXZ ?ExpandFile@CCat@@SAHPAD0@Z ?ExtendFileSize@CChunkFile@@IAEHK@Z ?FindChunk@CChunkFile@@IAEPAUCHUNKREC@@KK@Z ?FreeAll@CCat@@QAEXXZ ?FreeFile@CCat@@IAEHPAUFILEHDR@@@Z ?FreeFile@CCat@@QAEHH@Z ?FreeFile@CCat@@QAEHPAD@Z ?GetCurrentFileSize@CChunkFile@@IAEKXZ ?GetFileCount@CCat@@QAEHXZ ?GetFileHdr@CCat@@IAEPAUFILEHDR@@H@Z ?Open@CCat@@QAEHPAD@Z ?Open@CChunkFile@@QAEHPADHK@Z le code de mon main.cpp
le code du fichier .h associé
Mon rapport de compil Compilateur: Default compiler Building Makefile: "D:\++p\TestDll\tools\dev\Makefile.win" Exécution de make... make.exe -f "D:\++p\TestDll\tools\dev\Makefile.win" all g++.exe main.o -o "Skunkcmp.exe" -L"H:/DEV-CPP/lib" -L"D:/++p/TestDll/tools/dev" -lskunkcmp main.o(.text+0x5a):main.cpp: undefined reference to `CCat::CCat()' main.o(.text+0x6b):main.cpp: undefined reference to `CCat::Open(char*)' Exécution terminée Comme vous pouvez voir il ne reconnait pas la classe CCat.. j'ai dessassemblé la DLL qui m'intéressait et j'obtiens cela. A priori par rapport à mon source cela doit correspondre. classe CCat..
je vois cela dans la bibliothèque objet (ascii dump) _?Open@CCat@@QAEHPAD@Z __imp__?Open@CCat@@QAEHPAD@Z etc.. Je ne vois pas du tout ce que j'ai fait comme erreur si quelqu'un peut m'aider
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 06-08-2004 à 10:50:57
Voilà mon problème :
J'essaye d'attaquer une DLL dont je n'ai pas le source.
Avec les outil PEXPORT et DLLTOOL j'ai crée un fichier .def qui contient les noms des fonctions et créer une library objet
libskunkcmp.a
voici le contenu (une partie) du fichier .def
LIBRARY SkunkCmp.dll
EXPORTS
??0CCat@@QAE@XZ
??0CChunkFile@@QAE@XZ
??1CCat@@QAE@XZ
??1CChunkFile@@QAE@XZ
??4CCat@@QAEAAV0@ABV0@@Z
??4CChunkFile@@QAEAAV0@ABV0@@Z
?AddChunk@CChunkFile@@QAEHKKPAXKH@Z
?CheckChunkFileSize@CChunkFile@@IAEHK@Z
?Close@CCat@@QAEXXZ
?Close@CChunkFile@@QAEXXZ
?ExpandFile@CCat@@SAHPAD0@Z
?ExtendFileSize@CChunkFile@@IAEHK@Z
?FindChunk@CChunkFile@@IAEPAUCHUNKREC@@KK@Z
?FreeAll@CCat@@QAEXXZ
?FreeFile@CCat@@IAEHPAUFILEHDR@@@Z
?FreeFile@CCat@@QAEHH@Z
?FreeFile@CCat@@QAEHPAD@Z
?GetCurrentFileSize@CChunkFile@@IAEKXZ
?GetFileCount@CCat@@QAEHXZ
?GetFileHdr@CCat@@IAEPAUFILEHDR@@H@Z
?Open@CCat@@QAEHPAD@Z
?Open@CChunkFile@@QAEHPADHK@Z
le code de mon main.cpp
le code du fichier .h associé
Mon rapport de compil
Compilateur: Default compiler
Building Makefile: "D:\++p\TestDll\tools\dev\Makefile.win"
Exécution de make...
make.exe -f "D:\++p\TestDll\tools\dev\Makefile.win" all
g++.exe main.o -o "Skunkcmp.exe" -L"H:/DEV-CPP/lib" -L"D:/++p/TestDll/tools/dev" -lskunkcmp
main.o(.text+0x5a):main.cpp: undefined reference to `CCat::CCat()'
main.o(.text+0x6b):main.cpp: undefined reference to `CCat::Open(char*)'
Exécution terminée
Comme vous pouvez voir il ne reconnait pas la classe CCat..
j'ai dessassemblé la DLL qui m'intéressait et j'obtiens cela.
A priori par rapport à mon source cela doit correspondre. classe CCat..
je vois cela dans la bibliothèque objet (ascii dump)
_?Open@CCat@@QAEHPAD@Z
__imp__?Open@CCat@@QAEHPAD@Z
etc..
Je ne vois pas du tout ce que j'ai fait comme erreur
si quelqu'un peut m'aider
Message édité par Frenchy62620 le 06-08-2004 à 13:57:13