NEED HELP VISUAL STUDIO & .exe [question simple enfin je crois...]

starkrous Messages postés 13 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 25 juin 2003 - 18 juin 2003 à 10:20
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 juin 2003 à 10:52
voila j'ai visual studio j'ai mon .cpp quand je crée un .exe pas de probleme ça marche nikel, sauf que je me suis rendu compte que ce .exe ne marchait que sur les PC equipé de visual studio justement.
Alors quelle option faut il cocher, ou que faut il installer (a par visual studio 3Go ouch ^^) sur un Pc Lambda pour que mon programme marche ??

A la limite je veux bien savoir aussi pourquoi ya ce probleme, mais je voudrais surtout une solution parce que je ne peux pas rendre mon projet dans un tel etat, faut que ça marche n'importe ou!!

MERCI d'avance j'suis sur que expert comme certains sont, vous devez pouvoir m'aider :)

ps:j'ai deja posé cette question sur un autre forum mais ça y est je suis au bord du suicide là.

pour le fun voila mon code (C++ & O.S.=Xp)

#include "stdafx.h"
#include <fstream>
#include 
#include <conio.h>
#include <windows.h>

#using <mscorlib.dll>

using namespace std;
using namespace System;
using namespace System::IO;

char Le_Dossier[50];

void Titre_Prog()
{
cout << "           :+:Scanner du Dossier \\\\svg\\usb:+:" << endl << endl;
}

int Choix_Prog()
{
int L_Le_Choix=0;
while (L_Le_Choix<1 || L_Le_Choix>2)
{
Console::WriteLine(S"> Utilisez le programme de maniere generaliste: [1]");
Console::WriteLine(S"> Utilisez le programme pour \\\\svg\\usb        : [2]");
cout << ">Choix: ";
cin >> L_Le_Choix;
}
return (L_Le_Choix);
}

void Designer_Dossier()
{                     
cout << "Entrez l'adresse du fichier a scanner: ";
cin >> Le_Dossier;
cout << endl;
}

void Creation_Fichier_Test()
{
char Filename[50];
cout << "Nom et adresse du fichier de test    : ";
cin >> Filename;
Console::WriteLine(S"Waiting...");
ofstream fout(Filename);
Console::WriteLine(S" ");
fout << "Ce fichier de test peut etre utilisé" << "\n";
fout << "il est utilisé par l'administrateur reseau et le programme <Mass_LvT>" << "\n";
fout.close();
}

void Enumeration_Fichier()
{
System::TimeSpan diff;
DirectoryInfo* di = new DirectoryInfo(Le_Dossier);
FileInfo*  fiArr[] = di->GetFiles();
    Console::WriteLine(S"Le repertoire <{0}> contient les fichiers suivants: ", di->Name);
cout << endl;

System::Collections::IEnumerator* EnumDossier = fiArr->GetEnumerator();
EnumDossier->MoveNext();
FileInfo* t = __try_cast<FileInfo*>(EnumDossier->Current);
Console::WriteLine(S"Date Du Jour: {0} )",__box(t->LastWriteTime.Today));
Console::WriteLine(S" ");
Console::WriteLine(S" ");

    while (EnumDossier->MoveNext()) 
{
FileInfo* f = __try_cast<FileInfo*>(EnumDossier->Current);
Console::WriteLine(S"-------------------{0}-------------------",f->Name);
//cout        <<      "<>>>> Taille   : " << f->Length <<endl; 
//Console::WriteLine(S"<>>>> L.V.T.   : {0}",__box(f->LastWriteTime));
//Console::WriteLine(S"<>>>> Extension: {0}",f->Extension);
//Console::WriteLine(S" ");

if (t->LastWriteTime.Today != f->LastWriteTime.Date)
{
diff = (t->LastWriteTime.Today) - (f->LastWriteTime.Date);
Console::WriteLine(S"La sauvegarde date d'il y a {0} ) Jours",__box(diff));
}
else
{
Console::WriteLine(S"        ->->->->->Sauvegarde OK<-<-<-<-<-");
}
cout << endl;
}
}

void Auto_Creation_Fichier_Test(char L_Fichier[50])
{
Console::WriteLine(S"  -----------------------------------------------------------------");
Console::WriteLine(S"");
Console::WriteLine(S"Waiting...");
ofstream fout(L_Fichier);
//ofstream fout("\\\\svg\\usb\\aaa_test_mass_LVT.txt");
Console::WriteLine(S" ");
fout << "Ce fichier de test peut etre utilisé" << "\n";
fout << "il est utilisé par l'administrateur reseau et le programme <Mass_LvT>" << "\n";
fout.close();
}

void Auto_Enumeration_Fichier(char L_Dossier[50])
{
System::TimeSpan diff;
DirectoryInfo* di = new DirectoryInfo(L_Dossier);
FileInfo*  fiArr[] = di->GetFiles();
    Console::WriteLine(S"Le repertoire <{0}> contient les fichiers suivants: ", di->Name);
cout << endl;

System::Collections::IEnumerator* EnumDossier = fiArr->GetEnumerator();
EnumDossier->MoveNext();
FileInfo* t = __try_cast<FileInfo*>(EnumDossier->Current);
Console::WriteLine(S"Date Du Jour: {0} )",__box(t->LastWriteTime.Today));
Console::WriteLine(S" ");
Console::WriteLine(S" ");

    while (EnumDossier->MoveNext()) 
{
FileInfo* f = __try_cast<FileInfo*>(EnumDossier->Current);
//cout        <<      "<>>>> Taille   : " << f->Length <<endl; 
//Console::WriteLine(S"<>>>> L.V.T.   : {0}",__box(f->LastWriteTime));
//Console::WriteLine(S"<>>>> Extension: {0}",f->Extension);
//Console::WriteLine(S" ");

if (t->LastWriteTime.Today != f->LastWriteTime.Date)
{
Console::WriteLine(S"------ERRREUR------{0}------ERRREUR------",f->Name);
diff = (t->LastWriteTime.Today) - (f->LastWriteTime.Date);
Console::WriteLine(S"La sauvegarde date d'il y a {0} Jours",__box(diff));
}
else
{
Console::WriteLine(S"--------OK---------{0}--------OK---------",f->Name);
Console::WriteLine(S"        ->->->->->Sauvegarde OK<-<-<-<-<-");
}
cout << endl;
}
}

int main()
{
int Le_Choix;
Titre_Prog();
Le_Choix=Choix_Prog();
if(Le_Choix == 1)
{
Designer_Dossier();
Creation_Fichier_Test();
Enumeration_Fichier();
getch();
}
else if(Le_Choix == 2)
{
Auto_Creation_Fichier_Test("\\\\svg\\usb\\aaa_test_mass_LVT.txt");
Auto_Enumeration_Fichier("\\\\svg\\usb");
Console::WriteLine(S"CONTINUER...(appuyez sur une touche");
getch();
Auto_Creation_Fichier_Test("\\\\svg\\usb\\ORION\\aaa_test_mass_LVT.txt");
Auto_Enumeration_Fichier("\\\\svg\\usb\\ORION");
Console::WriteLine(S"CONTINUER...(appuyez sur une touche");
getch();
Auto_Creation_Fichier_Test("\\\\svg\\usb\\WSE\\C_Volume\\aaa_test_mass_LVT.txt");
Auto_Enumeration_Fichier("\\\\svg\\usb\\WSE\\C_Volume");
Console::WriteLine(S"CONTINUER...(appuyez sur une touche");
getch();
Auto_Creation_Fichier_Test("\\\\svg\\usb\\WSE\\D_Volume\\aaa_test_mass_LVT.txt");
Auto_Enumeration_Fichier("\\\\svg\\usb\\WSE\\D_Volume");

getch();
Console::WriteLine(S"FIN DU PROGRAMME...(appuyez sur une touche");
getch();
}

return 0;
}

4 réponses

starkrous Messages postés 13 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 25 juin 2003
18 juin 2003 à 10:22
but du programme: recuperer les dates de derniere modification d'un fichier et les comparer a la date du jour pour verifier si une sauvegarde marche bien.

(ça marche en plus, ça pourrait etre largement mieux mais bon...ça marche)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 juin 2003 à 10:31
Besoin de rien pour ton exe.
Pour ce faire:
- compile en RELEASE
- vire les flux obsoletes sur win32 et appelle son API (CreateFile...).
BruNews, ciao...
0
starkrous Messages postés 13 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 25 juin 2003
18 juin 2003 à 10:46
Merci Brunews pour ton aide, j'avais pas vu l'option release, mais sinon ça veut dire quoi en francais "- vire les flux obsoletes sur win32 et appelle son API (CreateFile...)."

... sorry j'suis pas tres bon...

question aussi la mon projet est en Win32 console, c'est bon?? ou faut mieux que je le mette en .net console ??

pi aussi je me suis rendu compte que mon code faisait bien pitié, surtout au niveau de la creation d'un fichier de test

diff = (t->LastWriteTime.Today) - (f->LastWriteTime.Date);


j'ai vraiment honte c'est debile je peux tres bien faire

diff = (f->LastWriteTime.Today) - (f->LastWriteTime.Date);


voila donc a quoi ça ressemble maintenant (plus besoin de creer un fichier pour tester du coup!! (plus besoin de createfile)

#include "stdafx.h"
#include 
#include <conio.h>
#include <windows.h>

#using <mscorlib.dll>

using namespace std;
using namespace System;
using namespace System::IO;

char Le_Dossier[50];

void Titre_Prog()
{
cout << "           :+:---Scanner du Dossier---:+:" << endl ;
cout << "           :+:----Last Write Time-----:+:" << endl << endl ;
}

int Choix_Prog()
{
int L_Le_Choix=0;
while (L_Le_Choix<1 || L_Le_Choix>2)
{
Console::WriteLine(S"> Utilisez le programme de maniere generaliste            : [1]");
Console::WriteLine(S"> Utilisez le programme en mode auto. (Pour \\\\svg\\usb...) : [2]");
cout << "> Choix : ";
cin >> L_Le_Choix;
}
return (L_Le_Choix);
}

void Designer_Dossier()
{                     
cout << "Entrez l'adresse du fichier a scanner: ";
cin >> Le_Dossier;
cout << endl;
}

void Enumeration_Fichier()
{
System::TimeSpan diff;
DirectoryInfo* di = new DirectoryInfo(Le_Dossier);
FileInfo*  fiArr[] = di->GetFiles();
    Console::WriteLine(S"Le repertoire <{0}> contient les fichiers suivants: ", di->Name);
cout << endl;

System::Collections::IEnumerator* EnumDossier = fiArr->GetEnumerator();
Console::WriteLine(S" ");

    while (EnumDossier->MoveNext()) 
{
FileInfo* f = __try_cast<FileInfo*>(EnumDossier->Current);
Console::WriteLine(S"-------------------{0}-------------------",f->Name);
//cout        <<      "<>>>> Taille   : " << f->Length <<endl; 
//Console::WriteLine(S"<>>>> L.V.T.   : {0}",__box(f->LastWriteTime));
//Console::WriteLine(S"<>>>> Extension: {0}",f->Extension);
//Console::WriteLine(S" ");

if (f->LastWriteTime.Today != f->LastWriteTime.Date)
{
diff = (f->LastWriteTime.Today) - (f->LastWriteTime.Date);
Console::WriteLine(S"La sauvegarde date d'il y a {0} ) Jours",__box(diff));
}
else
{
Console::WriteLine(S"        ->->->->->Sauvegarde OK<-<-<-<-<-");
}
cout << endl;
}
}

void Auto_Enumeration_Fichier(char L_Dossier[50])
{
System::TimeSpan diff;
DirectoryInfo* di = new DirectoryInfo(L_Dossier);
FileInfo*  fiArr[] = di->GetFiles();
    Console::WriteLine(S"Le repertoire <{0}> contient les fichiers suivants: ", di->Name);
cout << endl;

System::Collections::IEnumerator* EnumDossier = fiArr->GetEnumerator();
Console::WriteLine(S" ");

    while (EnumDossier->MoveNext()) 
{
FileInfo* f = __try_cast<FileInfo*>(EnumDossier->Current);
//cout        <<      "<>>>> Taille   : " << f->Length <<endl; 
//Console::WriteLine(S"<>>>> L.V.T.   : {0}",__box(f->LastWriteTime));
//Console::WriteLine(S"<>>>> Extension: {0}",f->Extension);
//Console::WriteLine(S" ");

if (f->LastWriteTime.Today != f->LastWriteTime.Date)
{
Console::WriteLine(S"------ERRREUR------{0}------ERRREUR------",f->Name);
diff = (f->LastWriteTime.Today) - (f->LastWriteTime.Date);
Console::WriteLine(S"La sauvegarde date d'il y a {0} Jours",__box(diff));
}
else
{
Console::WriteLine(S"--------OK---------{0}--------OK---------",f->Name);
Console::WriteLine(S"        ->->->->->Sauvegarde OK<-<-<-<-<-");
}
cout << endl;
}
}

int main()
{
int Le_Choix;
Titre_Prog();
Le_Choix=Choix_Prog();
if(Le_Choix == 1)
{
Designer_Dossier();
Enumeration_Fichier();
getch();
}
else if(Le_Choix == 2)
{
Auto_Enumeration_Fichier("\\\\svg\\usb");
Console::WriteLine(S"CONTINUER...(appuyez sur une touche");
getch();
Auto_Enumeration_Fichier("\\\\svg\\usb\\ORION");
Console::WriteLine(S"CONTINUER...(appuyez sur une touche");
getch();
Auto_Enumeration_Fichier("\\\\svg\\usb\\WSE\\C_Volume");
Console::WriteLine(S"CONTINUER...(appuyez sur une touche");
getch();
Auto_Enumeration_Fichier("\\\\svg\\usb\\WSE\\D_Volume");
Console::WriteLine(S"FIN DU PROGRAMME...(appuyez sur une touche");
getch();
}

return 0;
}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 juin 2003 à 10:52
Un scan de dossier se fait en win32 avec FindFirstFile() et FindNextFile(), les 2 retournant toutes les infos desirees.
Pas besoin de <fstream> et autres
DirectoryInfo* ???
FileInfo* ???
Si tu fais du .net faudra un install assez pesant, win32 API exe leger rapide et autonome.
BruNews, ciao...
0
Rejoignez-nous