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...