Bonjour à tous,
J'ai créé une DLL à partir d'un code source en C, en utilisant l'assistant "Expert DLL" de Borland C++ Builder 6.
J'ai inclus au projet de la DLL la librairie "memmgr.lib" comme cela est conseillé.
Pour compiler cette DLL, j'ai créé un .HPP contenant une seule fonction :
Lorsque j'utilise cette DLL dans un projet C++, j'inclus le .LIB créé lors de la compilation de la DLL, et j'inclus également le HPP que je suis obligé de un peu modifier pour ne pas avoir un "unresolved external" lors de la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Déjà, est-ce que cela est correct ? Est-ce qu'il n'est pas déconseillé de mêler DLL en C et code source en C++ ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Jusqu'à présent, je n'avais pas rencontré de problème en utilisant ma DLL et mon LIB dans des projets en C++. Jusqu'à aujourd'hui, où j'ai créé plein de classes dans un gros projet, et lorsque j'appelle ma fonction _InterpolationNaturalNeighbor(...) dans une des fonctions d'une de mes classes, mon programme plante à la sortie de l'appel de cette fonction : toute la mémoire a l'air en vrac, l'instance de ma classe n'existe même plus en mémoire, tout est cassé
Etant donné que la fonction en C que j'utilise dans la DLL est normalement exempte de fuites mémoires (puisque ce n'est pas moi qui l'ait codée, c'est une référence sur le web), je soupçonne que ce soit le mélange C/C++ qui soit à l'origine de ce souci... La fonction de la dll contient notamment des malloc... Ceux-ci ne risquent-ils pas, par exemple, de prendre des emplacements mémoire déjà alloués par mes classes de mon projet principal ?
Merci pour vos avis !!

 

 
		
		 
         
 

 
			
			

 
			 
   
 





 Souci en mémoire lors de l'inclusion d'une DLL en C ?
 Souci en mémoire lors de l'inclusion d'une DLL en C ?
				
 Répondre avec citation
  Répondre avec citation




 Envoyé par totoche76
 Envoyé par totoche76
					
 
						
Partager