p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre actif
    Inscrit en
    septembre 2003
    Messages
    388
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 388
    Points : 179
    Points
    179

    Par défaut SDL 1.2.15 et VC6 incompatible ?

    Bonjour,
    Je viens de passer de la SDL 1.2.14 à la 1.2.15 (je laisse toujours un peut de temps avant de upgrader pour être sûr que tout marche bien, question de maturité)
    Pour info, j'utilise un vieux compilo : VC6 (pas pour une question de maturité, c'est que j'ai une machine pas super recente et que malgres tout vc6 marche super bien dessus, merci visual assist x au passage, bref...)

    En v 1.2.14, ca compile bien,
    Donc je met a jour ma sdl (fichiers .h, .dll et .lib), et paf, ca ne compile plus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SDLmain.lib(SDL_win32_main.obj) : warning LNK4044: unrecognized option "manifestdependency:type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'"; ignored
    MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib "msvcrt.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
    SDLmain.lib(SDL_win32_main.obj) : error LNK2001: unresolved external symbol ___security_cookie
    SDLmain.lib(SDL_win32_main.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
    SDLmain.lib(SDL_win32_main.obj) : error LNK2001: unresolved external symbol __alloca_probe_16
    SDLmain.lib(SDL_win32_main.obj) : error LNK2001: unresolved external symbol __imp____iob_func
    Il semblerait donc que depuis la 1.2.15, VC6 ne soit plus supporté ?
    pourtant dans la doc (visualC.htm) il est bien ecrit : "Using SDL with Microsoft Visual C++ 5,6 and 7" (au passage, il doit y avoir plus dinosore que moi pour utiliser vc5)

    Quelqu'un a t'il déjà rencontré ce genre de probleme ?
    Merci.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    18 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 18 742
    Points : 109 390
    Points
    109 390
    Billets dans le blog
    3

    Par défaut

    Bonjour,

    Je ne pense pas vraiment que ce soit directement lié à la SDL.
    Avez vous effectué un "rebuild all" ?

    Sinon, avec une recherche google de l'erreur on tombe sur :

    http://www.pcreview.co.uk/forums/unr...-t1428747.html
    http://support.microsoft.com/kb/894573

    On peut donc tenter de rajouter l'option /verbose pour avoir plus d'informations.

    * Not use arrays in any functions that call (or end up calling) CRT_INIT,
    for example, use _alloca instead.
    * Let the CRT initialize normally. Don't specify your own entry point, use
    DllMain instead (and don't call CRT_INIT).
    Soit :
    Ne pas utiliser de tableaux dans les fonctions qui appelle CRT_INIT (on peut utiliser _alloca à la place).
    Ne pas spécifier de point d'entre et utiliser DllMain (ne pas appeler CRT_INIT).

    J'espère que cela peut aidé, car ce n'est pas ultra courant
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre actif
    Inscrit en
    septembre 2003
    Messages
    388
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 388
    Points : 179
    Points
    179

    Par défaut

    Citation Envoyé par LittleWhite Voir le message
    Bonjour,
    Soit :
    Ne pas utiliser de tableaux dans les fonctions qui appelle CRT_INIT (on peut utiliser _alloca à la place).
    Ne pas spécifier de point d'entre et utiliser DllMain (ne pas appeler CRT_INIT).

    J'espère que cela peut aidé, car ce n'est pas ultra courant
    honnetement, je ne pense pas que ce soit celà, en effet, je n'apelle pas CRT_INIT...
    Mais en fait, je n'ai pas modifié une ligne de code, j'ai juste mis à jour sdl (en remplacant le fichier .lib par le nouveau, idem pour le dll et pour les fichiers header de sdl).
    c'est une operation que je fait regulierement depuis au moins la 1.2.6.
    en revenant (merci svn) à la version 1.2.14, ca marche. mais c'est domage, il y a quelques bugfix dans la 1.2.15 qui valent le coups.

    google ne m'avait pas aidé
    Merci pour ta tentative.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    18 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 18 742
    Points : 109 390
    Points
    109 390
    Billets dans le blog
    3

    Par défaut

    L'histoire du CRT_INIT, c'est avant même le même, j'ose croire.
    Sinon, avez vous tenter l'option /verbose que j'ai cru voir présentée dans les liens.
    J'imagine que le rebuild all a été effectué plus d'une fois. Peut être en néttoyant les fichiers intermédiaires du projet ? (les .pcb ou autre truc de VS).
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Invité de passage
    Homme Profil pro
    Inscrit en
    août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2013
    Messages : 3
    Points : 1
    Points
    1

    Par défaut réponse un peu tardive, mais j'ai trouvé (pas testé) les infos pour faire fonctionner SDL2 avec VC6

    perso, j'utilise toujours VC6 car je le trouve beaucoup plus efficace que les nouveaux VS écrits en .net



    VC6
    VC6 is hard to work for build the project. Must fixed the Code and add a VC6LIB.c for 3 functions when link will be used.
    1.
    Add 3 define: huge=Huge;__FUNCTION__=__LINE__;_USER32_
    2.
    Add 3 lib:winmm.lib version.lib imm32.lib
    3.
    VC6LIB.C
    __ReadWriteBarrier()
    GetRawInputData(),EnumDisplayDevicesW(),RegisterRawInputDevices()

Discussions similaires

  1. [Socket]Incompatible type ?
    Par Edouard Kaiser dans le forum Réseau
    Réponses: 30
    Dernier message: 21/02/2004, 20h58
  2. [Debutant] Sdl & OpenGl link ne marche pas
    Par Riko dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/02/2004, 16h13
  3. [VC6] Lier une DLL
    Par Selenite dans le forum MFC
    Réponses: 4
    Dernier message: 11/01/2004, 13h45
  4. Réponses: 5
    Dernier message: 22/12/2003, 14h18
  5. [opengl et sdl]
    Par Gonath dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/12/2003, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo