MISE À JOUR DE VOS PROJETS PAR UNE DLL

Signaler
Messages postés
76
Date d'inscription
lundi 21 mars 2005
Statut
Membre
Dernière intervention
29 novembre 2009
-
Messages postés
76
Date d'inscription
lundi 21 mars 2005
Statut
Membre
Dernière intervention
29 novembre 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35761-mise-a-jour-de-vos-projets-par-une-dll

Messages postés
76
Date d'inscription
lundi 21 mars 2005
Statut
Membre
Dernière intervention
29 novembre 2009

le code sorce d'une application console ressemblera a ca:

#include "stdafx.h"

#define ALLOC_GLOBAL
#include "../../imajin.h"

#include<direct.h>

#include <stdio.h>

DLL_API void EventMessage(const char *message)
{
if (!strnicmp(message,"Info : ",7)) {
printf(message);
} else if (!strnicmp(message,"Error : ",8)) {
printf(message);
} else if (!strnicmp(message,"Warning : ",10)) {
printf(message);
} else if (!strnicmp(message,"NewVersion : ",12)) {
printf(message);
} else if (!strnicmp(message,"NewInfo : ",10)) {
printf(message);
} else {
printf(message);
}
}

int _tmain(int argc, _TCHAR* argv[])
{
char exeroot[4096];
char exe[4096];
bool update = false; // the tool can use the iMAJin.dll

HMODULE Module =NULL;

GetModuleFileName(GetModuleHandle(NULL), exeroot, 4096);
strcpy(exe,exeroot);
char *a=strrchr(exeroot,'\\');
*(++a) = '\0';

// define the current directory
chdir(exeroot);


printf("-------- Democonsole version 1.0 for iMAJin dll --------\n");

while (1) {


DeleteFile(".\\iMAJin.tmp");
CopyFile(".\\iMAJin.dll",".\\iMAJin.tmp",false);

Module = LoadLibrary(".\\iMAJin.tmp");
if (!Module) {
printf("please, copy the iMAJin.dll to %s\n",exeroot);
update = false;
break;
}

InitializeUpdateDll(Module); //launch the function in iMAJin.h

Initialize(EventMessage); // to display the messages

// return 1 if imAJin.dll is updated
if (!UpdateiMAJin(Module)) {
update = true;
break;
}
}

if (update) {

// comment this lines to debug the project
// ---------------------------------------
// return 0 if the actual is .tmp
// return 1 if the actual is .exe and launch(.tmp)
// return -1 if error
int r=LaunchMeFromDos(exe,argc,argv);
if (r>0) {
FreeLibrary(Module);
return 0;
} else if (r < 0) update = false;
// ---------- end ------------
}

if (update) {
// param 1: ftp or http link of list.xml file (with login and password if necessary)
// param 2: path to put the list.xml
//
// return true is the xml file is ok
//
if (UpdateGlobalList("http://surfnet.dl.sourceforge.net/sourceforge/imajin/console/list.xml",".\\consolelist.xml")) { // get the list of servers
char xmlpath[4096];

// param 1: list.xml (list of servers)
// param 2: project (see the list.xml)
// param 3: name of list to read for serach the servers (see the list.xml and version.xml)
// param 4 and 5: to set the new version.xml found in server
//
// return 2 if exist a new version, 1 if your version is higher else 0
//
if (FoundVersion(".\\consolelist.xml","demo","console",".\\consoleversion.xml",xmlpath,4096) == 2 ) {

// param 1: path where are the files to update
// param 2: path of actual version
// param 3: the new version.xml
//
// return 1 if all project was updated, else 0
//
int r=Update(".\",".\\consoleversion.xml",xmlpath);
}
}
}

FreeLibrary(Module);
Sleep(10000);
return 0;
}
Messages postés
76
Date d'inscription
lundi 21 mars 2005
Statut
Membre
Dernière intervention
29 novembre 2009

salut, le projet n'est pas abandonné, a vrai dire, j'ai recrée une autre dll, sa grande soeur. elle est incompatible avec l'actuelle, car j'ai renommé des fonctions et la dll, changer des parametres, et tout ca pour que ce soit plus simple a coder. De plus le repertoire mis a jour est garantit d'être l'image exact de l'original, alors que actuellement, il restait ds residus. Il y a aussi une nouvelle methode pour que les personnes ayant des connections lentes puissent quand meme mettre a jour vos projets sans y passer des heures comme sur la dll actuelle.

D'ici 2 à 3 semaines, elle sera normalment sur http://sourceforge.net/projects/imajin/ (j'attends l'accord par sourceforge). Et bien sur sous licence GPL. le code source sera fournit, ainsi que des exemples, des outils pour vos mises à jour.

voila, je vous previens des que c'est mis.
Messages postés
1
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
6 avril 2007

Ce serait quand même intéressantd'avoir la source pour comprendre le fonctionnement, ou améliorer le programme. Mais le projet est-il réellement abandonné?
Messages postés
45
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2009

Le projet est dead !?
Afficher les 13 commentaires