Création d'une DLL s'exécutant sans interrompre le script ? [Résolu]

Nymouas 34 Messages postés samedi 21 août 2004Date d'inscription 20 mai 2005 Dernière intervention - 18 sept. 2004 à 18:24 - Dernière réponse : Nymouas 34 Messages postés samedi 21 août 2004Date d'inscription 20 mai 2005 Dernière intervention
- 19 sept. 2004 à 10:55
Bonsoir,

J'ai déjà poser une question similaire à celle ci précédemment mais je préfère en créer une nouvelle plus précise.

Je voudrais savoir s'il est possible de créer une DLL pour mirc qui effectue son calcul en background sans interrompre - freezer mirc et qui enverrait un event à mirc lorsque le DLL aura fini son exécution du très gros calcul. J'ai vu qu'il existait l'évenement on signal. Il s'agit de créer un dll crc pour calculer le crc d'un fichier et qui m'enverrait sous forme d'event (de signal) le nom du fichier et le crc caclculer car la commande $crc me freeze mirc pour les trop gros fichier.

Si cela est possible, pourriez-vous me mettre sur la voie, merci.

@++

PS : actuellement g repris le code C d'une fonction de calcul crc32 dont g créé un exe qui me calcule le crc et m'écrit le résultat (le crc) dans un fichier (sfv). Dans mon script, je lance ce programme sur le fichier qui m'intéresse. J'estime le temps de calcul par la taille du fichier à calculer et je lance un timer (1fois) qui vérifie si le fichier qui contient le crc existe et si c le cas, lis la réponse. Dans le cas contraire, je relance ce timer (1fois) jusqu'au moment où le fichier qui contient le crc existe

En code cela donne :

;calculate the crc32 of the file $1 and run the crcchecker
alias crccalc {
var %ff = $1-
var %sizeff = $file($1-).size if (((%crcc.minsize <%sizeff) || (%crcc.minsize $null)) && ((%sizeff <= %crcc.maxsize) || (%crcc.maxsize == $null))) {
if (%crcc.intcrc == 0) {
;write the sfv file
crcwrite %ff
;executes the crc checker with a delay
.timer 1 $round( [ $calc(%sizeff / 10000000) ] ,0) crccheck %ff
}
}

;show the calculate CRC of the file $1, and check it if the crc is in the filename
alias crccheck {
var %ff = $1- $+ .sfv
;checks if the crc-sfv file exists
if ($exists(%ff)) {
;read the sfv
var %sfv = $read(%ff)
var %crc = $right(%sfv,8)
var %crce = $extractcrc($1-)
if (%crcc.keepsfv == 0) .remove " $+ [ %ff ] $+ "
;show the check result
wcrcalc
echo @CRCCalculator $timestamp 12 $+ [ $1- ] 13 %crc $iif(%crc == %crce,12is 3OK) $iif((%crce != $null) && (%crce != %crc),12is 4NOT OK : %crce)
}
else {
;the timer for crccheck is run one more time since the sfv file doesn't yet exist
.timer 1 %crcc.time crccheck $1-
}
}
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Hades53 231 Messages postés mercredi 12 février 2003Date d'inscription 7 juillet 2009 Dernière intervention - 18 sept. 2004 à 21:57
3
Merci
Execute tes appels via la fonction $dllcall au lieu de $dll.

Merci Hades53 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Hades53
Nymouas 34 Messages postés samedi 21 août 2004Date d'inscription 20 mai 2005 Dernière intervention - 19 sept. 2004 à 10:55
0
Merci
Merci Hades53, je vais l'essayer à l'occasion

@++
Commenter la réponse de Nymouas

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.