Win32 problème de liens...

Win32 problème de liens... - C++ - Programmation

Marsh Posté le 08-04-2006 à 21:31:29    

Bonjour, bon alors je suis en train d'essayer de me mettre a l'API Win32 mais j'ai quelques soucis. Voilà déja le code pour créer une bête fenetre :
 

Code :
  1. #include<windows.h>
  2. LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
  3. int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevInstance, LPSTR lpCmdLine, int nCmdShow)
  4. {
  5.    HWND hwnd;
  6.    MSG msg;
  7.    WNDCLASS wc;
  8.    wc.style=0;
  9.    wc.lpfnWndProc=MainWndProc;
  10.    wc.cbClsExtra=0;
  11.    wc.cbWndExtra=0;
  12.    wc.hInstance=hinstance;
  13.    wc.hIcon=LoadIcon(NULL, IDI_APPLICATION);
  14.    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
  15.    wc.lpszMenuName=NULL;
  16.    wc.lpszClassName="MaWinClass";
  17.    if(!RegisterClass(&wc)) return false;
  18.    hwnd = CreateWindow("MaWinClass", "titre", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, NULL, NULL, hinstance, NULL);
  19.    if(!hwnd) return false;
  20.    ShowWindow(hwnd, nCmdShow);
  21.    UpdateWindow(hwnd);
  22.    while(GetMessage(&msg, NULL, 0, 0))
  23.    {
  24.    TranslateMessage(&msg);
  25.    DispatchMessage(&msg);
  26.    }
  27.    return (int)msg.wParam;
  28. }
  29. LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  30. {
  31. switch(uMsg)
  32. {
  33. case WM_CREATE :
  34.  return 0;
  35. case WM_DESTROY:
  36.  PostQuitMessage(0);
  37.  return 0;
  38. default:
  39.  return DefWindowProc(hwnd, uMsg, wParam, lParam);
  40. }
  41. }


 
j'ai vu sur MSDN qu'il fallait ajouter User32.lib dans les liens. Donc jusque là pas de problème mais quand je l'ai ajouté j'ai eu une autre erreur de liens :

Citation :


MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup


bon pour l'info je suis sous visual c++ express edition (et j'ai bien téléchargé le platform SDK)
vous auriez une idée du lien qu'il faut que j'ajoute ?


Message édité par Amonchakai le 09-04-2006 à 08:33:42
Reply

Marsh Posté le 08-04-2006 à 21:31:29   

Reply

Marsh Posté le 08-04-2006 à 21:47:40    

Salut,
Quand tu as fait ton projet, tu as du choisir "projet console" au lieu de "projet win32"?

Reply

Marsh Posté le 08-04-2006 à 21:57:49    

Ok, c'était ça. Mais maintenat j'ai un autre problème : quand je veut lancer l'exécutable rien ne ce passe... tu a une idée ???  
Et Merci de m'avoir répondu !!!

Reply

Marsh Posté le 08-04-2006 à 22:16:37    

Tu cree une fonction qui
- ouvre un fichier "monprog.log"
- y ecris le texte passer en parametre
- ferme le fichier
 
Ensuite fais un appel a cette fonction a differents endroit clé avec des parametre explicite:

Code :
  1. log("etape 1 passée" );
  2. ...
  3. log("etape 2 passée" );
  4. ...
  5. log("etape 3 passée" );
  6. ...


 
Et tu verras ou ca coince (normalement!)


Message édité par breizhbugs le 08-04-2006 à 22:17:12
Reply

Marsh Posté le 09-04-2006 à 08:31:01    

Ok, je vais faire ça. Mais est-il pas possible d'avoir une fenêtre dos qui tourne derrière et où l'on ferait simplement des std::cout<< ça serait plus simple que d'écrire sur un fichier... (mais bon je vais quand même voir ta méthode...)


Message édité par Amonchakai le 09-04-2006 à 08:32:04
Reply

Marsh Posté le 09-04-2006 à 09:44:22    

Bon, alors j'ai essayé et là c'est le drame : WinMain ne se lance même pas  :fou:  
Donc je me dit que je me suis peut-être encore trompé sur le type de projet (oui, la première fois j'avais choisit dans le "type de projet" Win32 et ensuite dans "visual installed template" j'avais pris "win32 console Application" Mais comme je n'ai pas de "windows application" dans ce type de projet je suis allé voir dans "général" et j'ai choisit "empty projet" et c'est là que j'ai finalement réussit a compiler (mais ça marche pas : il ne lance même pas WinMain). Mais là je viens de voir qu'il y a marqué "installed template" ça veut dire qu'il faut encore enstaller quelque chose ??? (car pour le moment le seul endroit où j'ai vu Window application c'est quand j'ai créé une console pour Win32 mais le bouton était grisé et donc il n'y avait pas moyen de le choisir...
Vous aurriez une idée de ce qu'il faut installer en plus ??? (je continue a chercher sur MSDN mais un petit coup de main ne serait pas de refus...)

Reply

Marsh Posté le 09-04-2006 à 11:50:11    

Salut,
Moi j'ai visual C++ .net 2002,
Je fais fichier/nouveau/projet
Ensuite dans "type de projet", je choisi "projet visual C++", dans "modèles", je chois "projet win32", j'ai un wizard qui se lance, dans "parametres de l'application", j'ai 4 possibilités:
- application console
- application windows
- dll
- bibliotheque statique
 
Je peut aussi dire - en plus - au wizard que je mon projet est "vide", cad a dire qu'il ne me genere pas les fichiers
 
Je peux pâs t'aider plus, je n'ai pas ton logiciel, mais il a surement de l'aide sur comment l'utiliser
("?/sommaire/visual studio.net/visualc++/creation et gestion de projets visual c++" en ce qui me concerne)

Reply

Marsh Posté le 09-04-2006 à 13:42:09    

Merci pour tes reponces mais moi tu vois en fait j'ai tout comme toi sauf a la fin j'ai pas  
- application windows
- dll
et j'ai regardé dans le répertoire de visual et il n'y a pas une seule aide pour la création d'un projet...
pour le moment je vai sur MSDN et la je trouve des explication. Pour le moment j'ai trouve ça : http://msdn2.microsoft.com/fr-fr/l [...] S.80).aspx
Et j'ai fait tout ce qu'ils disent mais ça ne marche toujours pas... enfin ne désespérons pas... :)

Reply

Marsh Posté le 10-04-2006 à 16:13:29    

Bon, voilà que je viens de trouver celà sur MSDN :
http://msdn2.microsoft.com/fr-fr/library/ydxtaww6.aspx
dans lequel ils disent (je cite) : "Si vous installez le kit de développement Platform SDK, le développement Windows n'est pris en charge pour les applications Win32 natives que jusqu'à un certain point (par exemple, vous ne serez pas en mesure de créer un projet Win32 à partir de l'IDE de Visual C++ Express)."  :cry:  
Bon en gros c'est pas la peine que je continue a me galérer a trouver pourquoi je n'y arrive pas. C'est tout simplement parce que c'est pas possible non??

Reply

Marsh Posté le 10-04-2006 à 16:25:11    

Amonchakai a écrit :

Bon, voilà que je viens de trouver celà sur MSDN :
http://msdn2.microsoft.com/fr-fr/library/ydxtaww6.aspx
dans lequel ils disent (je cite) : "Si vous installez le kit de développement Platform SDK, le développement Windows n'est pris en charge pour les applications Win32 natives que jusqu'à un certain point (par exemple, vous ne serez pas en mesure de créer un projet Win32 à partir de l'IDE de Visual C++ Express)."  T'as lu le lien qui se trouve ici a suivre dans la page que tu cites?


Message édité par breizhbugs le 10-04-2006 à 16:25:47
Reply

Marsh Posté le 10-04-2006 à 16:25:11   

Reply

Marsh Posté le 10-04-2006 à 16:50:13    

oui, pourquoi ???

Reply

Marsh Posté le 10-04-2006 à 17:57:38    

CORECTION !!! Je viens enfin de réussir !!!  :bounce:  
 
Bon alors la solution je l'ai trouvé sur MSDN (qui une fois de plus a montré sa grande utilité...)
voilà le lien : http://msdn.microsoft.com/vstudio/ [...] usingpsdk/
 
le tout réside dans l'étape 5, que j'ai uniquement trouvé sur la version anglaise de MSDN...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed