CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide pour T-bots

Ruffi
Ruffi
Niveau 9
18 juillet 2003 à 14:46:27

Bon, je ne veus pas poluer le topic T-Bots alors je met ma question ici :
G commencé a regarder comment marche le KBot ( l´exemple de bot), j´ai donc créer un nouvel espace de travail sous visual, j´ai copier tous les . h et les . cpp
je compile pour voir, mais dans le linking il me dit ( atention, c´est long) :

TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KTimer::GetTime(void)" ( ?GetTime@KTimer@@QAE_IXZ)
TBots.obj : error LNK2001: unresolved external symbol " class KTimer g_Timer" ( ?g_Timer@@3VKTimer@@A)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KLevel::Load(char *)" ( ?Load@KLevel@@QAE_IPAD@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: __thiscall KLevel::KLevel(class KRender *)" ( ??0KLevel@@QAE@PAVKRender@@@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KRender::Init(struct HWND__ *,unsigned __int32,unsigned __int32,unsigned __int32,bool)" ( ?Init@KRender@@QAE_IPAUHWND__@@_I11_N@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: __thiscall KRender::KRender(void)" ( ??0KRender@@QAE@XZ)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KRender::End(void)" ( ?End@KRender@@QAE_IXZ)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KLevel::Unload(void)" ( ?Unload@KLevel@@QAE_IXZ)
TBots.obj : error LNK2001: unresolved external symbol " public: __thiscall KLevel::~KLevel(void)" ( ??1KLevel@@QAE@XZ)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KRender::Flip(struct HWND__ *,class KRect *)" ( ?Flip@KRender@@QAE_IPAUHWND__@@PAVKRect@@@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KRender::EndScene(void)" ( ?EndScene@KRender@@QAE_IXZ)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KLevel::Draw(unsigned __int32)" ( ?Draw@KLevel@@QAE_I_I@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KRender::BeginScene(void)" ( ?BeginScene@KRender@@QAE_IXZ)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall KRender::DrawTextA(__int32,__int32,char *)" ( ?DrawTextA@KRender@@QAE_I_H0PAD@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: void __thiscall KBot::Display(class KFPt &,class KFPt &)" ( ?Display@KBot@@QAEXAAVKFPt@@0@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: unsigned __int32 __thiscall
KRender::DrawQuad(__int32,__int32,__int32,__int32,
struct IDirect3DTexture8 *,unsigned __int32,unsigned __int32,enum _KRMODE,float *,float *)" ( ?DrawQuad@KRend

er@@QAE_I_H000PAUIDirect3DTexture8@@_I2W4_KRMODE@@
PAM4@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: void __thiscall KItem::SetPos(class KPt &,unsigned __int32)" ( ?SetPos@KItem@@QAEXAAVKPt@@_I@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: bool __thiscall KLevel::CanMove(__int32,__int32)" ( ?CanMove@KLevel@@QAE_N_H0@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: class std::list<class KItem *,class std::allocator<class KItem *> > & __thiscall KLevel::GetpSightItem(class KPt &,__int32)"
(?GetpSightItem@KLevel@@QAEAAV?$list@PAVKItem@@V?$
allocator@P
AVKItem@@@std@@@std@@AAVKPt@@_H@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: class KCell * __thiscall KLevel::GetpSightCell(class KPt &,__int32)"
(?GetpSightCell@KLevel@@QAEPAVKCell@@AAVKPt@@_H@Z)

TBots.obj : error LNK2001: unresolved external symbol " public: virtual void __thiscall KBot::Display(void)" ( ?Display@KBot@@UAEXXZ)
TBots.obj : error LNK2001: unresolved external symbol " public: virtual __thiscall KItem::~KItem(void)" ( ??1KItem@@UAE@XZ)
TBots.obj : error LNK2001: unresolved external symbol " public: static class KPt __cdecl KLevel::GetDeltaPos(enum _KBOTMOVEDIR)"
(?GetDeltaPos@KLevel@@SA?AVKPt@@W4_KBOTMOVEDIR@@@Z
)
TBots.obj : error LNK2001: unresolved external symbol " public: class KItem * __thiscall KLevel::GetpItem(unsigned __int32,unsigned __int32)" ( ?GetpItem@KLevel@@QAEPAVKItem@@_I0@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: static class KPt __cdecl KLevel::GetDeltaAttack(enum _KBOTATTACKTARGET)"
(?GetDeltaAttack@KLevel@@SA?AVKPt@@W4_KBOTATTACKTA
RGET@@@Z)
TBots.obj : error LNK2001: unresolved external symbol " public: __thiscall KBot::KBot(class KRender *,class KLevel *)" ( ??0KBot@@QAE@PAVKRender@@PAVKLevel@@@Z)
Debug/Ruffi_bot.dll : fatal error LNK1120: 26 unresolved externals
Error executing link.exe.

Ruffi_bot.dll - 27 error(s), 0 warning(s)

J´ai du oublier des truc, mais je ne sais pas quoi.

hs_dino
hs_dino
Niveau 9
18 juillet 2003 à 15:09:27

Arf, tu as du foirer dans ton Workspace. Tu as ajouté des fichiers inutiles.

Procedure pour créer un Bot sous Visual C++ 6.0:
1 - Ouvrir le Workspace TBots.dsw
2 - Add New Project -> Win32 Dynamic Link Library -> Choisir " A Simple DLL Project", Normalement ca doit generer le DllMain et le StdAfx.
3 - Ajouter les 3 fonctions a exporter ( la macro API depend du nom de la DLL que vous aurez choisi):
extern " C" KBOT_API char* GetpBotName();
extern " C" KBOT_API KBotInfo* GetpInfos();
extern " C" KBOT_API KBotAction* GetpBotAction( KBot* pBot, KCell* pMapCell, s32 MapWidth, s32 MapHeight, list<KItem*>& Items ) ;

Normalement ca devrait compiler.

Ruffi
Ruffi
Niveau 9
18 juillet 2003 à 15:13:01

G pas mal loupé ce ke j´ai fait ( je me suis trompé de fichier :honte: )
Merci de ton aide

Ruffi
Ruffi
Niveau 9
18 juillet 2003 à 17:17:00

Bon, depuis tout a l´heur j´essaye de comprendre le fonctionement de la dll ( :ouch: :malade: ) , et j´essaye de faire des truc ( :doute: ) et je regarde se que sa fait ( :nonnon: :non2: :snif: :honte: ) ... Bon, en perseverant j´espere ariver a fair quelque chose. A quand une version plus commenté de TBot?

Gonath
Gonath
Niveau 52
18 juillet 2003 à 17:29:44

Zut zut, moi quand je compile y a tout qui foire... je suis sous devcpp...

Gonath
Gonath
Niveau 52
18 juillet 2003 à 17:35:46

je crois qu´il manque un fichier sous Devcpp : crtdbg.h

Gonath
Gonath
Niveau 52
18 juillet 2003 à 17:40:29

En gros se serait cool si on avait une version un peu plus commenté...

hs_dino
hs_dino
Niveau 9
18 juillet 2003 à 17:54:52

crtdbg.h est include pour _ASSERT();

Si y´a ne compile pas, vire l´include et change la macro :

  1. define KASSERT( __Exp ) _ASSERT( __Exp )

par :

  1. define KASSERT( __Exp ) 0

Pour la version commentée, je bosse actuellement dessus.

Ruffi
Ruffi
Niveau 9
18 juillet 2003 à 19:30:31

Merci pour la futur version commenté. Mais avant ke j´aille plus loin, tu me conseil de continuer sous VisualC++ ou ke je passe à devC++? ( sachant ke j´ai VC++ Introductorie edition qui me met un salle message a chaque foi)

hs_dino
hs_dino
Niveau 9
18 juillet 2003 à 20:22:42

Il faudrait que tu continues quand meme sur Visual C++, car on a pas encore eu le temps de faire des tests sur d´autres compilateurs.

JeanYvesYves
JeanYvesYves
Niveau 10
18 juillet 2003 à 20:24:07

ce genre de messages, c´est un fichier oublié
ça peut etre un dll, mais ça peut etre aussi une lib, ou un . obj si tu n´as pas lié la lib...

( mais je pense + dll ou lib)

Ruffi
Ruffi
Niveau 9
18 juillet 2003 à 21:40:33

G fini ma premiere version de mon bot ( meme si l´AI est TRES limité) :)

hs_dino
hs_dino
Niveau 9
18 juillet 2003 à 22:41:04

Cool!

Tu l´as fait sous Visual C++?

Euh sinon, les fonctions de la DLL ont été modifié, donc il faudrat le changer dans ta DLLBot dès que la prochaine version sera disponible. Mais bon, c´est normal tant que le jeu n´est pas fini...

hs_dino
hs_dino
Niveau 9
18 juillet 2003 à 22:45:40

Ruffi, peux tu nous envoyer ton bot qu´on puisse le tester et le mettre dans la prochaine release?

Envoie le ici : tbots@zythum-project.com

Ruffi
Ruffi
Niveau 9
19 juillet 2003 à 11:42:16

sa y est c´est envoyé.
Oui, je l´ai fait sous VC++ ( si tu veu la source, je te l´envoi)
Je suis en train de dl la derniere version de TBot et j´essayerai d´en fair un plus intelligent.
J´ai vu dans votre site que vous allez faire des tutoriaux. Se serai bien que vous mettiez toutes les fonction permetant de recuperer des donné exterieur aux robot ( nom de la fontion, ce qu´elle renvoi...), car mon bot est aveugle pour l´instant.

hs_dino
hs_dino
Niveau 9
19 juillet 2003 à 12:16:10

Euh, j´ai toujours rien recu. Par contre, il me faut imperativment les sources car je ne vais lancer la DLL comme ca, c´est beaucoup trop dangereux.

Pour la doc, on va faire çà, promis.

Ruffi
Ruffi
Niveau 9
19 juillet 2003 à 12:23:29

ok, je t´envoi la source
Sinon, j´ai encore un pb : j´ai voulu metre les prog de mon bot dans la derniere version, mais il me fait :
error C2491: ´GetpBotName´ : definition of dllimport function not allowed
error C2491: ´GetpInfos´ : definition of dllimport function not allowed
error C2491: ´GetpBotAction´ : definition of dllimport function not allow

Ruffi
Ruffi
Niveau 9
19 juillet 2003 à 14:44:54

G essayé en faisant un copier/coller de TBot, et il me fait toujour la meme ereur ( "definition of dllimport function not allowed"). Quelqu´un peu m´aider ?

Altonfrere
Altonfrere
Niveau 10
19 juillet 2003 à 14:49:33

vérifie que tu as bien :

  1. ifdef KBOT_EXPORTS
  2. define KBOT_API __declspec(dllexport)
  3. else
  4. define KBOT_API __declspec(dllimport)
  5. endif

KBOT_EXPORTS
KBOT_API
étant tes propres def

et dans tes Project Settings>C-C++>Preprocessor definitions, à la fin de la ligne tu dois avoir Quelquechose_EXPORT
il faut le même dans le . h et dans les settings

Ruffi
Ruffi
Niveau 9
19 juillet 2003 à 15:31:59

En fait, j´ai rajouté le workspace de l´ancienne version et sa marche.
Mais maintenant j´ai un probleme ( encore ! ) mais avec le " simulateur" des bots : dans la liste, quand je choisi " KBot the killer" il prend mon dll,et inversemment.
En plus pour mon dll il ne trouve pas la fonction GetpBotAction, alors que dans l´ancienne version il la trouvait.
Sinon, je suis le seul a faire des bots ( ou a avoir des problemes avec)?

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment