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

VB.NET Discussion :

AccessViolationExeption sur Windows 7 et pas sur XP


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut AccessViolationExeption sur Windows 7 et pas sur XP
    Bonjour,
    Je dois utiliser la fonction d'une dll en c ou c++. Je n'ai pas la main sur cette dll.
    Voici la signature de la fonction(issue du .h) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    long __cdecl ApintUsb(unsigned long ProductNumber, 
    unsigned long ChannelNumber, char Function[], double In1, double In2, 
    double In3, double In4, double In5, double In6, short int *Out1, 
    short int *Out2, short int *Out3, short int *Out4, short int *Out5, 
    short int *Out6, unsigned short int Array[], long *len);
    Et voici mon code VB.NET pour la déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Runtime.InteropServices.DllImport("ap_int_usb", callingconvention:=Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint:="ApintUsb")> _
    Private Shared Function ApintUsb _
            (ByVal ProductNumber As UInt32, ByVal ChannelNumber As UInt32, ByVal FunctionName As String, _
            ByVal In1 As Double, ByVal In2 As Double, ByVal In3 As Double, ByVal In4 As Double, ByVal In5 As Double, ByVal In6 As Double, _
            ByRef Out1 As Int16, ByRef Out2 As Int16, ByRef Out3 As Int16, ByRef Out4 As Int16, ByRef Out5 As Int16, ByRef Out6 As Int16, _
            ByVal Graphe As UInt16(), ByRef len As Int32) As Boolean
        End Function
    Et voici un appelle de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim temp As UInt16() = {0, 0}
    Dim cd As Boolean = ApintUsb(1, 0, "Init usb", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, temp, 0)
    J'ai fait l'application sous Visual Studio 2005(.NET 2)/XP, Visual Studio 2012(.NET 2, 3 et 4)/W7 et à chaque fois la même constatation l'application fonctionne sous XP et lève une AccessViolationExeption sous W7. Une application que je n'ai pas fait et qui utilise la même DLL fonctionne sous W7. donc le problème semble venir de mon application et non de la DLL.

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    essayez de compiler votre application en 32bits
    propriété du projet / compiler / options avancées de compilation / remplacer AnyCpu par x86
    (c'est moins simple sur vs express je crois)

    en général l'appel d'une dll 32bits depuis un exe exécuté en 64bits plante, AnyCpu veut dire sélection automatique au moment de l'exécution, x86 sur un os 32bits et x64 sur un os 64bits
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Désolé j'avais oublié de préciser que les deux systèmes(XP et 7) son en 32bit. Et dans le doute j'ai fais un test mais j'ai toujour la même erreur.

Discussions similaires

  1. Service windows ne démarre pas sur Windows 7
    Par enboule dans le forum Développement Windows
    Réponses: 2
    Dernier message: 17/12/2014, 14h11
  2. window.location.href.replace sur ie6 ne fonctionne pas
    Par taka10 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/02/2009, 13h52
  3. Des cd de Windows qui boot pas sur mon pc
    Par dot-_-net dans le forum Windows XP
    Réponses: 11
    Dernier message: 02/01/2009, 18h20
  4. InternetOpenUrl ne marche pas sur windows mobile
    Par qdaemon_fr dans le forum C++
    Réponses: 3
    Dernier message: 14/02/2008, 11h58
  5. Ma base ne marche pas sur windows 98 bilingue
    Par karmehdi dans le forum Access
    Réponses: 6
    Dernier message: 12/09/2006, 15h17

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