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

Windows Discussion :

[C/win32] compilation DLL VS 2015 vs Code::blocks


Sujet :

Windows

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Points : 106
    Points
    106
    Par défaut [C/win32] compilation DLL VS 2015 vs Code::blocks
    Bonjour à tous,

    J'ai un problème à s'arracher les cheveux. Voici du code qui compose ma dll (de test) :

    Dll.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include <Windows.h>
    
    #include "main.h"
    
    
    BOOL DLL_EXPORT Exe(int i){
    
    	int a = i;
    
    	return TRUE;
    }
    
    
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
    					 )
    {
    	switch (ul_reason_for_call)
    	{
    	case DLL_PROCESS_ATTACH:
    	case DLL_THREAD_ATTACH:
    	case DLL_THREAD_DETACH:
    	case DLL_PROCESS_DETACH:
    		break;
    	}
    	return TRUE;
    }
    main.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #define BUILD_DLL
    
    #ifdef BUILD_DLL
    #define DLL_EXPORT __declspec(dllexport)
    #else
    #define DLL_EXPORT __declspec(dllimport)
    #endif
    
    
    #ifdef __cplusplus
    extern "C"
    {
    #endif
    
    	BOOL DLL_EXPORT Exe(int i);
    
    
    #ifdef __cplusplus
    }
    #endif
    Je compile ce code sous VS 2015 community avec aussi un programme de test qui fait tout bêtement un LoadLibraryEx("Dll.dll",NULL,0);

    code complet de l'application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <Windows.h>
    #include <stdio.h>
    
    
    int main(int argc, char* argv[])
    {
    
    
    	HMODULE hmodule;
    
    	hmodule = LoadLibraryEx("Dll.dll", NULL, 0);
    
    	if (hmodule == NULL)
    	{
    		printf("Fail : %d", GetLastError());
    	}
    	else
    		printf("Loaded");
    
    	int i;
    	scanf("%d", &i);
    
    	return 0;
    }

    Test sous windows 8.1 : le résultat est bien loaded, pas de soucis.
    Test sous une VM windows 10 : Erreur code 126 (module could not be found).

    Le même code, compilé sous Code::blocks dernière version (GCC)
    Test sous 8.1 : tout roule le résultat est loaded
    Test sous windows 10 : tout roule , c'est aussi loaded

    O_o

    Heeeeeeelp Du coup je m'oriente vers une différence d'option de compilation mais pour le moment je n'ai rien. Une idée ? je deviens fou.

    Pour info sous VS pour virer toutes dépendances à des fichiers quelconques , je compile avec les options suivantes :

    - Pas de precompiled header
    - Multi thread Dll
    - Multi bytes char set
    - Use standard windows library
    - platform toolset : Visual Studio 2015 - Windows XP (v140_xp)

    Les options sous code::blocks sont celles par défault

    (je n'ai pas touché aux autres options).

    Merci d'avance pour vos idées.
    ++

    deck_bsd

    /*************************************/
    [http://dckapps.azurewebsites.net/]

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    Ok j'ai trouvé /MT au lieux de /MD.

    Bonne nuit
    ++

    deck_bsd

    /*************************************/
    [http://dckapps.azurewebsites.net/]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/07/2014, 03h19
  2. compiler un programme Qt sous code::blocks ?
    Par isoman dans le forum Débuter
    Réponses: 2
    Dernier message: 17/04/2008, 22h41
  3. compiler un programme TC avec code::blocks ou un autre compilateur
    Par acacia dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 24/01/2008, 18h07
  4. Compiler des sources KjAPI sous Code::Blocks
    Par ThomasCh dans le forum Code::Blocks
    Réponses: 18
    Dernier message: 17/11/2006, 22h30
  5. [gtkmm] [Code:Blocks / Win32] Compile?
    Par Jean_Benoit dans le forum GTK+
    Réponses: 3
    Dernier message: 01/10/2006, 12h25

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