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

Delphi Discussion :

Erreur "l'application n'a pas reussi à s'initialiser correctement"


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 187
    Par défaut Erreur "l'application n'a pas reussi à s'initialiser correctement"
    Bonjour,
    J'ai un projet delphi qui fait appel à une dll écrite en delphi aussi, et quand j'essai de compiler le projet j'ai l'erreur suivante: "l'application n'a pas reussi à s'initialiser correctement(0x0000007b). Cliquez sur Ok pour arrêter l'application." je clique sur ok et j'ai ensuite une fenetre cpu quis'ouvre et un message d'information du type access violation...
    N.B: je note aussi que j'ai le meme message quand j'essai de compiler ma dll, et ceci en générant la DLL.

    Merci de m'aider les amis...

  2. #2
    Membre émérite Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Par défaut
    tu as du te planter dans ta dll.
    genre un oubli de clause export

    Montre le source de la dll.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 187
    Par défaut code
    Citation Envoyé par Kaféine
    tu as du te planter dans ta dll.
    genre un oubli de clause export

    Montre le source de la dll.
    Non je n'ai pas oublié la clause export, et voici mon code de ma dll
    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
    library ED_DLL;
    uses
      ShareMem,  Dialogs, SysUtils,
      Classes,
      Windows,
      //unitdll in 'unitdll.pas';
      FM_Main in 'FM_Main.pas',
      FM_Options in 'FM_Options.pas' {F_Options},
      U_Constantes in 'U_Constantes.pas',
      U_OptionsValues in 'U_OptionsValues.pas',
      FM_Params in 'FM_Params.pas' {F_Params},
      FM_About in 'FM_About.pas' {F_About},
      FM_FTP in 'FM_FTP.pas' {F_FTP},
      FM_SFTP in 'FM_SFTP.pas' {F_SFTP},
      FM_Splash in 'FM_Splash.pas' {F_Splash},
      FM_Mail in 'FM_Mail.pas' {F_Mail},
      U_Obligation in 'U_Obligation.pas',
      U_SwapTaux in 'U_SwapTaux.pas',
      U_TCN in 'U_TCN.pas',
      U_PretEmprunt in 'U_PretEmprunt.pas',
      U_ValMob_OLF in 'U_ValMob_OLF.pas',
      U_ObjectTypes in 'U_ObjectTypes.pas',
      U_ObligationConvertible in 'U_ObligationConvertible.pas',
      FM_Recap in 'FM_Recap.pas' {F_Recap},
      U_PJJ in 'U_PJJ.pas',
      U_CFD in 'U_CFD.pas',
      FM_SendTicketsUnitaires in 'FM_SendTicketsUnitaires.pas' {F_SendTicketsUnitaires},
      U_TRS in 'U_TRS.pas',
      U_ValMob_OLF_Sophis in 'U_ValMob_OLF_Sophis.pas',
      U_SwapChange in 'U_SwapChange.pas',
      U_ChangeSpotTerme in 'U_ChangeSpotTerme.pas',
      U_SwiftMT304 in 'U_SwiftMT304.pas',
      U_Tools in 'U_Tools.pas',
      U_CDS in 'U_CDS.pas',
      U_Options_CDS in 'U_Options_CDS.pas',
      U_OptionChange in 'U_OptionChange.pas',
      U_VarSwap in 'U_VarSwap.pas',
      U_OptionOTC in 'U_OptionOTC.pas',
      U_DividendSwap in 'U_DividendSwap.pas',
      U_Outperform in 'U_Outperform.pas',
      U_CapFloor in 'U_CapFloor.pas',
      U_Swaptions   in 'U_Swaptions.pas',
      U_SwapEquities in 'U_SwapEquities.pas';
     
    {$R *.res}
     
      procedure ExportToFileMultiple_NWE(ExportType : TFileType; refcon : String; DestinationType: TDestType;
                                       MajStatuts,choixRepertoire : Boolean;
                                       RepertoireCible : String); stdcall; external 'exportdeals.exe';
     
      procedure ExportToFileUnitaire_NEW(refcon, type_du_deal : String; MajStatuts, choixRepertoire : Boolean;
                                   RepertoireCible: String);  stdcall; external 'exportdeals.exe';
     
      function GetTypeDeal(refcon : string): string; stdcall; external 'exportdeals.exe';
     
     
    procedure ExportToFile(ExportType : TFileType; Listrefcon : TStringList; DestinationType: TDestType;
                           MajStatuts,choixRepertoire : Boolean; RepertoireCible : String;
                           CreerUnitaire : Boolean); stdcall;
    var
      i    : integer;
      type_du_deal : String;
    begin
         for i := 0 to Listrefcon.Count-1 do
         begin
            type_du_deal:= GetTypeDeal(Listrefcon[i]);
            if((type_du_deal='CDS') or (type_du_deal='Swap de change') or (type_du_deal='Change spot')
               or (type_du_deal='Change terme')) then
            begin
               if (not (CreerUnitaire)) then
                  ExportToFileMultiple_NWE(ExportType, Listrefcon[i] , DestinationType, MajStatuts,
                                         choixRepertoire, RepertoireCible)
               else
                  ExportTofileUnitaire_NEW(Listrefcon[i], type_du_deal, MajStatuts,
                                              choixRepertoire, RepertoireCible);
            end
            else if ((type_du_deal='Option listée et future') or (type_du_deal='CFD')
                      or (type_du_deal='TRS')) then
                  ExportToFileMultiple_NWE(ExportType, Listrefcon[i] , DestinationType,
                                           MajStatuts, choixRepertoire, RepertoireCible)
     
            else if ((type_du_deal='TCN') or (type_du_deal='Swaps de taux') or (type_du_deal='Obligation') or
                     (type_du_deal='VarSwap') or (type_du_deal='Obligation convertible') or
                     (type_du_deal='Option sur CDS') or (type_du_deal='Option de Change') or
                     (type_du_deal='Option OTC') or (type_du_deal='Dividend Swap') or (type_du_deal='Outperformance') or
                     (type_du_deal='CapFloor') or (type_du_deal='Equity Swap') or (type_du_deal='Pension JJ')) then
                  ExportTofileUnitaire_NEW(Listrefcon[i], type_du_deal, MajStatuts, choixRepertoire,
                                         RepertoireCible)
            else
                  MessageDlg('Le type du deal n est pas valide', mtError, [mbOk], 0);
        end;
    end;

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 187
    Par défaut
    en fait j'ai oublie ces dernieres lignes de mon code:

    exports
    ExportToFile;
    begin
    end.

  5. #5
    Membre émérite Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Par défaut
    salut,

    je vois que tu importes des fonctions de ton executable.
    tu as bien vérifie la clause export dans ton exe.

    exemple:

    ma dll:

    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
     
    library dll;
     
    uses
      SysUtils,
      Classes;
     
    {$R *.res}
     
    function Ajouter(A, B: Integer): integer; stdcall external 'prog.exe';
     
    function Somme(A, B: Integer): Integer;
    begin
      Result := Ajouter(A, B);
    end;
     
     
    exports
      Somme;
     
    begin
    end.

    et mon exe:

    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
     
    type
      TForm1 = class(TForm)
        btn1: TButton;
        procedure btn1Click(Sender: TObject);
      private
      public
      end;
     
    var
      Form1: TForm1;
     
     
    function Somme(A, B: Integer): Integer; external 'dll.dll';
     
    function Ajouter(A, B: Integer): integer; stdcall; 
     
    exports
      Ajouter; //<-- lexe export la fonction egalement
     
    implementation
     
     
    {$R *.dfm}
     
    function Ajouter(A, B: Integer): integer;
    begin
      Result := A + B;
    end;
     
    procedure TForm1.btn1Click(Sender: TObject);
    begin
      Showmessage(IntToStr(Somme(5,6)));
    end;
     
    end.
    je te montre ca car quand je vire l'export de l'executable alors j'ai le meme message d'erreur que toi c'est pourquoi tu devrais vérifier ces points.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 187
    Par défaut
    pourquoi est ce qu'on doit ajouter la clause export dans l'exe aussi??
    j'avour que ça je l'ai pas fait, je vais le tester pour voir
    merci de m'avoir repondu si vite...

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 187
    Par défaut
    Citation Envoyé par Kaféine
    salut,

    je vois que tu importes des fonctions de ton executable.
    tu as bien vérifie la clause export dans ton exe.

    exemple:

    ma dll:

    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
     
    library dll;
     
    uses
      SysUtils,
      Classes;
     
    {$R *.res}
     
    function Ajouter(A, B: Integer): integer; stdcall external 'prog.exe';
     
    function Somme(A, B: Integer): Integer;
    begin
      Result := Ajouter(A, B);
    end;
     
     
    exports
      Somme;
     
    begin
    end.

    et mon exe:

    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
     
    type
      TForm1 = class(TForm)
        btn1: TButton;
        procedure btn1Click(Sender: TObject);
      private
      public
      end;
     
    var
      Form1: TForm1;
     
     
    function Somme(A, B: Integer): Integer; external 'dll.dll';
     
    function Ajouter(A, B: Integer): integer; stdcall; 
     
    exports
      Ajouter; //<-- lexe export la fonction egalement
     
    implementation
     
     
    {$R *.dfm}
     
    function Ajouter(A, B: Integer): integer;
    begin
      Result := A + B;
    end;
     
    procedure TForm1.btn1Click(Sender: TObject);
    begin
      Showmessage(IntToStr(Somme(5,6)));
    end;
     
    end.
    En fait, je ne sais pas où je dois mettre la clause exports dans mon exe. Quand je l ai mis juste avant implementation comme tu m'a indiqué l'erreur suivante est au rendez vous: " undeclared identifier : 'ajouter'"

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/08/2013, 13h46
  2. Réponses: 5
    Dernier message: 13/02/2009, 20h13
  3. L'application n'a pas réussi à s'initialiser correctement
    Par kchrel dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 13/02/2009, 20h08
  4. L'application n'a pas reussi s'inissialiser correctement 0xc0000135
    Par psychoman dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 14/05/2007, 10h19
  5. Réponses: 12
    Dernier message: 02/05/2005, 17h16

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