probleme appel de fonction dans une DLL
	
	
		Bonjour,
Je souhaite charger un DLL dans mon programme et appeller une fonction contenu dans celle-ci.
Pour l'instant, je fais ça :
	Code:
	
| 12
 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
 
 | 	AnsiString texte;
	TPath path;
 
	texte = "C:\\PJ_Octopus_V1.0\\Source\\bin\\plugins\\PLG_SimplePlugin\\Technics\\TCH_Brillance\\TCH_Brillance.dll";
 
	//texte = "C:\\msimusic.dll";
	path = texte;
	cout << path.toString().c_str() << endl; 
 
	if(path.isValidPath())
	{
		//chargement du plugin
		HINSTANCE hDLL;
		DLL_TECHNIC_FUNC_TYPE callFunction;	  	
		hDLL = LoadLibrary(path.toString().c_str());  
 
		if(hDLL == NULL)
		{     
			texte = "hDLL: ";
			texte += (int)hDLL;
			cout << texte.c_str() << endl; 
			texte = "TObjetRunImpl::loadProcess-> erreur loadLibrary";
			cout << texte.c_str() << endl; 
			HRESULT reponse = GetLastError(); 
			texte = "Error: ";
			texte += reponse;
			cout << texte.c_str() << endl; 
			analyseReponse(reponse, "loadLibrary");
		}
		else
		{  
			callFunction = (DLL_TECHNIC_FUNC_TYPE) GetProcAddress(hDLL, DLL_TECHNIC_FUNC_NAME.c_str());
			//callFunction = (void *) GetProcAddress(hDLL, DLL_TECHNIC_FUNC_NAME.c_str());
			if(callFunction == NULL)
			{         
				texte = "TObjetRunImpl::loadProcess-> "+ERROR_TECHNIC_FUNCTION;
				cout << texte.c_str() << endl; 
				FreeLibrary(hDLL);
			}
			else
			{   
				ITechnic *technic = callFunction();
			}
		}
	}
	else
	{
		texte = "TObjetRunImpl::loadProcess-> "+ERROR_TECHNIC_FILE;
		cout << texte.c_str() << endl; 
	}	
 
    system("PAUSE");
 
	return 0; | 
 Le loadLibrary passe bien et me renvoi une DLL.
Le GetProcAddress à l'air de trouver la fonction puisque il me renvoi un pointeur non NULL.
Par contre, quand j'essaie d'exécuter la fonction, j'ai une violation d'accès.
J'ai essayer le mode debug pas-à-pas en rentrant dans la fonction callFunction, mais dès que j'essaie de rentrer dedans, j'ai violation d'accès.
Une idée?