Bonjour,
J'ai cherch� pas mal sur le net mais je n'ai pas trouv� de r�elles r�ponses � mon probl�me.
Je vous l'expose:
J'ai un service windows qui tourne et qui lance un ex�cutable �crit en C#.
Cet ex�cutable utilise des librairies d�velopp�es en c++ non manag�.
L'ensemble tourne plut�t correctement � une exception pr�s:
Je passe en argument un string � une fonction c++ depuis une fonction c#.
C�t� c# j'ai:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 [DllImport("DxCNT.dll", CallingConvention = CallingConvention.Cdecl)] private static extern int DxCNTstartup( [MarshalAs(UnmanagedType.LPCStr)] string configFile);
c�t� c++ j'ai:
J'explique maintenant ce qu'il se passe et le r�sultat de mes recherches.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 int DxCNTstartup(char* configfile) { ... }
Mon probl�me est que lorsque le programme c# est appel� depuis un service windows la valeur de configfile, lors de l'appel a DxCNTstartup, est NULL alors que dans les logs le string n'est pas null cot� c#.
J'ai essay� plusieurs choses:
- En debug dans Visual Studio 2005: pas de probl�me configfile n'est pas null.
- En release en appelant le programme "� la main", pas de probl�me configfile n'est pas null.
J'en viens � penser qu'il existe peut-�tre des restrictions sur l'interoperabilit� lorsqu'on appel le programme depuis un service. J'ai essay� de lancer le service avec comme utilisateur celui de la machine (comme si je le lan�ais � la main) mais le probl�me persiste.
Je n'ai plus vraiment d'id�e pour r�gler le soucis.
Merci d'avance si vous en avez![]()
Partager