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 :

System.AccessViolationException a l'appel d'une dll native


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    156
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 156
    Par d�faut System.AccessViolationException a l'appel d'une dll native
    Salut, j'ai un binding de la dll native openal : Tao.Openal.

    Je veux appeler la fonction Alc.alcGetString (IntPtr device, Int32 attribut) qui permet de r�cuperer une lsite de device disponible, en passant un pointeur null au premier argument.

    Comme ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    string listDevice =Alc.alcGetString( IntPtr.Zero, Alc.ALC_DEVICE_SPECIFIER);
    En appelant la fonction de cette fa�on j'ai le droit � une ViolationException :
    An attempt to read or write memory protected. This indicates that another often memory is damaged. At Tao.OpenAl.Alc.alcGetString (IntPtr device, Int32 attribut
    Voila si vous voulez des informations compl�mentaires: demandez, je vois pas trop d'ou peut venir le bug.

  2. #2
    Expert confirm�
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par d�faut
    tu as v�rifi� la mani�re dont la fonction que tu app�les est d�clar�e, surtout avec les conventions d'appelle ? ( StdCall, CDecl, ... )

  3. #3
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    et tu es sur que lui passer un pointeur null c'est coh�rent ?

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    156
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 156
    Par d�faut
    Alors bonjour a tous et bonne ann�e 2008.

    J'ai suivi le conseil de smyley et j'ai jet� un oeil au source, ce qui a �t� tr�s b�n�fique puisque j'a id�couvert l'existence d'une fonction qui me pr�mache le travail.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Alc.alcGetStringv(IntPtr.Zero, Alc.ALC_DEVICE_SPECIFIER);
    Cette fonction renvoie sous forme de tableau la liste des d�vices avaibles, au lieu d'un seul string. Et cette fonction fonctionne parfaitement.

    Ce qui est bizzare c'est que la fonction Alc.alcGetStringv() qui ne fait pas partie de la dll native appelle une fonction tr�s proche de alcGetString qui est alcGetStringInternal � la seul diff�rence que alcGetStringInternal retourne un IntPtr au lieu d'un string (une string?).Ensuite en interne elle parle le pointeur et renvoie un tableau de strinf contenant une liste de device.

    Je vous passe le code http://pastebin.com/m2db92556

    Bref, je sais pas trop comment expliquer �a.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    156
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 156

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

Discussions similaires

  1. [D�butant] Appel d'une dll native dans un projet VB.Net
    Par 3aychoucha dans le forum VB.NET
    R�ponses: 0
    Dernier message: 25/04/2012, 15h24
  2. R�ponses: 4
    Dernier message: 11/10/2011, 14h34
  3. PB appel d'une DLL
    Par maveric dans le forum VC++ .NET
    R�ponses: 2
    Dernier message: 10/08/2006, 19h17
  4. Appel d'une Dll dans le dossier courant.
    Par m�phistopheles dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 16/07/2006, 21h00
  5. Appel d'une dll (c++) dans un programme c++
    Par cout dans le forum C++
    R�ponses: 2
    Dernier message: 01/06/2006, 14h52

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