J'ai un petit problème avec un programme c++ que j'ai téléchargé sur le net.
Il concerne la liste chainée. J'utilise VC++ . j'ai modifié au niveau des
options l'option en mettant :
Not Using Precompiled Headers : Not Using Precompiled Headers
qd je compile il m'affiche l'erreur suivante:
error LNK2019: unresolved external symbol _main referenced in function
_mainCRTStartup
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Maurette
"J. KHOURY" a écrit ...
Bonjour,
J'ai un petit problème [...]
Avez vous une idée? A voir ce post et un autre précédent, votre problème est de créer une simple
appli console sous VS .NET. Pour faire un "hello world" en C++ sous VS .NET, en vous libérant au maximum des Microsofteries, une solution parmi d'autres : - créer un répertoire tests_VS - lancer VS - Fichier / Nouveau / Projet - Dans le dossier "Projets Visual C++", choisir "Projet console Win32" (le mot "console" est important). - Par "Parcourir", choisissez le dossier tests_VS - Donnez le nom "hello_1" au projet - OK - Dans "Paramètres de l'application", cochez "Projet vide" (second point important), puis "Terminer". - Soit par . Clic droit sur "Source Files" puis Ajouter/Ajouter nouvel élémént . Menu Projet/Ajouter nouvel élémént . Ctrl+Shift+A sélectionner "Fichier C++ (.cpp)", nommez-le "hello", puis "Ouvrir". - Saisissez votre code dans le "hello.cpp" (vide), sauvez, puis Ctrl+F5 (ou Déboguer/Exécuter sans débogage) - Cliquer "Oui" si une boîte apparaît vous demandant s'il fut régénérer la construction ou quelque chose dans ce genre. - Le programme se construit, une fenêtre s'ouvre dans laquelle il s'exécute. Ils ont même eu le bon goût de prévoir une attente de frappe de touche avant qu'elle ne se ferme.
C'est le plus simple pour faire du C++ de base en bénéficiant de l'EDI (et de ses contraintes). Vous pouvez également utiliser les compilateurs, lieurs, etc, en ligne de commandes ou à partir d'un autre environnmement. A ce moment-là, vous aurez peut-être besoin de faire tourner préalablement à la construction : ...Microsoft Visual Studio .NET 2003Common7Toolsvsvars32.bat ou ...Microsoft Visual Studio .NET 2003vc7binvcvars32.bat
Bon courage
Pierre
"J. KHOURY" <jkhoury@free.fr> a écrit ...
Bonjour,
J'ai un petit problème
[...]
Avez vous une idée?
A voir ce post et un autre précédent, votre problème est de créer une simple
appli console sous VS .NET.
Pour faire un "hello world" en C++ sous VS .NET, en vous libérant au maximum
des Microsofteries, une solution parmi d'autres :
- créer un répertoire tests_VS
- lancer VS
- Fichier / Nouveau / Projet
- Dans le dossier "Projets Visual C++", choisir "Projet console Win32" (le
mot "console" est important).
- Par "Parcourir", choisissez le dossier tests_VS
- Donnez le nom "hello_1" au projet
- OK
- Dans "Paramètres de l'application", cochez "Projet vide" (second point
important), puis "Terminer".
- Soit par
. Clic droit sur "Source Files" puis Ajouter/Ajouter nouvel élémént
. Menu Projet/Ajouter nouvel élémént
. Ctrl+Shift+A
sélectionner "Fichier C++ (.cpp)", nommez-le "hello", puis "Ouvrir".
- Saisissez votre code dans le "hello.cpp" (vide), sauvez, puis Ctrl+F5 (ou
Déboguer/Exécuter sans débogage)
- Cliquer "Oui" si une boîte apparaît vous demandant s'il fut régénérer la
construction ou quelque chose dans ce genre.
- Le programme se construit, une fenêtre s'ouvre dans laquelle il s'exécute.
Ils ont même eu le bon goût de prévoir une attente de frappe de touche avant
qu'elle ne se ferme.
C'est le plus simple pour faire du C++ de base en bénéficiant de l'EDI (et
de ses contraintes). Vous pouvez également utiliser les compilateurs,
lieurs, etc, en ligne de commandes ou à partir d'un autre environnmement. A
ce moment-là, vous aurez peut-être besoin de faire tourner préalablement à
la construction :
...Microsoft Visual Studio .NET 2003Common7Toolsvsvars32.bat
ou
...Microsoft Visual Studio .NET 2003vc7binvcvars32.bat
Avez vous une idée? A voir ce post et un autre précédent, votre problème est de créer une simple
appli console sous VS .NET. Pour faire un "hello world" en C++ sous VS .NET, en vous libérant au maximum des Microsofteries, une solution parmi d'autres : - créer un répertoire tests_VS - lancer VS - Fichier / Nouveau / Projet - Dans le dossier "Projets Visual C++", choisir "Projet console Win32" (le mot "console" est important). - Par "Parcourir", choisissez le dossier tests_VS - Donnez le nom "hello_1" au projet - OK - Dans "Paramètres de l'application", cochez "Projet vide" (second point important), puis "Terminer". - Soit par . Clic droit sur "Source Files" puis Ajouter/Ajouter nouvel élémént . Menu Projet/Ajouter nouvel élémént . Ctrl+Shift+A sélectionner "Fichier C++ (.cpp)", nommez-le "hello", puis "Ouvrir". - Saisissez votre code dans le "hello.cpp" (vide), sauvez, puis Ctrl+F5 (ou Déboguer/Exécuter sans débogage) - Cliquer "Oui" si une boîte apparaît vous demandant s'il fut régénérer la construction ou quelque chose dans ce genre. - Le programme se construit, une fenêtre s'ouvre dans laquelle il s'exécute. Ils ont même eu le bon goût de prévoir une attente de frappe de touche avant qu'elle ne se ferme.
C'est le plus simple pour faire du C++ de base en bénéficiant de l'EDI (et de ses contraintes). Vous pouvez également utiliser les compilateurs, lieurs, etc, en ligne de commandes ou à partir d'un autre environnmement. A ce moment-là, vous aurez peut-être besoin de faire tourner préalablement à la construction : ...Microsoft Visual Studio .NET 2003Common7Toolsvsvars32.bat ou ...Microsoft Visual Studio .NET 2003vc7binvcvars32.bat
Bon courage
Pierre
Loïc Joly
J. KHOURY wrote:
Bonjour,
J'ai un petit problème avec un programme c++ que j'ai téléchargé sur le net. Il concerne la liste chainée. J'utilise VC++ . j'ai modifié au niveau des options l'option en mettant :
Est-tu sur qu'il s'agisse d'un programme complet et non simplement d'une bibliothèque ? Y a-t-il une fonction main dans ce programme ?
-- Loïc
J. KHOURY wrote:
Bonjour,
J'ai un petit problème avec un programme c++ que j'ai téléchargé sur le net.
Il concerne la liste chainée. J'utilise VC++ . j'ai modifié au niveau des
options l'option en mettant :
Est-tu sur qu'il s'agisse d'un programme complet et non simplement d'une
bibliothèque ? Y a-t-il une fonction main dans ce programme ?
J'ai un petit problème avec un programme c++ que j'ai téléchargé sur le net. Il concerne la liste chainée. J'utilise VC++ . j'ai modifié au niveau des options l'option en mettant :
Est-tu sur qu'il s'agisse d'un programme complet et non simplement d'une bibliothèque ? Y a-t-il une fonction main dans ce programme ?
-- Loïc
J. KHOURY
Tu as raison, il n'y a pas de fonction main. comment faire avec cet exemple. Je cherche un exemple sur la liste chaînée. comment je peux faire pour le faire marcher?
fichier list.h
#ifndef _List_
#define _List_
template <class ElementType>
class List
{
protected:
// Structure pour une liste chainee avec
// un noeud initial "bidon".
struct Node {
ElementType Element;
Node *Next;
Node( ElementType E = 0, Node *N = NULL ):
Element( E ), Next( N ) {}
};
Node *Head;
Node *Current;
void Delete( );
List( List &Value );
public:
// Constructeur.
List( ) : Head( new Node ), Current( Head ) {}
// Destructeur.
virtual ~List( ) { Delete( ); }
// Operateurs et operations.
const List &operator = ( List &Value );
const List &operator ++ ( );
int operator ! ( ) const;
const ElementType &operator () ( ) const;
int Empty ( ) const
{ return Head -> Next == NULL; }
void First ( )
{ if( Head->Next != NULL ) Current = Head->Next; }
// Retourn TRUE et met Current a l'element cherche
// s'il est present.
template <class ElementType>
inline int
List<ElementType>::
Find( const ElementType &X )
{
Node *P;
for( P = Head->Next; P != NULL; P = P->Next )
if( P->Element == X ) {
Current = P;
return 1;
}
return 0;
}
// Retourne TRUE et met Current sur l'element
// qui precede X si present.
template <class ElementType>
inline int
List<ElementType>::
Previous( const ElementType &X )
{
Node *P;
for( P = Head->Next; P->Next != NULL; P = P->Next )
if( P->Next->Element == X ) {
Current = P;
return 1;
}
return 0;
}
// Insere l'element X apres l'element pointe par Current.
template <class ElementType>
void
List<ElementType>::
Insert( const ElementType &X )
{
Node *P = new Node( X, Current->Next );
if( P == NULL )
cout << "Out of space!" << endl;
else {
Current->Next = P;
Current = Current->Next;
}
}
// Retire X de la list.
// Retourne TRUE si succes.
template <class ElementType>
int
List<ElementType>::
Remove( const ElementType &X )
{
Node *ToDelete;
if( Previous( X ) ) {
ToDelete = Current->Next;
Current->Next = ToDelete->Next;
delete ToDelete;
return 1;
}
return 0;
}
// Replication d'une liste.
// Les pointeurs Current des deux listes
// pointent sur leur premier element.
template <class ElementType>
const List<ElementType> &
List<ElementType>::
operator = ( List<ElementType> &Value )
{
if( this == &Value ) // On ne se recopie pas!
return *this;
Delete(); // On delete la liste a affectee.
Current = Head = new Node;
for( Value.First(); !Value; ++Value ) {
Current->Next = new Node( Value(), Current->Next );
Current = Current->Next;
}
Current->Next = NULL;
First();
Value.First();
return *this;
}
"Loïc Joly" a écrit dans le message de news:c0v746$mlf$
J. KHOURY wrote:
Bonjour,
J'ai un petit problème avec un programme c++ que j'ai téléchargé sur le net.
Il concerne la liste chainée. J'utilise VC++ . j'ai modifié au niveau des
options l'option en mettant :
Est-tu sur qu'il s'agisse d'un programme complet et non simplement d'une bibliothèque ? Y a-t-il une fonction main dans ce programme ?
-- Loïc
Tu as raison, il n'y a pas de fonction main. comment faire avec cet exemple.
Je cherche un exemple sur la liste chaînée. comment je peux faire pour le
faire marcher?
fichier list.h
#ifndef _List_
#define _List_
template <class ElementType>
class List
{
protected:
// Structure pour une liste chainee avec
// un noeud initial "bidon".
struct Node {
ElementType Element;
Node *Next;
Node( ElementType E = 0, Node *N = NULL ):
Element( E ), Next( N ) {}
};
Node *Head;
Node *Current;
void Delete( );
List( List &Value );
public:
// Constructeur.
List( ) : Head( new Node ), Current( Head ) {}
// Destructeur.
virtual ~List( ) { Delete( ); }
// Operateurs et operations.
const List &operator = ( List &Value );
const List &operator ++ ( );
int operator ! ( ) const;
const ElementType &operator () ( ) const;
int Empty ( ) const
{ return Head -> Next == NULL; }
void First ( )
{ if( Head->Next != NULL ) Current = Head->Next; }
Tu as raison, il n'y a pas de fonction main. comment faire avec cet exemple. Je cherche un exemple sur la liste chaînée. comment je peux faire pour le faire marcher?
fichier list.h
#ifndef _List_
#define _List_
template <class ElementType>
class List
{
protected:
// Structure pour une liste chainee avec
// un noeud initial "bidon".
struct Node {
ElementType Element;
Node *Next;
Node( ElementType E = 0, Node *N = NULL ):
Element( E ), Next( N ) {}
};
Node *Head;
Node *Current;
void Delete( );
List( List &Value );
public:
// Constructeur.
List( ) : Head( new Node ), Current( Head ) {}
// Destructeur.
virtual ~List( ) { Delete( ); }
// Operateurs et operations.
const List &operator = ( List &Value );
const List &operator ++ ( );
int operator ! ( ) const;
const ElementType &operator () ( ) const;
int Empty ( ) const
{ return Head -> Next == NULL; }
void First ( )
{ if( Head->Next != NULL ) Current = Head->Next; }
// Retourn TRUE et met Current a l'element cherche
// s'il est present.
template <class ElementType>
inline int
List<ElementType>::
Find( const ElementType &X )
{
Node *P;
for( P = Head->Next; P != NULL; P = P->Next )
if( P->Element == X ) {
Current = P;
return 1;
}
return 0;
}
// Retourne TRUE et met Current sur l'element
// qui precede X si present.
template <class ElementType>
inline int
List<ElementType>::
Previous( const ElementType &X )
{
Node *P;
for( P = Head->Next; P->Next != NULL; P = P->Next )
if( P->Next->Element == X ) {
Current = P;
return 1;
}
return 0;
}
// Insere l'element X apres l'element pointe par Current.
template <class ElementType>
void
List<ElementType>::
Insert( const ElementType &X )
{
Node *P = new Node( X, Current->Next );
if( P == NULL )
cout << "Out of space!" << endl;
else {
Current->Next = P;
Current = Current->Next;
}
}
// Retire X de la list.
// Retourne TRUE si succes.
template <class ElementType>
int
List<ElementType>::
Remove( const ElementType &X )
{
Node *ToDelete;
if( Previous( X ) ) {
ToDelete = Current->Next;
Current->Next = ToDelete->Next;
delete ToDelete;
return 1;
}
return 0;
}
// Replication d'une liste.
// Les pointeurs Current des deux listes
// pointent sur leur premier element.
template <class ElementType>
const List<ElementType> &
List<ElementType>::
operator = ( List<ElementType> &Value )
{
if( this == &Value ) // On ne se recopie pas!
return *this;
Delete(); // On delete la liste a affectee.
Current = Head = new Node;
for( Value.First(); !Value; ++Value ) {
Current->Next = new Node( Value(), Current->Next );
Current = Current->Next;
}
Current->Next = NULL;
First();
Value.First();
return *this;
}
"Loïc Joly" a écrit dans le message de news:c0v746$mlf$
J. KHOURY wrote:
Bonjour,
J'ai un petit problème avec un programme c++ que j'ai téléchargé sur le net.
Il concerne la liste chainée. J'utilise VC++ . j'ai modifié au niveau des
options l'option en mettant :
Est-tu sur qu'il s'agisse d'un programme complet et non simplement d'une bibliothèque ? Y a-t-il une fonction main dans ce programme ?
-- Loïc
Pierre Maurette
"J. KHOURY" a écrit...
Tu as raison, il n'y a pas de fonction main. comment faire avec cet exemple.
Je cherche un exemple sur la liste chaînée. comment je peux faire pour le faire marcher?
fichier list.h [...]
le fichier list.cpp [...]
Vous partez d'un projet vide avec un main(), par exemple un "hello world", que vous testez. (voir mon post précédent). Ensuite, vous pouvez ajouter des fichiers à votre projet. Dans votre cas, le plus propre : - Menu Projet/Ajouter une classe. (ou par clic droit dans l'explorateur de solution). - Choisir "Classe C++ générique". La suite est évidente. Vous créez les .h et .cpp (et y copiez votre code) ou vous les choisissez. Vous écrivez votre code de test dans le main(). Pierre
"J. KHOURY" <jkhoury@free.fr> a écrit...
Tu as raison, il n'y a pas de fonction main. comment faire avec cet
exemple.
Je cherche un exemple sur la liste chaînée. comment je peux faire pour le
faire marcher?
fichier list.h
[...]
le fichier list.cpp
[...]
Vous partez d'un projet vide avec un main(), par exemple un "hello world",
que vous testez. (voir mon post précédent).
Ensuite, vous pouvez ajouter des fichiers à votre projet.
Dans votre cas, le plus propre :
- Menu Projet/Ajouter une classe. (ou par clic droit dans l'explorateur de
solution).
- Choisir "Classe C++ générique".
La suite est évidente. Vous créez les .h et .cpp (et y copiez votre code) ou
vous les choisissez.
Vous écrivez votre code de test dans le main().
Pierre
Tu as raison, il n'y a pas de fonction main. comment faire avec cet exemple.
Je cherche un exemple sur la liste chaînée. comment je peux faire pour le faire marcher?
fichier list.h [...]
le fichier list.cpp [...]
Vous partez d'un projet vide avec un main(), par exemple un "hello world", que vous testez. (voir mon post précédent). Ensuite, vous pouvez ajouter des fichiers à votre projet. Dans votre cas, le plus propre : - Menu Projet/Ajouter une classe. (ou par clic droit dans l'explorateur de solution). - Choisir "Classe C++ générique". La suite est évidente. Vous créez les .h et .cpp (et y copiez votre code) ou vous les choisissez. Vous écrivez votre code de test dans le main(). Pierre