Bonjour, c'est encore moi !
J'ai un nouveau PC sous Vista 64bit, le problème c'est que les jeu en .NETCP ne veulent pas se lancer ...
Les code Irrlicht C++ fonctionnent pourtant parfaitement et ça marchait très bien sous Win XP 32bit...
L'erreur de Visual C# est "Tentative de chargement d'un programme de format incorrect. (Exception de HRESULT : 0x8007000B)".
Merci d'avance pour votre aide !
Dernière modification par Lelys (15-12-2007 13:50:32)
Hors ligne
Re Bonjour,
Alors, à force de chercher j'ai trouvé qu'il fallait recompiler Irrlicht.dll et IrrlichtW.dll en 64bit.
J'ai réussi à compiler Irrlicht.dll en 64bit (y'a un moyen pour vérifier ?) par contre, IrrlichtW.dll refuse lui une erreur sur la libriarie FreeType, et impossible de trouver une version 64bit, ni de la recompiler en 64bit... Aïe aïe aïe c'est pas simple tout ça...
Voilà l'erreur de Visual C++ :
1> Création de la bibliothèque ..\bin\Release\IrrlichtW.lib et de l'objet ..\bin\Release\IrrlichtW.exp
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Done_Face
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Init_FreeType
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Load_Glyph
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Done_FreeType
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_New_Face
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Get_Char_Index
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Render_Glyph
1>CGUITTFont.obj : error LNK2001: symbole externe non résolu _FT_Set_Pixel_Sizes
1>..\bin\Release\IrrlichtW.dll : fatal error LNK1120: 8 externes non résolus
Si quelqu'un à une idée ...
EDIT: Je précise que cette erreur ne se produit pas en 32bit (et donc la dll se compile bien).
Dernière modification par Lelys (16-12-2007 11:58:22)
Hors ligne
Ce quiest bizarre c'est que normalement vista 64bits est capable d'utiliser/lancer des lib et applis 32bits sans recompilation...
Je regarde ça ce soir (dès que j'ai mon 64 bits sous la main).
Hors ligne
Oui, c'est ce que je me disais aussi, d'autant qu'il accepte de lancer une application Irrlicht C++ directement sans aucune recompilation (en 32bit donc), mais pas une application gérée par Irrlicht.NetCP.
Je pense qu'il refuse que le code managé 64bit accède à une DLL 32bit.
Merci de ton aide !
EDIT : Mouarf... J'ai réussi à compiler IrrlichtW.dll en 64bit et ça change rien du tout... Je sais plus quoi faire là, j'veux Irrlicht :'(...
EDIT 2 : J'ai plus qu'à me lancer dans le C++...
Dernière modification par Lelys (16-12-2007 12:46:54)
Hors ligne
J'ai trouvé la solution !!
En fait le problème était bien que le .Net 64bit refusait d'être lié à une dll 32bit (donc mes recompilation ont loupées ?...).
La solution est de forcé son code .Net à se compiler en 32bit.
Voici comment faire :
Ouvrir le fichier de projet (.csproj) dans un editeur de texte, repérer la section <PropertyGroup> (la première normalement), et y ajouter ça :
<PlatformTarget>x86</PlatformTarget>
Hors ligne
Merci pour avoir posté la solution, je pense que cela servira à beaucoup d'autres .
Hors ligne
=> Tu peux aussi regler cette option de compiation depuis visual studio.
Et sinon à tu essayé la compilation en mode Any-CPU?
Hors ligne
Dans la version express de Visual C#, il est impossible de définir le type de processeur dans les propriétés du projet.
Le mode AnyCPU correspond au CPU de la machine sur laquelle on compile, donc 64bit, donc pas bon .
Hors ligne