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

C++ Discussion :

Code dll à decortiquer


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Code dll à decortiquer
    Bonjour;

    En restant sur le même site, j'avais posé cette question dans le forum Vba.
    J'aimerais juste extraire le dll joint pour voir le programme source.
    En même temps, comme je m'y connais pas en C++, je souhaiterais que quelqu'un m'aide à augmenter les limites comme spécifié dans ce code vba: 25,150,250 ....
    Ces limitations me bloquent pour augmenter les capacités du programme Vba que je suis entrain de faire.

    Merci de votre aide

    Code VB : 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
    Private Declare Sub cA Lib "pcont.dll" Alias "_CALCULS_APPUIS@100" (ByVal nbt&, ByVal nelem&, ByVal genre&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, reaction#, deplacement#, _
      Mb#, Md#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
    Private Declare Sub cM Lib "pcont.dll" Alias "_CONSTRUIT_MATRICE@56" (ByVal nbt&, a#, b#, c#, e#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#, Ma#)
    Private Declare Sub cT Lib "pcont.dll" Alias "_CALCULS_TRAVEES@136" (ByVal nbt&, ByVal nelem&, ByVal pas&, ByVal l#, ByVal abscisse#, ByVal n&, Ma#, cod#, Rog#, Rod#, Rg#, Rd#, _
     reaction#, deplacement#, Mb#, Md#, Mt#, Th#, Fl#, Re#, Ai#, Bi#, Ci#, EI#, portee#, inertie#, module#, k#, ByVal Ko#, ByVal Kn#)
     
     
     
    Sub calcul_moments(nbt As Long, portee() As Double, cod() As Double, Ko As Double, Kn As Double, k() As Double, module() As Double, inertie() As Double, moments() As Double, tranchants() As Double, flèches() As Double, réactions() As Double)
     
    'intermédiaires :
    Dim Rog(150) As Double, Rod(150) As Double, Rg(150) As Double, Rd(150) As Double
    Dim reaction(150) As Double, deplacement(150) As Double, Mb(150) As Double, Md(150) As Double
    Dim Ai(150) As Double, Bi(150) As Double, Ci(150) As Double, EI(150) As Double
    Dim Ma() As Double
    Dim genre As Long
    Dim distance As Double, abscisse As Double
    'sorties :
    Dim Mt(25, 2) As Double, Th(25, 2) As Double, Fl(25, 2) As Double, Re(25, 2) As Double
    'autres :
    Dim i As Long, j As Long, l As Double
     
    ReDim Ma(nbt, nbt) As Double
    genre = 1
    Call cM(nbt, Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn, Ma(0, 0))
    Call cA(nbt, cod(0, 0), genre, Ma(0, 0), cod(0, 0), Rog(0), Rod(0), Rg(0), Rd(0), reaction(0), deplacement(0), Mb(0), Md(0), Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn)
    For i = 1 To nbt
        Call cT(nbt, cod(0, 0), pas, portee(i), abscisse, i, Ma(0, 0), cod(0, 0), Rog(0), Rod(0), Rg(0), Rd(0), reaction(0), deplacement(0), Mb(0), Md(0), Mt(0, 0), Th(0, 0), Fl(0, 0), Re(0, 0), Ai(0), Bi(0), Ci(0), EI(0), portee(0), inertie(0), module(0), k(0), Ko, Kn)
        For l = 1 To 3
            For j = 1 To 2 * pas
                moments(2 * (i - 1) * pas + j, l) = Mt(j, l - 1)
                tranchants(2 * (i - 1) * pas + j, l) = Th(j, l - 1)
            Next
            For j = 1 To pas
                flèches(2 * (i - 1) * pas + 2 * j - 1, l) = 1000 * Fl(j - 1, l - 1)
                flèches(2 * (i - 1) * pas + 2 * j, l) = 1000 * Fl(j, l - 1)
            Next
            réactions(2 * i - 1, l) = Re(0, l - 1)
            réactions(2 * i, l) = Re(1, l - 1)
        Next
    Next
     
     
    For j = 1 To 2 * pas * nbt
        'mini
        moments(j, 1) = moments(j, 1) + moments(j, 2)
        tranchants(j, 1) = tranchants(j, 1) + tranchants(j, 2)
        flèches(j, 1) = flèches(j, 1) + flèches(j, 2)
     
        'maxi
        moments(j, 3) = moments(j, 3) + moments(j, 2)
        tranchants(j, 3) = tranchants(j, 3) + tranchants(j, 2)
        flèches(j, 3) = flèches(j, 3) + flèches(j, 2)
    Next
     
    For j = 1 To 2 * nbt
        réactions(j, 1) = réactions(j, 1) + réactions(j, 2)
        réactions(j, 3) = réactions(j, 3) + réactions(j, 2)
    Next
     
    End Sub

    Cdlt
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    Ca n'a pas de sens.

    Une dll, c'est du binaire compilé. Pour "extraire le code source", il faut décompiler, et il ne s'agit que de créer un code qui aura le même comportement.
    Le code source n'est pas dans le compilé, surtout avec les optimisations.

    Par contre, tu dois avoir quelque part un ou plusieurs .h permettant de l'utiliser.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    PS: Remplace ta balise [ CODE ] par [ CODE=VB ] pour éviter la coloration syntaxique anormale.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    En décompilant, on retrouve un code qui fait la même chose?
    Je suis preneur si c'est le cas.
    Si j’arrive à décompiler et transformer le code en code Vb, c'est encore mieux

    Je ne suis pas informaticien, j’essaie de me servir de la programmation pour faire des calculs dans mon métier.
    Mes questions peuvent donc paraitre à la ramasse, mes excuses par avance.

    Cdlt

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    Tu ne va pas pouvoir décompiler comme ça.
    Il y a des outils qui peuvent aider, mais il faut être un bon développeur pour y arriver.

    Quel est ton objectif?
    On va essayer de trouver comment l'atteindre sans passer par le pire moyen.
    En décompilant, tu auras quelque chose qui commence à peine à être lisible par un informaticien normal.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Mon objectif:
    J'ai des programmes VBA Excel qui font appel à ce fichier dll.
    Je suis entrain de reformuler les procédures VBA, parce que non satisfait du programme existant. Pour autant, les sorties du dll, je ne peux pas les obtenir avec une autre procédure.
    Il faut passer par le dll, et les sorties des procédures matricielles sont limitées.
    En accèdent à ce programmes, je pense arriver à entendre les limités genre: Ma (250,2) que j'ai transmis dans le code contenu dans mon premier poste.

  7. #7
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    En ce cas, tourne toi vers les développeurs de cette dll, ou utilise les formules par bloc, si possible.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pourquoi tu ne ferais pas ton propre système de dll en exportant tes fonctions c++ dans une factory et en les appelant à l'exécution à l'aide d'un id ?

    Je pense que ça serait le plus simple.

    Reste à savoir comment appeler une fonction en c++ via du code VBA.

    Je pense que ça doit être possible, on l'avait fait une fois mais avec du PROLOG à l'école.

  9. #9
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    Merci, Lolilolight, mais dioufo n'est pas développeur, il n'a probablement pas le niveau pour créer une dll utilisable en VBA, et en plus, il veut améliorer certains comportement d'une dll existante dont il n'a pas le code.

    Soit il trouve des paramètres de configuration, ce qui ne semble pas être le cas, soit il fait avec, soit il demande de l'aide à la source: les devs de la dll.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ha ok il n'est pas développeur, ok, désolé alors.

    Dans ce cas il faut en effet qu'il demande de l'aide au développeurs de cette dll.

Discussions similaires

  1. injection de code (DLL) au début d'une fonction
    Par acx01b dans le forum Assembleur
    Réponses: 2
    Dernier message: 27/04/2011, 13h59
  2. [VC++6] [DLL] Allow merging of proxi/stub code ?
    Par mandagor dans le forum MFC
    Réponses: 1
    Dernier message: 07/10/2005, 10h17
  3. Transcrire code PHP dans une DLL
    Par LEK dans le forum C++
    Réponses: 16
    Dernier message: 26/09/2005, 14h17
  4. Réponses: 7
    Dernier message: 13/01/2005, 10h30
  5. intégrer dll VB dans code C/C++
    Par inertia dans le forum MFC
    Réponses: 3
    Dernier message: 09/05/2004, 12h09

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