begin process at 2012 05 28 20:55:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

encapsuler api (sans mfc) dans une seule classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

encapsuler api (sans mfc) dans une seule classe

lundi 15 novembre 2004 à 17:00:57 | encapsuler api (sans mfc) dans une seule classe

mannix

Bonjour à tous, voilà je débute en c++ mais j'ai quand meme reussi à programmer une api qui fonctionne !

mais mon probleme est que ce doit etre un soft "embarqué" et pour cela je dois incorporer le source de cette petite api au source du robot sous forme d'une classe

Comment dois-je m'y prendre svp?

merci d'avance pour vos reponses...

PS : j'utilise vc++
lundi 15 novembre 2004 à 18:57:05 | Re : encapsuler api (sans mfc) dans une seule classe

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Tu veux inclure le code des APIs Windows dans un programme embarqué ? Si c'est cela je te répond déjà que c'est impossible.

Pour avoir l'expérience de travailler sur des systems embarqués tu as les libs de ton DSP ou autre proc de ton system à utilisé.

@+
Arnotic,
Admin CS, MVP Visual C++
mardi 16 novembre 2004 à 10:00:56 | Re : encapsuler api (sans mfc) dans une seule classe



Salut Arnotic, je vai m'expliquer un peu sur mon projet car il n'est (je le pense) pas impossible. en effet, je travaille sur un robot piloté en haut niveau par un prog en c++. Ce programme possede un noyau auquel on peut ajouter des fonctionnalités comme un "recorder" qui permet d'enregistrer les commandes de vitesse ,angle (...) envoyées.
mon api à moi est un simulateur ie il reproduit les commandes et emule les capteurs; il renvoie donc des infos qui doivent correspondre à celles que reçoit le noyau... bref voila pour le contexte

ce n'est pas moi qui est programmé le coeur du prog mais on(mes boss) m'a dit qu'il serait preferable d'encapsuler mon api sous forme d'une seule classe qu'on "grefferait" au noyau pour faire des simulations...
je sais que sous linux il existe des commandes du genre 'fork' qui permettent de lancer des proc en parallele et d'établir des liens entre eux mais sous windows ....

en résumé (pour ne pas faire trop long) je voudrai savoir si tu as des exemples en tete (ou des liens) qui me permettraient d'en savoir un peu plus à ce sujet.

Merci de ton attention, @ plus Mannix
mardi 16 novembre 2004 à 10:15:18 | Re : encapsuler api (sans mfc) dans une seule classe

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Tu peux en effet encapsuler TES fonctions sous forme de classe se qui te permettra de les réutilisers facilement.

Concernant les gestions des process et des threads sous Windows va voir sur msdn les fonctions CreateProcess(), CreatePipe et ses compagnons ainsi que CreateThread(), ...

http://msdn.microsoft.com/library/

@+
Arnotic,
Admin CS, MVP Visual C++
mardi 16 novembre 2004 à 14:13:21 | Re : encapsuler api (sans mfc) dans une seule classe

BruNews

Administrateur CodeS-SourceS
CreateThread() est contre indique quand on utilise des classes, il faut utiliser _beginthreadex() pour que la memoire soit correctement geree.
Richter explique cela en details:
http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

ciao...
BruNews, MVP VC++
mercredi 17 novembre 2004 à 11:31:49 | Re : encapsuler api (sans mfc) dans une seule classe

mannix

Merci à tous les deux, je vais me plonger là dedans.
Je donnerai des nvelles quand j'aurai avancé.

@+ Mannix
jeudi 18 novembre 2004 à 16:15:48 | Re : encapsuler api (sans mfc) dans une seule classe

mannix

Bonjour,
j'ai un probleme avec la fonction _beginthreadex.
J'ai 1 erreur à la compilation :

'&' : illegal operation on bound member function expression

voici mon code (pour tester la fonction)



j'ai créé une classe simulator et dans simulator.cpp il y a :



#include <windows.h>
#include <stdio.h>
#include <process.h>

#include "Simulator.h"

Simulator::Simulator()
{

}

Simulator::~Simulator()
{

}

unsigned int __stdcall Simulator::SimProc(LPVOID)
{
HWND hwnd;
MessageBox(hwnd,"thread","essai",MB_OK);
}

void Simulator::startsim()
{
hThread = (HANDLE) _beginthreadex ( NULL , 0 , &SimProc , NULL , 0 , &threadID ) ;
}



et dans simulator.h :



class Simulator
{
public:
unsigned int __stdcall SimProc (LPVOID);
Simulator();
virtual ~Simulator();
HANDLE hThread;
HANDLE hEvent;
unsigned int threadID;
void startsim();

};



je ne suis pas un chef dans le maniement des classes et j'ai beau chercher, je ne vois pas ce qu'il veut me signifier par "fonction membre attachée".

je voudrai savoir si vous savez comment gerer ce type d'erreur.

Merci de vos réponses
jeudi 18 novembre 2004 à 16:27:36 | Re : encapsuler api (sans mfc) dans une seule classe

BruNews

Administrateur CodeS-SourceS
Simulator::SimProc doit etre declaree 'static' car compilo doit connaitre son adresse. N'oublie pas de retourner une valeur.

ciao...
BruNews, MVP VC++
jeudi 18 novembre 2004 à 16:43:29 | Re : encapsuler api (sans mfc) dans une seule classe

mannix


merci pour l'info ça marche mais maintenant y'a un probleme pendant le link :

Linking...


Simulator.obj : error LNK2001: unresolved external symbol "public: static unsigned int __stdcall Simulator::SimProc(void *)" (?SimProc@Simulator@@SGIPAX@Z)
LIBCMTD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/essai thread2.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

essai thread2.exe - 3 error(s), 0 warning(s)


est-ce un probleme de librairie ?? j'ai essayé de rajouter libcmt.lib ou msvcrt.lib mais c'est pire (conflit avec libcmtd.lib)!

Merci pour ton attention BruNews


jeudi 18 novembre 2004 à 16:53:22 | Re : encapsuler api (sans mfc) dans une seule classe

BruNews

Administrateur CodeS-SourceS
A ce point ça devient mystique, faudrait etre devant pour regler le prob, desole.

ciao...
BruNews, MVP VC++

1 2

Cette discussion est classée dans : classe, mfc, api, seule, encapsuler


Répondre à ce message

Sujets en rapport avec ce message

Utiliser la classe MFC CHtmlEditCtrl [ par appstmd ] Salut !Quelqu'un sait-il comment on fait pour spécifier le contenu d'un contrôle CHtmlEditCtrl sans passer par une adresse Internet ou un fichier HTML MFC ou API? [ par payen ] salut a tous,juste une petite question : pour programmer une appli graphique MDI, les MFC sont mieux adaptées que les API, non? RichEdit et OLE ... [ par Nebula ] Salut à tous !Je voudrais insérer des fichiers bitmap dans un richedit, et il faut apparement passer par OLE (si quelqu'un connait une autre méthode, API [ par LordBob ] Salut a tous,voila je programme des petites application windows en MFC, mais je voudrait savoir le faire avec les API et sans MFC. Ma question est don Ajouter une Classe avec les MFC [ par hm1964 ] Bonjour,Je suis sur un programme utilisant les MFC de VC++6.Tout marche bien, sauf que depuis que j'ai voulu créer ma propre classe (qui se trouve dan aie aie aie API MFC c URGENT help [ par haribo ] slt a tousg besoin de savoir comment on utilise l'api VFW. j'aurai besoin d1 process ou bien d1 code pour afficher le contenu de ma webcam. C pour mon API Win 32 et classe SysListView32 dans fonction CreateWindowEx [ par djeauh ] Bonjour à tous je suis nouveau sur le site et j'ai une petite question. Dans un de mes anciens programme en WIN32 j'ai besoins de créer un controle li [API][WIN32] Enregistrement de classe de fenêtre [ par Jeffray ] Bonjour,J'ai un problème pour enregistrer une classe de fenêtre.J'utilise GetClassInfoEx() pour extraire les infos de la classe EDIT créée par Windows classe equivalente de Cstring [ par tdeco ] SalutDans le cadre d'un projet de portage en C++ , j'ai la contrainte de ne pas utiliser de MFC or la source précédente est bourrées de MFC du type Cs Imprimer un bitmap sans MFC ( API Win32 ) [ par bebel6 ] Bonjour à tous tout d'abord !Alors voila le bin'z :J'aimerais pouvoir imprimer une image avec vsiualc 6 sans l'aide des MFC, j'arrive deja à imprimer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales