IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Projet qui marchait, DLL qui compile pas


Sujet :

Visual C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 16
    Points
    16
    Par défaut Projet qui marchait, DLL qui compile pas
    Bonjour, tout est dans le titre .

    J'ai fait un projet console, qui marchait impec' (pas de problèmes de biblios, etc.). J'ai ensuite créé un projet DLL, avec les mêmes fichiers, et là, bam, 65 erreurs de compilation, alors que ça passait impec' juste avant!

    Genre, pour exemple:
    c:\workspace\panic\panic\test.cpp(8) : warning C4007: 'DllMain'*: doit être '__stdcall'
    c:\workspace\panic\panic\test.cpp(8) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    c:\workspace\panic\panic\test.cpp(10) : warning C4508: 'DllMain'*: la fonction doit retourner une valeur*; type de retour 'void' pris par défaut
    c:\workspace\panic\panic\test.cpp(139) : error C2664: 'SetCurrentDirectoryW'*: impossible de convertir le paramètre 1 de 'char *' en 'LPCWSTR'
    Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    Etc, etc.

    Je sais que j'en avais codé une y'a longtemps sur VC6, et ça marchait (mais il n'y avait pas de classes, ni de fonctions bien compliquées...).

    Pour ce qui est des fichiers, j'ai fait:
    test.h, qui contient ma classe
    test.cpp, qui contient mes procédures
    panic.def, qui contient le code tout bête

    dans test.h, j'ai juste rajouté une ligne extern "C" __declspec(dllexport) void un_nom_au_pif();


    J'ai beau chercher un peu partout, je tombe sur des projets de dll qui ne correspondent pas à ce que je cherche...

    Voila, je suis sur que c'est une erreur toute bête, et que ça me reviendra au moment où je m'en rendrais compte, ou que c'est juste que ça vient de l'environnement de développement (certaines fonctions n'acceptant plus certains paramètres)...


    Merci d'avance à tous ceux qui auront le temps et le courage de m'aiguiller .

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 601
    Points
    188 601
    Par défaut
    Bonjour,

    Tu as utilisé les mêmes fichiers pour un CLI et pour une DLL. Alors que le CLI doit avoir une fonction d'entrée (main) et qu'une DLL ne peut pas en avoir (on n'exécute pas encore des DLL, sauf exception). Si tu as laissé ta fonction main() dans le code de ta DLL, c'est normal qu'il y ait des erreurs.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Justement, j'ai utilisé dllMain comme il faut.

    Enfin, les erreurs étaient du genre utilisation de string à la place de WCHAR... Du coup j'ai retrouvé un ancien projet de dll qui datait de VC6, et j'ai balancé mon code dedans. Ca compile nickel.

    Du coup j'ai pas mis "résolu", au cas où quelqu'un aurait le même problème, et qu'il n'aurait pas d'ancien projet qui traine...

    Merci en tout cas

Discussions similaires

  1. Défilement qui marchait et qui ne marche plus
    Par metis15 dans le forum Powerpoint
    Réponses: 6
    Dernier message: 03/03/2009, 16h20
  2. Fonction qui marchait et qui ne marche plus(?)
    Par strat0 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/02/2007, 17h49
  3. dll qui compile mais qui bloque en appel
    Par darkman10 dans le forum Windows
    Réponses: 7
    Dernier message: 09/05/2006, 15h02
  4. Une DLL qui existe mais VB ne la trouve pas...
    Par Lawari dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/12/2005, 23h16
  5. [WTK] HelloWorld qui compile pas
    Par metos256 dans le forum Java ME
    Réponses: 2
    Dernier message: 08/09/2005, 12h35

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