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 :

Modifier un code utilisant une lib statique


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Points : 58
    Points
    58
    Par défaut Modifier un code utilisant une lib statique
    Bonjour à tous

    Je suis debutant, et j'ai trouvé ce code pour apprendre, sur un site de Microsoft qui montre comment modifier en C une structure envoyée par VB6.
    Il marche tres bien
    http://support.microsoft.com/kb/194609

    Seulement voila, le code C fait appel a une lib statique pour referencer dans VB la structure et aussi je suppose les formats d'entrée de la fonction DLL.

    J'ai essayé de modifier le code VB pour me passer du referencement, en declarant la fonction de la DLL, en ajoutant la declaration de la structure, j'ai aussi désactivé le fichier "UDTArray.odl" dans la compilation de la DLL, mais cela ne marche pas

    Si quelqu'un peut m'eclairer sur ce qui ne va pas.

    Merci et bonne journée

    Code VB6
    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
    Private Declare Sub ModifyStruct Lib "UDTArray\Debug\UDTArray.dll" (PointerArray As TestUDT, ByVal nTotalItem As Long)
     
    Private Type TestUDT
     l As Long
     str As String
    End Type
     
    Private Sub Form_Load()
     
      Dim t(0 To 1) As TestUDT
      Dim i As Long
     
      t(0).l = 1
      t(0).str = "test1"
     
      t(1).l = 2
      t(1).str = "Test2"
     
      i = UBound(t) - LBound(t) + 1
     
      ModifyStruct t(0), i  't(0)'s address will be passed to C
     
      MsgBox "t(1).l = " & t(1).l & vbCrLf & "t(1).str = " & t(1).str
     
    End Sub
    Merci et bonne journée

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par andrebernard Voir le message
    Seulement voila, le code C fait appel a une lib statique pour referencer dans VB la structure et aussi je suppose les formats d'entrée de la fonction DLL.
    Je crois deviner une grosse incompréhension de ce qu'est une librairie statique....

    librairie statique et DLL sont opposées...

    Quand on compile un programme avec appel d'une fonction d'une librairie statique, le CODE de la fonction est recopié dans l'exécutable..

    Quand on compile un programme avec appel d'une fonction d'une librairie dynamique (DLL), l'ADRESSE de la fonction est insérée dans l'exécutable...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 374
    Points : 23 631
    Points
    23 631
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Je crois deviner une grosse incompréhension de ce qu'est une librairie statique... librairie statique et DLL sont opposées...
    « Opposées », ce n'est peut-être pas le mot qui convient. La finalité de la chose reste la même dans les deux cas (et est transparente aux yeux du programme).

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    « Opposées », ce n'est peut-être pas le mot qui convient. La finalité de la chose reste la même dans les deux cas (et est transparente aux yeux du programme).
    je suis bien d'accord avec toi, je me suis fourvoyé dans le terme...

    Disons que ce mot m'est venu en lisant le passage cité...


    Et que par rapport à l'esprit de la question posée, j'ai eu l'impression que le PO assimilait les 2 avec :

    J'ai essayé de modifier le code VB pour me passer du referencement, en declarant la fonction de la DLL, en ajoutant la declaration de la structure, j'ai aussi désactivé le fichier "UDTArray.odl" dans la compilation de la DLL, mais cela ne marche pas
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Points : 58
    Points
    58
    Par défaut
    Merci de vos reponses.
    Mais savez vous pourquoi mon exemple ne marche pas ????

Discussions similaires

  1. Création et utilisation d'une lib statique
    Par zentaf dans le forum C
    Réponses: 1
    Dernier message: 02/02/2014, 13h17
  2. Utiliser une lib C en C#
    Par Crazyfaboo dans le forum C++/CLI
    Réponses: 3
    Dernier message: 11/01/2007, 00h14
  3. Méthode qui permet de modifier le code d'une page après affichage .. ?
    Par winnie82 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 04/07/2006, 15h40
  4. Réponses: 2
    Dernier message: 02/05/2006, 14h34
  5. Utiliser une bibliothèque statique
    Par djflex68 dans le forum MFC
    Réponses: 6
    Dernier message: 15/08/2005, 19h26

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