none
Violation d'accès à l'exécution d'un projet console dans visual studio, mais pas en dehors. RRS feed

  • Discussion générale

  • Bonjour à tous,

    Je sollicite de l'aide car je suis actuellement confronté à une Access Violation Exception lors de l’exécution de mon code.

    Le programme se lance sans problème dans les cas suivants :

    • En dehors de Visual Studio
    • Dans Visual Studio via "Executer sans débogage"
    • Dans Visual Studio via "Attacher au processus..."

    En revanche si je le lance via Visual Studio (Démarrer), j'obtiens systématiquement l'Access Violation Exception, que ce soit en config "Debug" ou "Release".

    Je suis sous VS2012 Ultimate Version 11.0.61030.00 Update 4, Windows 7 64 bits.

    Il s'agit d'un projet console de test assez simple avec P/Invoke sur une dll Borland C++. La plateforme cible du projet est x86, comme la dll.

    Voici le code incriminé:

    La méthode importée dans la classe du Wrapper :

    class Wrapper
    {      
            private const string dllName = @"./link.dll";
    
            [DllImport(dllName)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool Init(byte ucMode);
    }

    Appel de la méthode :

    Wrapper.Init(mode)

    Comment cela peut-t'il planter dans l'IDE mais pas en stand alone ?

    De même la dll est actuellement utilisée dans une appli C++, sans ce problème à l'init.

    La signature de la méthode concorde, tout comme la convention d'appel (__stdcall). Je les ai d'ailleurs toutes testées (CDecl, WinAPI etc.).

    Je n'ai pas les sources de la dll.

    Merci d'avance!

    EDIT : Le fait de lancer VS2012 en administrateur ne change rien.



    • Modifié DMED.old mercredi 13 août 2014 13:14 Update
    • Type modifié Aurel Bera lundi 18 août 2014 07:41
    mercredi 13 août 2014 12:56

Toutes les réponses