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

Langage C++ Discussion :

Construction d'une DLL


Sujet :

Langage C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Construction d'une DLL
    Salut,

    Je dispose d'un ensemble de programmes C++ (.cpp) et de leur library associée (.h)

    J'ai besoin de compiler l'ensemble des ces programmes pour créer une DLL
    (Cette DLL sera accédée extérierement par un programme écrit en MQ4L )

    Qui peut me donner quelques conseils pour pouvoir compiler le tout dans une DLL en 32 bits
    car ca plante....

    Est ce que je pourrais trouver des examples de compilation de DLL quelque part ?

    je souhaite utiliser MinGW32 avec G++ en 32

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Je dispose d'un ensemble de programmes C++ (.cpp) et de leur library associée (.h)
    1- Ce ne sont pas des programmes, ce sont des fichiers d'implémentation

    2- Ce ne sont pas des library, ce sont des fichiers d'en-tête

    3- la traduction francaise du terme anglais library est "bibliothèque"
    J'ai besoin de compiler l'ensemble des ces programmes pour créer une DLL
    (Cette DLL sera accédée extérierement par un programme écrit en MQ4L )
    Je ne connais absolument pas MQ4L ... qu'est ce

    (1- bis repetita : ce ne sont pas des programmes )

    Qui peut me donner quelques conseils pour pouvoir compiler le tout dans une DLL en 32 bits
    Qu'il s'agisse de créer une dll 32bits ou 64bits, ce sera pareil:

    1- le terme DLL est l'abréviation de Dynamicaly Loaded Library (bibliothèque chargée dynamiquement) et est spécifique à windows

    2- tu as, a priori, intérêt à exposer une ABI C dans ta dll, car c'est la "langua franca" du développement, et que, si tu expose une ABI écrite en C++, tu te retrouvera face à l'obligation de compiler ton application en utilisant le même compilateur, dans la même version, avec les mêmes options de compilation.

    3- Il y a une différence sous windows entre le moment où l'on compile la dll et le moment où on l'utilise. Le plus facile est du coup d'utiliser un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #if defined(WIN32) // ce n'est nécessaire que pour windows
    #    if defined (SHARED) // symbole à rajouter si tu utilise une version dynamique de ta bibliothèque
    #        if defined(BUILD_MYDLL) // symbole à rajouter lorsque tu compile la bibliothèque dynamique
    #            define MY_DLL_API __declspec(dllexport) 
    #        else
    #            define MY_DLL_API __declspec(dllimport)
    #        endif
    #    else   // si ce n'est pas une version dynamique de la bibliothèque
    #        define MY_DLL_API
    #     endif
    #else // si on n'est pas sous windows
    #    define MY_DLL_API 
    #endif
    que tu veilleras à inclure de manière systématique dans tous tes fichiers d'en-tête
    (NOTA : 3.a- tu as sans doute intérêt à retirer les commentaires que j'ai rajouté
    3.b MY_DLL_API peut être remplacé par n'importe quel symbole de ton cru, pour autant qu'il soit strictement unique )

    4- A partir de là, tu pourras envisager de définir l'interface C de ta dll sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    extern "C"{
        type_de_retour MY_DLL_API nom_de_fonction(/* paramètres requis*/ );
        /*autres fonctions exportées par la dll */
    }
    En veillant cependant à ce que tout ce qui se trouve entre l'accolade ouvrante qui suit le code extern "C" et l'accolade fermante équivalente soit strictement compatible avec le langage C (donc: pas de "class" ni autres joyeusetés du genre)
    car ca plante....
    5- Ca ne veut strictement rien dire : en nous indiquant l'erreur, et en nous fournissant le code que tu as écrit, nous pourrions peut être t'aider plus efficacement
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour

    D'abord, le langage MQ4L est utilisé sur les plateformes MT4 en 32 bits, et qui sont fournies au téléchargement par les brokers

    J'ai donc un robot écrit en MQ4L (je suis un dev en mq4l) et maintenant, on me demande que ce robot fasse un appel à la DLL au début de son initialisation
    donc, le robot écrit en MQ4L, contient cette ligne suivante (comme exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #import "TestDll.dll"
     
    int TestDll(int & Param[]);	 
     
    #import
    Donc, j'ai écrit tous les indicateurs en C++
    maintenant, il me reste à trouver comment écrire une ABI en C, et là, je suis largué

    BOn, une fois, les données du marché initialisées et alimentées, la DLL va appeller les fonctions nécessaires pour récuperer les valeurs des matrices calculées dans les fonctions écrites en C++

    ok, qu'est ce que tu en penses ?
    Fichiers attachés Fichiers attachés

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut job / presta
    Peut-etre que le mieux, vu la complexité de ce que je demande, serait que je propose à un expert
    de réaliser ce truc, non ? contre des sousous

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut est ce correct ?
    fichiers exported_functions.cpp et exported_functions.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
    22
    23
    24
    25
    26
    27
    28
     
    //+------------------------------------------------------------------+
    //|                                              Sample DLL for MQL4 |
    //|                 Copyright © 2004-2006, MetaQuotes Software Corp. |
    //|                                        <a href="http://www.metaquotes.net" target="_blank">http://www.metaquotes.net</a> |
    //+------------------------------------------------------------------+
    #define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include "exported_functions.h"
     
     
     
    BOOL APIENTRY DllMain(HANDLE 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);
      }
    _________________________________________

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef __exported_functions_h__
    #define __exported_functions_h__
     
     
    #define MT4_EXPFUNC __declspec(dllexport)
    #define INDIC_INCLUDE
    #define INDIC_NO_DLL
     
    /* maximum number of concurrent threads */
    #define INDIC_MAX_THREADS       64
     
    #endif  /* __exported_functions_h__ */
    ~

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    #define MT4_EXPFUNC ne peut être défini comme __declspec(dllexport) que lorsque tu compile ta dll

    Lorsque tu utilise ta dll, il doit être défini comme __declspec(dllimport)Quand je te disais d'adapter le symbole MY_DLL_API, je parlais du symbole MT4_EXPFUNC, vu que c'est celui que tu as déjà choisi

    Tes fichiers joints ne sont pas des zip... Il m'est impossible de les ouvrir pour voir ce qu'ils contiennent...
    ah, alors ceci plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    extern "C"
    {
     
    #define MT4_EXPFUNC __declspec(dllexport) updateBuffer( double WatrUp[], double WatrDown[] )
     
    MT4_EXPFUNC int __stdcall
     
    }
    Non! C'est, dans un fichier d'en-tête (mettons mt4_api.h), avoir un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #if defined(WIN32)
    #    if defined (SHARED)
    #        if defined(BUILD_MT4_DLL)
    #            define MT4_EXPFUNC __declspec(dllexport) 
    #        else
    #            define MT4_EXPFUNC __declspec(dllimport)
    #        endif
    #    else
    #        define MT4_EXPFUNC
    #     endif
    #else
    #    define MT4_EXPFUNC
    #endif
    puis, dans exported_functions.h, un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ifndef __exported_functions_h__
    #define __exported_functions_h__
    include <mt4_api.h>
    /* parce qu'il faut ne mangling "C */
    extern "C"{
    void  MT4_EXPFUNC maFonction();
    int  MT4_EXPFUNC autreFonction(char *);
    char *  MT4_EXPFUNC encoreUneAutreFonction( int * );
    }
    #endif /* __exported_functions_h__ */
    Quand tu compile ta dll, tu le fais alors avec une commande proche de g++ -DSHARED -DBUILD_MT4_DLL -c fichier.cpp -o fichier.o.
    et quand tu compile ton application, tu le fait avec une commande proche de g++ -DSHARED -c fichier.cpp -o fichier.o.
    (en plus de toutes les autres options de compilation qui vont bien, bien sur )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut est ce correct ?
    Citation Envoyé par koala01 Voir le message
    [
    puis, dans exported_functions.h, un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ifndef __exported_functions_h__
    #define __exported_functions_h__
    include <mt4_api.h>
    /* parce qu'il faut ne mangling "C */
    extern "C"{
    void  MT4_EXPFUNC maFonction();
    int  MT4_EXPFUNC autreFonction(char *);
    char *  MT4_EXPFUNC encoreUneAutreFonction( int * );
    }
    #endif /* __exported_functions_h__ */
    Bonjour

    ah, je trouve en fait autre chose, et c'est écrit dans indicators.h
    mais cela semble ne rien à voir avec l'ensemble des indicators écrits en C++




    (ca ressemble à du code préparé pour VS
    sauf que je veux le compiler pour du MinGW32 (32bits)

    donc, ici le code de indicators.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    /* COMPAT_TIME REPLACEMENT */
    /* COMPAT_TIME REPLACEMENT */
    #ifndef _WIN32
    #include <sys/time.h>
    #else   /* _WIN32 */
    #if !defined(_MSC_EXTENSIONS) && !defined(_INC_WINDOWS)  
    extern unsigned long __stdcall GetTickCount(void);
     
    #else   /* _MSC_EXTENSIONS */
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    #endif  /* _MSC_EXTENSIONS */
    #endif  /* _WIN32 */
     
    #ifndef __INDIC_h__
    #define __INDIC_h__
     
    #ifdef __cplusplus
    extern "C"
    {
     
    #ifndef __cplusplus
    } /* to fool automatic indention engines */
    #endif  
    #endif  /* __cplusplus */
     
    #ifndef NULL
    #define NULL 0
    #endif  /* NULL */
     
    /* ----- Macros used to define DLL external entrypoints ----- */
    /*
     DLL Export, import and calling convention for Windows.
     Only defined for Microsoft VC++ INDIC_EXTERNAL indicates
     that a function will be exported/imported from a dll
     INDIC_API ensures that the DLL calling convention
     will be used for  a function regardless of the calling convention
     used when compiling.
     
     For a function to be exported from a DLL its prototype and
     declaration must be like this:
        INDIC_EXTERNAL void INDIC_API function(char *argument)
     
     The following ifdef block is a way of creating macros which
     make exporting from a DLL simple. All files within a DLL are
     compiled with the INDIC_DLL_EXPORTS symbol defined on the
     command line. This symbol should not be defined on any project
     that uses this DLL. This way any other project whose source
     files include this file see INDIC_EXTERNAL functions as being imported
     from a DLL, whereas a DLL sees symbols defined with this
     macro as being exported which makes calls more efficient.
     The __stdcall calling convention is used for functions in a
     windows DLL.
     
     The callback functions for INDIC_set_callback must be declared as INDIC_API
     so the DLL and the application program both use the same
     calling convention.
    */
     
    /*
     The following sets the default for MSVC++ 2003 or later to use
     the INDIC dll's. To use a lib or fixedINDIC.c, floatINDIC.c or doubleINDIC.c
     with those compilers INDIC_NO_DLL has to be defined before
     including the INDIC headers.
     The default for previous MSVC compilers such as VC++ 6 is not
     to use dll's. To use dll's INDIC_USE_DLL has to be defined before
     including the INDIC headers.
    */
    #if (_MSC_VER > 1300)
    #ifndef INDIC_NO_DLL
    #define INDIC_USE_DLL
    #endif  /* INDIC_USE_LIB */
    #endif  /* _MSC_VER */
    #if defined(_MSC_VER) && (defined(INDIC_USE_DLL) || defined(INDIC_DLL_EXPORTS))
    #ifdef INDIC_DLL_EXPORTS
    #define INDIC_EXTERNAL __declspec(dllexport)
    #else                                                   /*  */
    #define INDIC_EXTERNAL __declspec(dllimport)
    #endif  /* INDIC_DLL_EXPORTS*/
    #define INDIC_API __stdcall
    #else                                                   /*  */
    #define INDIC_EXTERNAL
    #define INDIC_API
    #endif  /* _MSC_VER */
    /* ----- End of macros used to define DLL external entrypoints ----- */
     
    #include "data.h"
    #include "ssa.h"
     
     
     
    INDIC_EXTERNAL struct INDIC *INDIC_API INDIC_create_standard(unsigned int num_layers, ...);
     
     
     
    #ifdef __cplusplus
    #ifndef __cplusplus
    /* to fool automatic indention engines */
    {
     
    #endif
    }
    #endif  /* __cplusplus */
     
    #endif  /* __INDIC_h__ */
     
     
    #ifndef _WIN32
    #include <sys/time.h>
    #else   /* _WIN32 */
    #if !defined(_MSC_EXTENSIONS) && !defined(_INC_WINDOWS)  
    extern unsigned long __stdcall GetTickCount(void);
     
    #else   /* _MSC_EXTENSIONS */
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    #endif  /* _MSC_EXTENSIONS */
    #endif  /* _WIN32 */
     
    #ifndef __INDIC_h__
    #define __INDIC_h__
     
    #ifdef __cplusplus
    extern "C"
    {
     
    #ifndef __cplusplus
    } /* to fool automatic indention engines */
    #endif
    #endif  /* __cplusplus */
     
    #ifndef NULL
    #define NULL 0
    #endif  /* NULL */
     
    /* ----- Macros used to define DLL external entrypoints ----- */
    /*
     DLL Export, import and calling convention for Windows.
     Only defined for Microsoft VC++ INDIC_EXTERNAL indicates
     that a function will be exported/imported from a dll
     INDIC_API ensures that the DLL calling convention
     will be used for  a function regardless of the calling convention
     used when compiling.
     
     For a function to be exported from a DLL its prototype and
     declaration must be like this:
        INDIC_EXTERNAL void INDIC_API function(char *argument)
     
     The following ifdef block is a way of creating macros which
     make exporting from a DLL simple. All files within a DLL are
     compiled with the INDIC_DLL_EXPORTS symbol defined on the
     command line. This symbol should not be defined on any project
     that uses this DLL. This way any other project whose source
     files include this file see INDIC_EXTERNAL functions as being imported
     from a DLL, whereas a DLL sees symbols defined with this
     macro as being exported which makes calls more efficient.
     The __stdcall calling convention is used for functions in a
     windows DLL.
     
     The callback functions for INDIC_set_callback must be declared as INDIC_API
     so the DLL and the application program both use the same
     calling convention.
    */
    /*
     The following sets the default for MSVC++ 2003 or later to use
     the INDIC dll's. To use a lib or fixedINDIC.c, floatINDIC.c or doubleINDIC.c
     with those compilers INDIC_NO_DLL has to be defined before
     including the INDIC headers.
     The default for previous MSVC compilers such as VC++ 6 is not
     to use dll's. To use dll's INDIC_USE_DLL has to be defined before
     including the INDIC headers.
    */
    #if (_MSC_VER > 1300)
    #ifndef INDIC_NO_DLL
    #define INDIC_USE_DLL
    #endif  /* INDIC_USE_LIB */
    #endif  /* _MSC_VER */
    #if defined(_MSC_VER) && (defined(INDIC_USE_DLL) || defined(INDIC_DLL_EXPORTS))
    #ifdef INDIC_DLL_EXPORTS
    #define INDIC_EXTERNAL __declspec(dllexport)
    #else                                                   /*  */
    #define INDIC_EXTERNAL __declspec(dllimport)
    #endif  /* INDIC_DLL_EXPORTS*/
    #define INDIC_API __stdcall
    #else                                                   /*  */
    #define INDIC_EXTERNAL
    #define INDIC_API
    #endif  /* _MSC_VER */
    /* ----- End of macros used to define DLL external entrypoints ----- */
     
    #include "data.h"
    #include "ssa.h"
     
     
     
    INDIC_EXTERNAL struct INDIC *INDIC_API INDIC_create_standard(unsigned int num_layers, ...);
     
     
     
    #ifdef __cplusplus
    #ifndef __cplusplus
    /* to fool automatic indention engines */
    {
     
    #endif
     
    #endif  /* __cplusplus */
     
    #endif  /* __INDIC_h__ */

    suivi de indicators.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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    /*
      Fast Artificial Neural Network Library (fann)
      Copyright (C) 2003-2012 Steffen Nissen (sn@leenissen.dk)
     
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.
     
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Lesser General Public License for more details.
     
      You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    */
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdarg.h>
    #include <string.h>
    #include <time.h>
    #include <math.h>
    #include "indicators.h"
     
    /* #define FANN_NO_SEED */
     
    double INDIC_API test(unsigned int num_layers, ...)
    {
     
     
    	return 0;
    }
     
     
     
    /* INTERNAL FUNCTION
       Seed the random function.
     */
    void fann_seed_rand()
    {
    #ifndef _WIN32
    	FILE *fp = fopen("/dev/urandom", "r");
    	unsigned int foo;
    	struct timeval t;
     
    	if(!fp)
    	{
    		gettimeofday(&t, NULL);
    		foo = t.tv_usec;
    #ifdef DEBUG
    		printf("unable to open /dev/urandom\n");
    #endif
    	}
    	else
    	{
    	        if(fread(&foo, sizeof(foo), 1, fp) != 1) 
    	        {
      		       gettimeofday(&t, NULL);
    		       foo = t.tv_usec;
    #ifdef DEBUG
    		       printf("unable to read from /dev/urandom\n");
    #endif		      
    		}
    		fclose(fp);
    	}
    	srand(foo);
    #else
    	/* COMPAT_TIME REPLACEMENT */
    	srand(GetTickCount());
    #endif
    }
    [

    qu'en penses-tu ?
    est-ce une fausse piste ? ca a l'air de concerner autre chose que exported_functions.h

Discussions similaires

  1. [débutant C#]construction d'une dll en dotnet..
    Par just1980 dans le forum C#
    Réponses: 20
    Dernier message: 19/08/2010, 15h53
  2. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19
  3. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07

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