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

VBScript Discussion :

Script qui provoque l'erreur "R6025 – pure virtual function call"


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Bidulbuk
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 54
    Par défaut Script qui provoque l'erreur "R6025 – pure virtual function call"
    Bonjour tout le monde,

    J'utilise depuis peu des scripts VBS dans une application spécifique à mon travail.

    Je lance le script très régulièrement (si j'ai besoin de faire 15 fois la tâche, je le lance 15 fois - je veux dire, il ne fonctionne pas en boucle) et j'ai, de façon aléatoire (parfois jamais, parfois régulièrement, parfois après plusieurs traitement, parfois dès le 1er lancement), l'erreur suivante qui m'oblige à fermer puis redémarrer l'application :
    Microsoft Visual C++ Runtime Library
    Runtime Error !
    Program c:\[mon appli]
    R6025
    – pure virtual function call
    J'ai regardé un peu sur le net et sur le site de Windows et ça semble venir d'incompatibilités avec des trucs tiers ou bien de bug intrinsèque au programme (je n'ai pas de login "admin" sur l'ordi du taf, donc je ne peux rien modifier du registre ni installer de choses nouvelles - ceci dit, on m'a déjà réinstallé l'application sans que ça change quelque chose) mais je voulais quand même poser la question ici : je n'ai cette erreur que lorsque je lance mon script, aussi je me demandais si je ne pouvais pas corriger quelque chose dans le script pour ne plus l'avoir - vider des variables avant de le relancer, ou bien ce genre de chose ? Je me disais que ça pouvait être un problème de mémoire (l'erreur survient de façon aléatoire, c'est ça que je ne comprends pas trop).

    Merci de vos retours !

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Dans ton erreur
    Microsoft Visual C++ Runtime Library
    donc tu utilises un programme en langage XXX qui lance un autre script lui en langage VBScript?
    De toute façon il serait utile d'avoir la ligne de code du programme langage XXX et l’essentiel du code VBScript pour essayer de résoudre ton problème.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti Avatar de Bidulbuk
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 54
    Par défaut
    D'ac', donc voilà l'erreur complète (je n'ai pas d'accès au code de l'application par contre) :
    Microsoft Visual C++ Runtime Library
    Runtime Error !
    Program c:\oclcpica\WinIBW30\WinIBW30.exe
    R6025
    – pure virtual function call
    Et mon script (lancé à l'intérieur du programme effectivement) :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    application.activeWindow.command "mod", false 'on met directement la fenêtre en mode édition
    application.activeWindow.title.startOfBuffer 'on place le curseur au début de la page
     
    Dim cote
    Dim CB
    Dim Section
    Dim Consult
    Dim Sequence
    Dim cherche,cherchepn, result
    Dim Ex,a
    Dim PPN
    Dim recupRCR
     
    'On récupère le RCR de la bibliothèque */
    recupRCR = application.activeWindow.variable("P3GUL")
     
    '/ Partie permettant de détecter le numéro d'exemplaire à ajouter ***/
    Ex = "e01"
    a = 1
    cherche = application.activeWindow.title.find(Ex, true, false, true)
    do while cherche = true
    a = a + 1
    Ex = "e" & Right("00" & a, 2)
    cherche = application.activeWindow.title.find(Ex, true, false, true)
    loop
    application.activeWindow.title.endOfBuffer
     
    '/* Partie permettant de remplir les champs propres de l'exemplaire **/
    cote = inputbox("Quelle cote ?",, "")
    do while len(CB) <> 10 and vartype(CB) <> 2 'Partie permettant de contrôler le code-barre (10 caractères en chiffres)
    CB = inputbox("Quel code-barre ?")
    loop
    Section = inputbox("Quelle section ?",,"")
    'Sequence = inputbox("Quelle séquence ?")
    Consult = msgbox("L'ouvrage est consultable sur place uniquement ?", vbyesno + vbquestion, "Statut de la consultation")
     
    application.activeWindow.title.insertText Ex & " $bx" & vblf & "930"
    application.activeWindow.title.insertText Ex & " $bx" & vblf & "930 ##$b" & rtrim(recupRCR) & "$c" & Ucase(Section) & "$a" & cote & "$ju" & vblf 'disponible pour le PEB
    application.activeWindow.title.insertText "915 ##$b" & CB & vblf
    if Consult = 6 then 'Consultable sur place uniquement
    application.activeWindow.title.insertText"917 ##$axxbx" & vblf
    else
    application.activeWindow.title.insertText"917 ##$axxax" & vblf 'Empruntable
    end if
    application.activeWindow.title.insertText"999 ##$cj"
     
    '/ Partie permettant de valider directement (sinon l'EPN n'est pas créé) */
    application.activeWindow.simulateIBWKey "FR"
     
    '/ Partie permettant de copier l'EPN de l'exemplaire */
    application.activeWindow.command "mod", false
    a = a-1
    application.activeWindow.clipboard = application.activeWindow.title.findTag("A99", a, false)
    application.activeWindow.simulateIBWKey "FE" 'Simuler avec cette touche - echap - permet apriori de réduire l'erreur WinIBW
    Merci !

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,

    la doc scripting de ton programme précise ceci (page 59) :
    Short-circuit evaluation is very useful. On one hand it is faster (because it does not perform
    superfluous evaluation) on the other hand it is practical. Have a look at the following code snippet:

    if (application.activeWindow && application.activeWindow.title
    && application.activeWindow.title.canPaste()) {
    application.activeWindow.title.paste();
    }
    This code works perfectly well in JavaScript. If you don’t have an activeWindow, the evaluation
    stops. If you have an activeWindow, but no title, the evaluation stops; in this case it is not tried
    to access the canPaste() function of the title object.
    If you try to do the same in VBScript and you do not have an activeWindow or a title object,
    you will receive a runtime error, because the VBScript engine will try to access objects, which are
    null.
    en clair, il est possible que dans certaines circonstances ton script soit appelé alors que l'activewindow ou l'activewindow.title n'est pas (encore) dispo
    pour le vérifier je tenterais en tout début de script un truc comme ça :
    (sans garantie )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    On Error Resume Next
    If IsObject(application.activeWindow) = False Then MsgBox "Pas bon du tout..."
    On Error GoTo 0
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Membre averti Avatar de Bidulbuk
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 54
    Par défaut
    Super, ça fait déjà une piste, merci !
    (s'il y en a d'autres, je prends aussi)

    J'avais vu cette doc mais je n'ai jamais pensé à y rechercher textuellement le "runtime error"

    Je vais tester et je vous tiendrais au courant (par contre là je suis dans une période où mon script ne va pas tellement me servir). Le doute que j'ai c'est que ma procédure est toujours la même et qu'il n'y a pas de raison que j'ai une fois une activewindow et une autre fois pas, mais je vais rajouter le bout de code !

    PS : j'ai pu faire un test en lançant 5-6 fois le script, je n'ai pas eu d'erreur, je ne sais pas si c'est une coïncidence ou si l'erreur est fixée.

  6. #6
    Membre averti Avatar de Bidulbuk
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 54
    Par défaut
    Je viens de retester le script et, malheureusement, l'erreur est de nouveau apparue malgré l'ajout du bout de code :'(

Discussions similaires

  1. [PHP 5.4] DateTime qui provoque une erreur 500 (incompréhensible)
    Par jb_gfx dans le forum Langage
    Réponses: 5
    Dernier message: 02/06/2013, 00h34
  2. Un script qui renvoie des erreurs lorsqu'en tâche planifiée
    Par annedeblois dans le forum Sécurité
    Réponses: 0
    Dernier message: 07/10/2009, 14h31
  3. "Pure virtual function called" et destructeur virtuel
    Par Seb des Monts dans le forum C++
    Réponses: 9
    Dernier message: 10/09/2009, 16h54
  4. script qui génère une Erreur 400
    Par faluorn dans le forum Web
    Réponses: 2
    Dernier message: 18/04/2008, 09h04
  5. Réponses: 2
    Dernier message: 18/03/2008, 13h58

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