OVH Cloud OVH Cloud

DLL recursive

3 réponses
Avatar
JB
Bonjour ,

Je cherche a creer une DLL ( ici "Compteur.dll" ) avec un process sans fin
qui ne se terminerait qu'en tuant le thread.
Voici mon prototype, mais malheureusement celui ci ne fonctionne pas ,
quelqu'un a t il une idee ?


int __stdcall DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID
lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:

hinstDLL = LoadLibrary("Compteur.dll"); // je recharge la DLL

if (InitCVIRTE (hinstDLL, 0, 0) == 0)
return 0;
break;
case DLL_PROCESS_DETACH:

if (!CVIRTEHasBeenDetached ())
CloseCVIRTE ();
FreeLibrary(hinstDLL); // je libere la memoire
break;
}

// Return 1 to indicate successful initialization
return 1;
}
void __stdcall Fonction1(void)
{

}

void __stdcall Fonction2 (void)

{

}

Merci pour vos reponses

3 réponses

Avatar
Fabien LE LEZ
On Fri, 11 Feb 2005 16:29:37 +0100, "JB" :

Je cherche a creer une DLL


fr.comp.os.ms-windows.programmation

Avatar
dark poulpo
explique deja pourquoi tu veux faire ca? ya forcement un autre moyen plus
propre


--
-----
http://dark.freezee.org/
- Dark Update v1.1
- Dark Emule v0.44b r4
- Dark 3D-X (le desktop 3d pour windows) (----------> v0.7 beta dispo)
Avatar
JB
Ok, je vais aller un peu plus loin dans mes explications :

1) J'utilise Labwindows CVI et le sdk Windows fourni.
2) Le but est de creer un compteur ( Timer ) avec une fonction pour
l'initialiser et une autre pour me retourner le temps ecoulé entre l'appel 1
et l'appel 2.
3) Cette Dll fonctionne mais comme chaque appel de cette DLL initialise le
Timer elle me retourne systematiquement 0.
4) D'ou l'idee de laisser le process tourner jusqu'a l'appel de la 2e
fonction comprenant le FreeLibrary.

J'espere avoir été plus precis.

Voici la fonction 1 et 2 :

void __stdcall DLLTimeOn (void)
{
// test
gTempsTest = 0.0;
// Commence le comptage
gTempsTest = Timer();

}

/*---------------------------------------------------------------------------*/
/* This sample exported function will be available to callers of our DLL.
*/
/*---------------------------------------------------------------------------*/
double __stdcall DLLTimeOff ()
{

double secondes;

// Temps total du passage
secondes = Timer() - gTempsTest;

return secondes;

}



"dark poulpo" a écrit dans le message de news:
420cdeeb$0$6601$
explique deja pourquoi tu veux faire ca? ya forcement un autre moyen plus
propre


--
-----
http://dark.freezee.org/
- Dark Update v1.1
- Dark Emule v0.44b r4
- Dark 3D-X (le desktop 3d pour windows) (----------> v0.7 beta dispo)