[Suite à cette discussion]
Bonjour,

Avant de vous envoyer ce message j'ai suivi les indications, mais malheureusement cela ne fonctionne pas pour tout le monde. Je pense qu'il doit s'agir d'une erreur de saisie. Mais à force de lire et relire, on ne voit plus rien.

Voici le code:

header: my_lib.h
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
 
#ifdef MY_LIB_DEF // inside DLL
#define MY_LIB   __declspec(dllexport)
#else
#define MY_LIB   __declspec(dllimport)
#endif
 
class MY_Class {
	private:
		char* filename;
		int fd;
	public:
		    MY_Class();
		~MY_Class();
		int openMYfile(char* fname, int mode); 
		int closeMYfile();
};
 
extern "C" MY_LIB MY_Class* new_MYCLASS();
Voici le code de la dll my_lib.cpp
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
 
#define MY_LIB_DEF
#include "my_lib.h"
 
 
/* CONSTRUCTEUR */
MY_Class::MY_Class(){
 . . .
}
 
/* DESTRUCTEUR */
MY_Class::~MY_Class() {
 . . .
}
 
 
int MY_Class::openMYfile (char* fname, int mode) {
	return 0;
}
 
 
int MY_Class::closeMYfile () {
	return 0;
}
 
/* FOR USAGE VIA DLL */
MY_Class* new_MYCLASS() {
   return new MY_Class();
}
et enfin le code du prog principal (test.cpp)
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
 
#include "MY_lib.h"
 
 
int main(int argc, char* argv[]) {
	//LoadLibrary("MY_lib.dll" );  // ne fonctionne ni sans ni avec le ligne
 
	printf("INITIALISATIONS ... ");
 
	MY_Class* TheObject = ::new_MYCLASS();
	printf("    OK\n");
 
	TheObject->openMYfile("C:/Dev/cpp/test.txt", 0);
 
	TheObject->closeMYfile();
 
	return 0;
}

Lors de la compilation (avec mingw32), les erreurs suivantes sont retournées:
C:\Dev\cpp\mingw32-make.exe -f makefile
g++ -c MY_lib.cpp -o MY_lib.o
g++ -shared -o MY_lib.dll MY_lib.o
g++ -o test.exe test.cpp
C:\Users\...\Temp/cc1oVLPB.o:test.cpp: (.text+0x37): undefined reference to `_imp__new_MYCLASS'
C:\Users\...\Temp/cc1oVLPB.o:test.cpp: (.text+0x76): undefined reference to `MY_Class::openMYfile(char*, int)'
C:\Users\...\Temp/cc1oVLPB.o:test.cpp: (.text+0xb0): undefined reference to `MY_Class::closeMYfile()'
collect2: ld returned 1 exit status
mingw32-make.exe: *** [TEST] Error 1
Je suis sec. Merci pour votre aide...