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

WinDev Discussion :

Fonction Transfert() sous Windows 10 [WD23]


Sujet :

WinDev

  1. #1
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut Fonction Transfert() sous Windows 10
    Bonjour,

    Il semblerait que le code suivant ne fonctionne plus sous Windows 10 alors qu'il fonctionnait encore sous Windows 7:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableauVide est un tableau de 1000 entiers  
    Transfert(&TabEnr,&TableauVide,4000)
    TabEnr est un tableau de 1000 entiers global au projet.
    Ce code est appelé dans une procédure locale à la fenêtre

    Le message d'erreur est le suivant:

    Vous avez appelé la fonction Transfert.
    L'adresse destination fournie (0x00000000 sur 4000 octets) est invalide. Elle ne représente pas une adresse mémoire valide en écriture.

    Avez-vous eu le même problème?

    Merci.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Bonjour,

    Je viens de faire un test ici et tout fonctionne en Windows 10. Tu as tout simplement inversé le tableau source et destination. Tu devrais avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Transfert(&TableauVide,&TabEnr,4000)
    Page d'aide https://doc.pcsoft.fr/fr-FR/?3014015&name=Transfert
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  3. #3
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Merci d'avoir testé.

    Ce n'est pas inversé, c'est bien TabEnr que je veux vider, à l'aide de TableauVide.
    (le code d'origine est très vieux...)
    En Win7 ça marche. En Win10, il me dit que l'adresse de de destination (&TabEnr) est invalide (0X00000000)

    J'ai remplacé par VariableRAZ(TabEnr), je verrai si ça marche...

  4. #4
    Membre habitué Avatar de medbouh
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 171
    Points
    171
    Par défaut
    Salut;

    Peux-tu mettre la stack de l'erreur au complet?

    Les paramètres sont inverser, je ne sais pas si c'est important :
    Je viens de faire un test ici et tout fonctionne en Windows 10. Tu as tout simplement inversé le tableau source et destination. Tu devrais avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Transfert(&TableauVide,&TabEnr,4000)
    Code original :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TableauVide est un tableau de 1000 entiers  
    Transfert(&TabEnr,&TableauVide,4000)
    avant de poste pensez à c'est plus constructif.

    n'oublie pas d'utilise le bouton

    si vous trouvez la solution vous meme n'oublie pas de l'indiquer.

  5. #5
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Bonjour,

    Comme je disais à PhilouZ, les paramètres sont OK.
    Ca fonctionne bien en Win7

    La solution est d'utiliser VariableRAZ(TabEnr), donc je mets en résolu.

    Mais je ne sais pas pourquoi ça plante avec Win10.
    Peut-être à cause du fait que la proc est locale et le tableau TabEnr global au projet...

    Pour info, l'erreur complète, comme demandé:

    Erreur à la ligne 7 du traitement Procédure locale MAJ_Vue.
    Vous avez appelé la fonction Transfert.
    L'adresse destination fournie (0x00000000 sur 4000 octets) est invalide. Elle ne représente pas une adresse mémoire valide en écriture.

    ----- Informations techniques -----

    Projet : GALEM

    Appel WL :
    Traitement de 'Procédure locale MAJ_Vue' (planning2.PROCEDURE.MAJ_Vue), ligne 7, thread 0
    Fonction 'Transfert', syntaxe 0

    Que s'est-il passé ?
    L'adresse destination fournie (0x00000000 sur 4000 octets) est invalide. Elle ne représente pas une adresse mémoire valide en écriture.

    Code erreur : 2703
    Niveau : erreur fatale

    Dump de l'erreur du module 'wd230vm.dll' (23.0.370.1).
    Identifiant des informations détaillées (.err) : 2703
    Informations de débogage :
    Fonction (0,42)
    Informations supplémentaires :
    EIT_PILEWL :
    Procédure locale MAJ_Vue (planning2.PROCEDURE.MAJ_Vue), ligne 7
    Clic sur BT_ACT (planning2.BT_ACT), ligne 3
    Modification de la taille de planning2 (planning2), ligne 1
    Déclarations globales de planning2 (planning2), ligne 1
    EIT_DATEHEURE : 17/12/2018 11:08:02
    EIT_TYPE_WDFILE : <2>
    EIT_IDCODE : <458752>

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    C'est quand même très surprenant que l'adresse affichée pour TabEnr, ce soit 0x00000000.

    Tu otiens quoi si tu fais info(&TabEnr) juste avant la fonction Transfert() ?

    Pour vérifier une 2ème chose, crée un autre tableau TabEnr2 ( variable globale , comme le premier), et affiche également l'adresse de TabEnr2. Chez moi, j'obtiens 2 adresses différentes pour TabEnr et TabEnr2, avec un écart de 4000 environ, ce qui est cohérent.
    Chez toi, s'il affiche 0 comme adresse pour Tabenr, et un nombre 'normal' pour Tabenr2, ça veut dire que quelque part dans le projet, à un autre endroit que celui dont on parle, tu modifies l'atresse de Tabenr... et ça, c'est très dangereux.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction isspace sous Windows et É
    Par troumad dans le forum C
    Réponses: 3
    Dernier message: 01/04/2011, 11h42
  2. Home server (+ fonction multimedia) sous Windows
    Par adiekmann dans le forum Windows
    Réponses: 0
    Dernier message: 04/04/2009, 14h02
  3. fonction kbhit sous windows
    Par blabla06 dans le forum Windows
    Réponses: 4
    Dernier message: 03/06/2008, 16h30
  4. Fonction crypt sous Windows? HELP
    Par carter15_2001 dans le forum C
    Réponses: 6
    Dernier message: 16/12/2005, 18h48
  5. Fonction sleep sous Windows
    Par Veve44 dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 18h50

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