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 :

[Compilation] Appel d'une fonction C++ depuis du code C


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 27
    Par d�faut [Compilation] Pb DLM
    Bonjour,

    J�ai une erreur de compilation que je n�arrive pas � r�soudre. J�ai 2 DLM, Fichier1 et Fichier2. Fichier1 est en C++, Fichier2 en C. J�appelle dans Fichier200.c une fonction C++ d�finie dans Fichier100.cpp

    Je comple avec DCXX Dignus Systems/C++ Compiler - version 1.80.30

    J�ai l�erreur suivante � la compilation:
    plink: warning: symbol `Fichier1' from file "obj\Fichier200.o" is unresolved
    plink: warning: symbol ` Fichier1' from file "obj\ Fichier200.o" is unresolved
    PLINK Return code 1


    Sans l�appel MaFct() dans Fichier2() , la compilation passe.

    Merci de votre aide.


    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
    Fichier100.cpp
    extern "C"
    {
    
    	// Declare function(s) with C linkage
    
    	void MaFct()
    	{
    		// ............
    	}
    
    }
    
    Class1::Class1()
    {
    }
    
    Fichier1.h
    #ifndef __FICHIER1_H__
    #define __FICHIER1_H__
    
    class Class1
    {
    public:
    	Class1();
    };
    
    #endif
    
    Fichier1I.h
    #pragma map(MaFct, " Fichier1")
    
    #ifdef __cplusplus
    extern "C" void MaFct();
    #else
    extern void MaFct();
    #endif
    
    Fichier1.bsl
    DLM Fichier1   
    Fichier100    
    
    
    Fichier200.c
    #include "Fichier2.h"  
    
    void Fichier2()
    {
    	MaFct() ;
    }
    
    Fichier2.h
    #include "Fichier1I.h"  
    
    
    Fichier2.bsl                                                                       
    DLM Fichier2   
    Fichier200
    J�ai d�j� essay� de changer Fichier2.bsl

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    Fichier2.bsl                                                                       
    DLM Fichier2   
    @IMPORTDS Fichier1
    Fichier200
    Mais dans ce cas j�ai l�erreur suivante
    plink: error: unable to open 'DSDLIB(Fichier1)' for INCLUDE: No such file or directory
    plink: warning: symbol `Fichier1' from file "obj\Fichier200.o" is unresolved
    PLINK Return code 1

    Autres essais:
    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
    Fichier100.cpp
    #include "Fichier1.h"
    
    extern "C"
    {
    
    	// Declare function(s) with C linkage
    
    	void MaFct()
    	{
    		// ............
    	}
    
    }
    
    Class1::Class1()
    {
    }
    
    Fichier1.h
    #ifndef __FICHIER1_H__
    #define __FICHIER1_H__
    
    class Class1
    {
    public:
    	Class1();
    };
    
    #endif
    
    Fichier1I.h
    #ifndef __FICHIER1I_H__
    #define __FICHIER1I_H__
    
    void MaFct();
    
    #endif
    
    Fichier2.h
    #ifndef __FICHIER2_H__
    #define __FICHIER2_H__
    
    #include "Fichier1I.h"
    
    #endif
    
    Fichier200.c
    #include "Fichier2.h" 
    
    void Fichier2()
    {
    	MaFct();
    }
    Mais ca ne resout pas mes problemes de compilation:

    .\Fichier1I.h : error C2100 : syntax error: missing declaration
    extern "C" void MaFct();


    Si vous avez des idees ou vous voyez une erreur...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 27
    Par d�faut Avec 1 seule DLM -> Ok
    En reunissant les 2 DLM dans une seule, je n'ai plus d'erreur de compilation.

    Si vous voyez une solution avec 2 DLM, je suis prenneur.

    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
    Fichier100.cpp
    
    // Declare function(s) with C linkage
    extern "C"void MaFct()
    {
    		// ............
    }
    
    
    Class1::Class1()
    {
    }
    
    Fichier1.h
    #ifndef __FICHIER1_H__
    #define __FICHIER1_H__
    
    class Class1
    {
    public:
    	Class1();
    };
    
    #endif
    
    Fichier1I.h
    #pragma map(MaFct, " Fichier1")
    
    #ifdef __cplusplus
    extern "C" void MaFct();
    #else
    extern void MaFct();
    #endif
    
    Fichier1.bsl
    DLM Fichier1 
    Fichier100    
    Fichier200
    
    Fichier200.c
    #include "Fichier2.h"  
    
    void Fichier2()
    {
    	MaFct() ;
    }
    
    Fichier2.h
    #include "Fichier1I.h"
    
    Suppression de Fichier2.bsl

Discussions similaires

  1. Appel d'une fonction javascript depuis un flash
    Par nelk1 dans le forum jQuery
    R�ponses: 1
    Dernier message: 25/04/2009, 23h16
  2. Appel d'une fonction "MFC" depuis Java (e.g. GetWindowText)
    Par Tororo73 dans le forum API standards et tierces
    R�ponses: 2
    Dernier message: 07/01/2009, 11h51
  3. Appeller une fonction Javascript depuis le Code VB
    Par chrislcf dans le forum ASP.NET
    R�ponses: 5
    Dernier message: 08/08/2008, 12h41
  4. [Debutant] Appel d'une fonction FORTRAN depuis C++
    Par Amariel dans le forum D�buter
    R�ponses: 2
    Dernier message: 10/07/2007, 13h14
  5. Appel d'une fonction A depuis une fonction B.
    Par LeFlou dans le forum C++
    R�ponses: 9
    Dernier message: 22/05/2007, 17h36

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