IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

[C#/C++/Services] Problème: Passage d'une string a une fonction c++.


Sujet :

C++/CLI

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [C#/C++/Services] Problème: Passage d'une string a une fonction c++.
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int DxCNTstartup(char* configfile)
    {
    ...
    }
    J'explique maintenant ce qu'il se passe et le résultat de mes recherches.

    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

  2. #2
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    et si tu lancel appli c# sans service c bon ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. [C#] Comment Splitter une string avec une string ?
    Par ADJ Design dans le forum C#
    Réponses: 12
    Dernier message: 27/07/2006, 12h10
  5. Conseil sur l'extraction d'une string dans une string
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 02/06/2006, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo