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# Discussion :

Prolème d'initialisation d'une dll qui lance un moteur Java


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Prolème d'initialisation d'une dll qui lance un moteur Java
    Bonjour,

    Je vous explique mon problème :
    J'ai une application écrite en C++/MFC qui lance une application développée en C#.
    L'application écrite en C# fait un appel à une fonction d'une dll C#(sur laquelle je n'ai pas la main) qui initialise une jvm.

    Hors il arrive lors de l'initialisation que j'ai un plantage "Sytem.OutOfMemoryException : Mémoire insuffisante pour continuer l'exécution du programme".

    J'ai déja essayé d'allouer de la mémoire (via un GlobalAlloc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HGLOBAL TestMemoire = GlobalAlloc(GHND, (int)((((256 + 64) * 1.2) + 192) * 1024 * 1024));
    au lancement de l'application (InitInstance) et de la libérer par la suite juste avant de faire appel à la fonction qui lance la Jvm.
    Cependant, je n'arrive pas à récupérer l'adresse mémoire et lorsque je fais un appel à GetLastError(), il me dit que tout va bien(0).

    Par ailleurs, j'ai contacté la société propriétaire de la dll qui lance la jvm. Ils m'ont développé une fonction qui permet de manipuler l'initialisation de leur jvm via des variables(Xms, Xmx , PermSize, MaxPermSize) et m'ont annoncé que mis à part cela il ne pouvait rien faire de plus.

    Je suis un peu perdu et en manque de solution.
    Il me faudrait une aide svp. Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    et si on oublie ton soft C++ et que tu lance directement l'appli c#.
    Elle plante aussi?

    Si tu fais un exe de test en c# qui appelle juste la methode de la DLL, tu as le meme problème?

    Pour en revenir au C++ ton appli MFC, elle est native ou managée?

  3. #3
    Membre actif
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de Projet
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 113
    Points : 260
    Points
    260
    Par défaut
    Bonsoir,

    Une autre piste : 32 vs 64 bits. Si tu es sur une machine 32 bits, il ne devrait pas y avoir de problème. Par contre, si tu es sur un os 64 bits, alors il faut faire attention : une appli 64 bits ne peut charger que des dll 64 bits. Et si la JVM que tu as installée est en 32 bits, tu risques d'avoir des problèmes.

    Le problème sera également présent si ton appli est en 32 bits et que ta JVM est en 64 bits.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Merci de m'avoir répondu.

    ElTotor
    Toutes les applications ont été compilées en 32 bits

    giova_fr
    L'application en C#, toute seule, fonctionne très bien et arrive à faire initialiser le moteur java via l'appel à la dll C#.
    L'appli MFC est native.

    Je suis en train de voir si finalement je ne vais pas créer un service qui s'occupera de l'initialisation de l'api(qui lance la jvm).

    Bonne journée.

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/10/2008, 10h53
  2. Initialisation d'une DLL non mfc
    Par miwarrior dans le forum MFC
    Réponses: 4
    Dernier message: 14/05/2008, 01h07
  3. test unitaire d'une action qui lance un thread
    Par jawed84 dans le forum Struts 1
    Réponses: 1
    Dernier message: 29/02/2008, 17h12
  4. Réponses: 2
    Dernier message: 13/06/2006, 20h47
  5. Une DLL qui existe mais VB ne la trouve pas...
    Par Lawari dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/12/2005, 23h16

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