cs_jipef
Messages postés55Date d'inscriptionlundi 23 août 2004StatutMembreDernière intervention 1 août 2008 16 janv. 2007 à 16:00
j'ai plutot une question quelqu'a til une experience de windev sous RT LINUX ???
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 26 oct. 2006 à 14:55
Merci pour tes commentaires (très très constructif :D, fait longtemps je t'avais pas vu), je vais apporter les corrections quand j'aurai réinstallé VC7 et avancé dans mes travaux en retard. Concernant la classe CBridge elle ne sert à rien car pas terminée (ni commencée ;) ) (son but était de faire du tunnelling pour les transferts de fichiers ou jeux en réseaux). Concernant le type string il a le défaut d'être lent, j'ai donc décidé de faire à la main. Va falloir que je me documente sur les *stream aussi.
A+
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 25 oct. 2006 à 17:58
CBridge::CBridge(int NbClients)
{
// On utilise « this », pas le nom de la classe ...
// j'ai vu cette « chose » dans plusieurs de tes classes ...
CBridge::NbClients = NbClients;
}
// modifié
CBridge::CBridge(int NbClients) : this->NbClients(NbClients)
{
// nothing
}
pour faire vraiment C++ et non un mélange de C et de C++, pourquoi ne pas utiliser les *stream pour les fichiers?
dans ton fichier CConfiguration.h, c'est quoi ca?
public:
CConfiguration::CConfiguration();
pourquoi mettre les attributs de tes classes en public? autant y aller en C avec des structure, aucune différence ... dans ton cas, l'OO n'a pas lieux d'être, l'encapsulation/etc. => au poubelle dans ton cas ...
*** Exemple
class Object
{
public:
Object() : m_data(0)
{
// nothing
}
~Object()
{
// nothing
}
int getData() const
{
return this->m_data;
}
void setData(const int data) // « const » est optionnel(c'est par copie de toute facon)
{
this->m_data = data;
}
private:
int m_data;
};
tu devrais utiliser <> pour les headers « standards » et ceux du OS, tels que <windows.h>/<string.h>/etc. et garder les "" pour tes headers. au moins avec les <> on se pose pas trop de question :: c'est un header « standard/OS » ou un perso. !? :: réponse: std/OS, c'est automatique quand on le voit ...
en passant, en C++, c'est pas string.h/stdio.h/etc. mais plutôt cstring/cstdio/cstdlib/etc. => namespace
sous Windows, utilises plutôt <winsock2.h> et non celui de <windows.h> car celui de <windows.h> c'est la version 1(qui est préhistorique maintenant), alors préfères la version 2, pour être à jour ...
#include <winsock2.h> // inclut aussi <windows.h> et ce dernier devient donc optionnel
#include <windows.h> // optionnel si on utilise/inclut <winsock2.h>
tu peux aussi définir WIN32_LEAN_AND_MEAN avant l'inclusion de <windows.h> pour éviter l'inclusion de la version 1 de winsock mais avec <winsock2.h>, t'as rien à faire, sauf inclure ce fichier !
dans ceci: bool CDataQuery::GetAuthentification(char* User, char* Pass, CConnection* pClient)
plutôt que d'avoir 10,000 else, pourquoi ne pas utiliser une variable(bool)? tu retournes plus souvent false que true alors mets false par défaut(à l'initialisation) et changes pour true si besoin, comme ca, t'aura juste UN ->Free(...) au lieux de 20(même si le compilateur devrait pouvoir s'arranger pour mettre ca « correcte » derrière) ...
bool retval = false;
if ( cond1 )
{
if ( cond2 )
{
if ( cond3 )
{
retval = true;
}
}
else {
retval = true;
}
->Free(...); // juste UN Free()
}
return retval;
et tu pourrais utiliser cette méthode dans plusieurs de tes classes/méthodes/...
std::string ne t'interesse pas? très utile pourtant ...
en passant, en utilisant les *stream, dans ton CLog tu pourrais même surcharger l'opérateur << pour écrire dans ton fichier, CLog l; l << "ceci"; // par exemple
y'a pleins de choses que tu pourrais faire mais que t'as pas fait :P
en C++, autant y aller en C++/OO plutôt que C++/C
le C++ est un C OO alors utilises l'OO sinon retournes en C :}
les librairies, ajoutes les dans ton makefile ou dans les options du projet mais laisses tomber le #pragma, pour connaître les librairies utilisés/liés/.. à ton projet, faut voir dans les fichiers sources/options/etc., un endroit c'est plus ... simple ... pour ce qui est de la configuration(comme pour les libs/...) on fait pas ca dans les fichiers .c/.cpp/.h/.hpp/etc. mais dans les makefiles/options du projet/etc., c'est global au projet et pas spécifique a un fichier(il y a quand même des exceptions parfois) ...
c'est ce que j'ai remarqué des fichiers que j'ai regardé :}
bref voilà, ce sont mes commentaires, dans l'ensemble ca l'air d'être un bon projet(je l'ai pas testé/essayé), bonne continuation :}
16 janv. 2007 à 16:00
26 oct. 2006 à 14:55
A+
25 oct. 2006 à 17:58
{
// On utilise « this », pas le nom de la classe ...
// j'ai vu cette « chose » dans plusieurs de tes classes ...
CBridge::NbClients = NbClients;
}
// modifié
CBridge::CBridge(int NbClients) : this->NbClients(NbClients)
{
// nothing
}
pour faire vraiment C++ et non un mélange de C et de C++, pourquoi ne pas utiliser les *stream pour les fichiers?
dans ton fichier CConfiguration.h, c'est quoi ca?
public:
CConfiguration::CConfiguration();
pourquoi mettre les attributs de tes classes en public? autant y aller en C avec des structure, aucune différence ... dans ton cas, l'OO n'a pas lieux d'être, l'encapsulation/etc. => au poubelle dans ton cas ...
*** Exemple
class Object
{
public:
Object() : m_data(0)
{
// nothing
}
~Object()
{
// nothing
}
int getData() const
{
return this->m_data;
}
void setData(const int data) // « const » est optionnel(c'est par copie de toute facon)
{
this->m_data = data;
}
private:
int m_data;
};
tu devrais utiliser <> pour les headers « standards » et ceux du OS, tels que <windows.h>/<string.h>/etc. et garder les "" pour tes headers. au moins avec les <> on se pose pas trop de question :: c'est un header « standard/OS » ou un perso. !? :: réponse: std/OS, c'est automatique quand on le voit ...
en passant, en C++, c'est pas string.h/stdio.h/etc. mais plutôt cstring/cstdio/cstdlib/etc. => namespace
sous Windows, utilises plutôt <winsock2.h> et non celui de <windows.h> car celui de <windows.h> c'est la version 1(qui est préhistorique maintenant), alors préfères la version 2, pour être à jour ...
#include <winsock2.h> // inclut aussi <windows.h> et ce dernier devient donc optionnel
#include <windows.h> // optionnel si on utilise/inclut <winsock2.h>
tu peux aussi définir WIN32_LEAN_AND_MEAN avant l'inclusion de <windows.h> pour éviter l'inclusion de la version 1 de winsock mais avec <winsock2.h>, t'as rien à faire, sauf inclure ce fichier !
dans ceci: bool CDataQuery::GetAuthentification(char* User, char* Pass, CConnection* pClient)
plutôt que d'avoir 10,000 else, pourquoi ne pas utiliser une variable(bool)? tu retournes plus souvent false que true alors mets false par défaut(à l'initialisation) et changes pour true si besoin, comme ca, t'aura juste UN ->Free(...) au lieux de 20(même si le compilateur devrait pouvoir s'arranger pour mettre ca « correcte » derrière) ...
bool retval = false;
if ( cond1 )
{
if ( cond2 )
{
if ( cond3 )
{
retval = true;
}
}
else {
retval = true;
}
->Free(...); // juste UN Free()
}
return retval;
et tu pourrais utiliser cette méthode dans plusieurs de tes classes/méthodes/...
std::string ne t'interesse pas? très utile pourtant ...
en passant, en utilisant les *stream, dans ton CLog tu pourrais même surcharger l'opérateur << pour écrire dans ton fichier, CLog l; l << "ceci"; // par exemple
y'a pleins de choses que tu pourrais faire mais que t'as pas fait :P
en C++, autant y aller en C++/OO plutôt que C++/C
le C++ est un C OO alors utilises l'OO sinon retournes en C :}
les librairies, ajoutes les dans ton makefile ou dans les options du projet mais laisses tomber le #pragma, pour connaître les librairies utilisés/liés/.. à ton projet, faut voir dans les fichiers sources/options/etc., un endroit c'est plus ... simple ... pour ce qui est de la configuration(comme pour les libs/...) on fait pas ca dans les fichiers .c/.cpp/.h/.hpp/etc. mais dans les makefiles/options du projet/etc., c'est global au projet et pas spécifique a un fichier(il y a quand même des exceptions parfois) ...
c'est ce que j'ai remarqué des fichiers que j'ai regardé :}
bref voilà, ce sont mes commentaires, dans l'ensemble ca l'air d'être un bon projet(je l'ai pas testé/essayé), bonne continuation :}