Adresse absolu de la dll dans un Webservice
Bonjour,
J'utilise IIS pour héberger un webservice.
Ma dll doit appeler un executable via un createProcess. Ma .dll et mon .exe sont dans le même dossier "C:\Inetpub\wwwroot\ErenetGateway\bin".
Mon soucis est que, le répertoire courant est celui de IIS, à savoir "C:\WINDOWS\system32\inetsrv". Afin de retrouver le chemin de mon executable, j'ai donc écrit ceci :
CString ls_module_name ;
CString ls_commande_line ;
// Récupération du chemin du module
DWORD taille = 1024 ;
char lsz_chemin[1024] ;
GetModuleFileName( AfxGetInstanceHandle(), lsz_chemin, taille ) ;
CString ls_chemin( lsz_chemin ) ;
ls_chemin = ls_chemin.Mid( 0, ls_chemin.ReverseFind('\\') );
// nom de l'exécutable
ls_module_name = "ErenetClientGetEtat.exe" ;
// command line
ls_commande_line.Format( "%s\\%s %s %u %d URL=%s", ls_chemin, ls_module_name, ls_session_id, this->ihwnd_requestor, this->il_msg_requestor, this->is_url ) ;
// exécution
if ( !CreateProcess(
NULL, // Module name.
( char * ) LPCTSTR( ls_commande_line ) , // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&astr_process.si, // Pointer to STARTUPINFO structure.
&astr_process.pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
// erreur
lb_ok = false ;
as_lib_erreur.Format( "Impossible de lancer le processus de surveillance : erreur %d", GetLastError() ) ;
}
Mais celà ne fonctionne pas non plus puisque la encore, j'obtient le chemin de l'executable de IIS.
Y a-t-il un moyen de retrouver l'adresse de ma dll ?
Merci pour votre aide :D