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

Visual C++ Discussion :

AccessViolation lors d'appel de fonction retournant un tableau de string


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Novembre 2005
    Messages
    110
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par d�faut AccessViolation lors d'appel de fonction retournant un tableau de string
    Bonjour tout le monde.

    Voila je suis dans un contexte c++/cli, je veux faire pass� un tableau de string de la couche "native" � la couche "cli". pour ca, dans une classe de la couche native, j'ai une m�thode de type string* getUnTableaudeString(), le tableau en question, est d�clar� en variable membre (ou d'instance).

    Lorsque j'appel cette m�thode a partir d'une classe de la couche cli, je ne peu rien faire avec, sous peine d'avoir un accessViolation exception.

    bref je me demande comment dois-je pass� un tableau de string, pour pouvoir l'utilis� comme bon me semble � partir de n'importe quelle m�thode qui appel ce tableau.???

    je vois ptete plusieurs solution, mais je veux avoir d'autre avis avant de me lancer

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Montre un peu plus de ton code...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirm�
    Inscrit en
    Novembre 2005
    Messages
    110
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par d�faut
    bon j'ai un peu changer le truc vu ke ca fonctionnait pas avec un tableau de string j'ai utilis� un vector. Mais euuh ca change vraiment rien


    donc j'ai une class Wrapper qui a une methode getMachines que voici.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    array<String^>^ CliWrapperObservability::getMachines(void)
    	{
    		Console::WriteLine("WRAPPER OBS TAILLE MACHINEs "+ptrObs->getNbMachines());
    		vector<string> lMachines = vector<string>();
     
    /*C'est ici qu'on appel le natif et que ca foire surment*/
    		ptrObs->getMachines(lMachines);
     
    		array<String^>^tab = gcnew array<String^>(10);
    		for(int i = 0;i<ptrObs->getNbMachines();i++)
    		{
    			tab[i]=Conversion::cppStr2NetStr(lMachines.at(i));
    		}
    		return tab;
    dans mon projet natif, j'ai un class avec la methode appel� ci au dessus => getMachine()

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    vector<string>& Observability::getMachines(vector<string>& aVec)
    {
    	vector<string> v = vector<string>();
    //PLUS PRECISEMENT C EST AU PREMIER PUSHBACK QUE CA FOIRE
    	aVec.push_back("MACH_1");
    	aVec.push_back("MACH_2");
    	aVec.push_back("MACH_3");
    	aVec.push_back("MACH_4");
    	aVec.push_back("MACH_5");
    	aVec.push_back("MACH_6");
    	aVec.push_back("MACH_7");
    	aVec.push_back("MACH_8");
    	aVec.push_back("MACH_9");
    	aVec.push_back("MACH_10");
    	return aVec;
    }
    j'ai essay� de 2 mani�res, la premiere c'est le natif qui cr�e le vector et le renvoi au wrapper, et la seconde que j'affiche ici, le wrapper qui cr�e le vector et envoi l'adresse au natif. mais a chaque fois j'ai des crash de mon application

  4. #4
    Membre confirm�
    Inscrit en
    Novembre 2005
    Messages
    110
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par d�faut
    je comprend vraiment pas, j'ai creer une nouvelle fonction qui est une copie de la fonction qui se trouve dans le projet natif, mais celle-ci je l'ai tap� dans la classe du projet c++/cli. et la ca fonctionne.. exactement le m�me code

    y aurait un probleme pour envoy� des adresses vers d'autre projet??? ou c'est moi qui m'y pren mal

    EDIT :

    En fait j'ai ptete une id�e, mais je sais pas si ca peut provenir de l�.. donc est-ce que c'est possible qu'une variable d�clar� dans une m�thode ne peut �tre accessible en dehors de la classe ou elle a �t� d�clarer?

    EDIT2 :
    Bon ba non c pas ca, par d�sespoire j'ai m�me mis le vecteur en public, mais rien a faire

  5. #5
    Membre confirm�
    Inscrit en
    Novembre 2005
    Messages
    110
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par d�faut
    Bon voila j'ai enfin trouv� la solution

    faut utilis� des types de base, donc char** youhou

    merci a tous

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [D�butant] Probl�me lors d'appel de fonction dans page de d�marrage.
    Par Vidou12 dans le forum VB.NET
    R�ponses: 46
    Dernier message: 20/01/2015, 14h40
  2. PB avec fonction retournant un tableau
    Par T-B dans le forum Langage
    R�ponses: 2
    Dernier message: 27/01/2006, 22h01
  3. R�ponses: 6
    Dernier message: 20/01/2006, 19h28
  4. fonction retournant un tableau
    Par Jero13 dans le forum C
    R�ponses: 7
    Dernier message: 22/11/2005, 11h14
  5. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum G�n�ral Python
    R�ponses: 1
    Dernier message: 20/07/2004, 00h46

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