C++ -> Visual C++

C++ -> Visual C++ - C++ - Programmation

Marsh Posté le 12-01-2003 à 13:59:58    

g fé un prog en C++ mé le probleme c ke les printf renvoient sur une fenetre dos et c pa top, j'aimerais bien faire des belles fenetres windows, mé le probleme c ke j connai rien en Visual C++ ...
 
Donc si on pouvais me renseigner a propo de tuto de VC++ pour adapter un code de C++ en VC++, ce serai cool  
 
thk

Reply

Marsh Posté le 12-01-2003 à 13:59:58   

Reply

Marsh Posté le 12-01-2003 à 14:37:01    

Je ne sais pas si tu trouveras un tut pour ça. Qu'est ce qu'il fait ton prog ? De toutes manières, il y a de fortes chances pour que tu doives apprendre le fonctionnement de VC++ (ou la programmation Windows) si tu veux arriver à tes fins.


---------------
Le site de ma maman
Reply

Marsh Posté le 12-01-2003 à 14:42:13    

Citation :

g fé un prog en C++ mé le probleme c ke les printf

 :heink:

Reply

Marsh Posté le 12-01-2003 à 15:14:06    

il faut que tu crees une fenetre (en VC++ donc fcts win32) que tu y ajoutes un control EDIT par exemple et que remplaces tous tes printf par une fonction qui va afficher dans ce controle ...comme dit cherrytree, tu es obligé de te mettre a la programmation windows (le systeme de fenetre / controle, la programmation evenementielle / les messages etc ...)
 
Mais rassure toi, ce que tu veux faire n est ni dur ni long a faire

Reply

Marsh Posté le 13-01-2003 à 11:18:26    

pour remplacer un printf c'est MessageBox

Reply

Marsh Posté le 13-01-2003 à 12:41:56    

++Taz a écrit :

Citation :

g fé un prog en C++ mé le probleme c ke les printf

 :heink:  


 
 
char * peut etre ?

Reply

Marsh Posté le 13-01-2003 à 12:45:55    

farib a écrit :


 
 
char * peut etre ?


 
nan c un acharné du stdart, alors les printfs dans du C++ ca le fait monter en tension :D

Reply

Marsh Posté le 13-01-2003 à 13:08:54    

chrisbk a écrit :


 
nan c un acharné du stdart, alors les printfs dans du C++ ca le fait monter en tension :D


 
 
nan ++Taz est le programmeur le plus porc de Prog@HFR  :ange:

Reply

Marsh Posté le 13-01-2003 à 14:19:39    

farib a écrit :


 
 
nan ++Taz est le programmeur le plus porc de Prog@HFR  :ange:  

:pfff: Je le bats. :p


Message édité par Cherrytree le 13-01-2003 à 14:20:02

---------------
Le site de ma maman
Reply

Marsh Posté le 13-01-2003 à 17:33:01    

Cherrytree a écrit :

:pfff: Je le bats. :p  

:lol:  :lol:  :lol:

Reply

Marsh Posté le 13-01-2003 à 17:33:01   

Reply

Marsh Posté le 13-01-2003 à 17:42:06    

pareil que ++taz  :heink:


---------------
mon NAS/HTPC Q11 H55N-USB3, Core i3 http://forum.hardware.fr/hfr/Hardw [...] m#t7599404
Reply

Marsh Posté le 14-01-2003 à 23:34:24    

désolé d'avoir été si long a répondre mé me voilà :)
 
donc, en fait c clair : y fo ke je mette a la prog en VC paske g enfin réussi a comprendre commen on fé application win32 mé c clair ke je comprend rien :(, y propose un exemple "hello world" mé j compren rien a tte les lignes de codes .... (g juste réussi a trouver où il mettai le message ...)
 
donc, en bref, où c ke je peu trouver un tuto juste pour faire du "fenetrage" ou alor (ce ki serai encore mieu) un code source avec juste les lignes essentielles
 
merci

Reply

Marsh Posté le 15-01-2003 à 00:29:11    

ded jay a écrit :

désolé d'avoir été si long a répondre mé me voilà :)
 
donc, en fait c clair : y fo ke je mette a la prog en VC paske g enfin réussi a comprendre commen on fé application win32 mé c clair ke je comprend rien :(, y propose un exemple "hello world" mé j compren rien a tte les lignes de codes .... (g juste réussi a trouver où il mettai le message ...)
 
donc, en bref, où c ke je peu trouver un tuto juste pour faire du "fenetrage" ou alor (ce ki serai encore mieu) un code source avec juste les lignes essentielles
 
merci


 
 
le plus simple sous vc++, c de dl Qt  :ange:


---------------
Bitcoin, Magical Thinking, and Political Ideology
Reply

Marsh Posté le 15-01-2003 à 23:21:25    

c koi Qt ?

Reply

Marsh Posté le 15-01-2003 à 23:35:18    

Une lib graphique développée par TrollTech, pour Windows et *Nix. ça a la côte en ce moment.


---------------
Le site de ma maman
Reply

Marsh Posté le 16-01-2003 à 18:16:52    

et où c ke je peu trouver ca ? (avec les explications de préférences)

Reply

Marsh Posté le 16-01-2003 à 19:20:39    

ded jay a écrit :

et où c ke je peu trouver ca ? (avec les explications de préférences)

Sur le site de TrollTech par exemple ! Non ? Hein ? :sarcastic:  
Bon et sinon [:google] c'est pas fait pour les chiens.


---------------
Le site de ma maman
Reply

Marsh Posté le 16-01-2003 à 22:50:24    

attention qt sous win n'est pas libre je crois ...
GTK+ l'est lui :na:

Reply

Marsh Posté le 25-01-2003 à 15:37:06    

bon alor voilà, g fé un code hyper basic juste pour comprendre en me servant d'un otre code source basic et ca donne ca :
 
defines.h
 
#define IDM_EXIT 100
#define IDM_TEST    200
#define IDM_ABOUT   300
 
#define IDC_TEXT    101
#define IDC_EDIT    102
#define IDC_BTN     102
 
fenetre.rc
 
#include <windows.h>
#include "defines.h"
 
MYAPP               ICON    DISCARDABLE  "DeusEx.ico"
 
MYAPP MENU DISCARDABLE  
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit",                   IDM_EXIT
    END
    MENUITEM "Test!",                       IDM_TEST
    POPUP "&Help"
    BEGIN
        MENUITEM "&About ...",    IDM_ABOUT
    END
END
 
ABOUTBOX DIALOG 22, 17, 171, 43
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
CAPTION "Listing 3-2"
FONT 8, "MS Sans Serif"
{
     CONTROL "MyApp", -1, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 3, 2, 16, 16
     CONTROL "Generic Application", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 28, 4, 100, 8
     CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 116, 26, 50, 14
}

Reply

Marsh Posté le 25-01-2003 à 15:45:39    

et le "main" :
 
/*************************** librairies */
 
#include <windows.h>
#include "defines.h"
 
/************************ variables globales */
 
HINSTANCE hInst;
 
LPCTSTR lpszAppName = "Mon application à moi";
LPCTSTR lpszTitle   = "mes clips ke je grave";
 
/********************** definition des fonctions */
 
ATOM   MyRegisterClass (HINSTANCE hInstance);
BOOL   InitInstance (HINSTANCE, int);
 
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About (HWND, UINT, WPARAM, LPARAM);
 
/***************************** main */
 
int APIENTRY WinMain( HINSTANCE hInstance,
                      HINSTANCE revInstance,
                      LPTSTR lpCmdLine,
                      int nCmdShow )
{
 MSG     msg;
 
 if (!MyRegisterClass ( hInstance )) return false;
 
 if (!InitInstance ( hInstance, nCmdShow )) return false;
 
 while( GetMessage ( &msg, NULL, 0, 0) )  
  {
                TranslateMessage ( &msg );  
                DispatchMessage ( &msg );    
  }
 
    return msg.wParam;
}
 
/************************ enregistre la Classe */
 
ATOM MyRegisterClass ( HINSTANCE hInstance )
{
 WNDCLASSEX wcex;
 
 wcex.cbSize  = sizeof ( WNDCLASSEX );  
 
 wcex.style  = CS_HREDRAW | CS_VREDRAW;
 wcex.lpfnWndProc = ( WNDPROC ) WndProc;
 wcex.cbClsExtra  = 0;
 wcex.cbWndExtra  = 0;
 wcex.hInstance  = hInstance;
 wcex.hIcon  = LoadIcon ( hinstance, lpszAppName );
 wcex.hCursor  = LoadCursor ( NULL,IDC_ARROW );
 wcex.hbrBackground = ( HBRUSH ) ( COLOR_WINDOW+1 );
 wcex.lpszMenuName = lpszAppName;
 wcex.lpszClassName = lpszAppName;
 wcex.hIconSm  = LoadIcon ( wcex.hInstance, lpszAppName );
 
 return RegisterClassEx ( &wcex );
}
 
/****************** creer la fenetre principale */
 
BOOL InitInstance ( HINSTANCE hInstance, int nCmdShow )
{
   HWND hWnd;
 
   hInst = hInstance;
 
   hWnd = CreateWindow ( lpszAppName,
                         lpszTitle,
                         WS_OVERLAPPEDWINDOW,
                         CW_USEDEFAULT, 0,
    CW_USEDEFAULT, 0,
    NULL,
    NULL,
    hInstance,
    NULL );
 
   if ( !hWnd ) return false;
 
   ShowWindow ( hWnd, nCmdShow );
 
   UpdateWindow ( hWnd );
 
   return true;
}
 
/************************ fenetre principale */
 
LRESULT CALLBACK WndProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
static HWND hText = NULL;
static HWND hEdit = NULL;
static HWND hBtn  = NULL;
 
 TCHAR szHello [10] = "hello";
 LoadString ( hInst, 10, szHello, 10 );
 
 switch ( uMsg )  
     {
        case WM_COMMAND :
                switch ( LOWORD ( wParam ) )
                {
                 case IDM_TEST :
                        hText = CreateWindow  ("STATIC", "Static Text", WS_CHILD | WS_VISIBLE | SS_LEFT,
                                10, 10, 100, 15,
                                hWnd,
                                ( HMENU ) IDC_TEXT,
                                hInst, NULL );
 
                        hEdit = CreateWindow ( "EDIT", "",WS_CHILD | WS_VISIBLE | ES_LEFT | WS_BORDER,
                                110, 8, 100, 20,
                                hWnd,
                                ( HMENU ) IDC_EDIT,
                                hInst, NULL );
 
                        hBtn = CreateWindow  
( "BUTTON", "Push button", WS_CHILD | WS_VISIBLE | S_PUSHBUTTON,
                               50, 50, 100, 32,
                               hWnd,
                               ( HMENU ) IDC_BTN,
                               hInst, NULL );
                        break;
 
                 case IDM_ABOUT :
                        DialogBox ( hInst, "AboutBox", hWnd,  
                                   ( DLGPROC ) About );
                        break;
 
                 case IDM_EXIT :
                        DestroyWindow ( hWnd );
                        break;
                }
                break;
       
        case WM_DESTROY :
                PostQuitMessage ( 0 );
                break;
 
        default :
            return DefWindowProc ( hWnd, uMsg, wParam, lParam );
     }
 
     return 0L;
}
 
/***************************** boite de dialogue ABOUT */
 
LRESULT CALLBACK About( HWND hDlg,            
                        UINT message,        
                        WPARAM wParam,        
                        LPARAM lParam )
{
     switch ( message )  
     {
         case WM_INITDIALOG:  
                 return true;
 
         case WM_COMMAND:                                
                 if ( LOWORD ( wParam ) == IDOK || LOWORD ( wParam ) == IDCANCEL )  
                 {
                         EndDialog (hDlg, true );      
                         return true;
                 }
                 break;
     }
 
     return false;  
}
 
/**************************************************************/

Reply

Marsh Posté le 25-01-2003 à 15:47:50    

et ce code m'affiche juste la fenetre principale sans afficher la barre de menu alor k'elle est codée et appelée ....
 
je compren pa
 
si kelkun pouvai me dire où se trouve l'erreur ...

Reply

Marsh Posté le 25-01-2003 à 16:36:18    

ded jay a écrit :

et ce code m'affiche juste la fenetre principale sans afficher la barre de menu alor k'elle est codée et appelée ....
 
je compren pa
 
si kelkun pouvai me dire où se trouve l'erreur ...


 
wcex.lpszMenuName = lpszAppName;  :non:  
 
wcex.lpszMenuName = "MYAPP";

Reply

Marsh Posté le 25-01-2003 à 16:37:46    

trictrac a écrit :

attention qt sous win n'est pas libre je crois ...  
GTK+ l'est lui :na:  

 
c'est pas "je crois", c'est sur  
mais entre gtk+ et Qt y'en a un c'est de la merde, donc c'est vite vue...
 
edit : ro putain j'avais pas matte le code source au dessus.
c'est vraiment immonde !
et c'est pas du C++ (on en est tres tres loin) c'est du win32SDK en C
 
quand je dis que gtk c'est pas le top, c'est tout de meme 100x plus propre et mieux pense que le win32SDK.


Message édité par tanguy le 25-01-2003 à 16:43:28
Reply

Marsh Posté le 25-01-2003 à 16:41:14    

tanguy a écrit :


c'est pas je crois, c'est sur
et puis entre gtk+ et Qt y'en a un c'est de la merde, donc c'est vite vue...


 
Pour des applis non commerciales qt est bien gratuit ?

Reply

Marsh Posté le 25-01-2003 à 16:48:19    

hellbilly a écrit :

 
Pour des applis non commerciales qt est bien gratuit ?  


 
franchement c'est pas complique il suffit d'aller sur le site web de trolltech et de LIRE la doc.
T'as de la chance c'est 100x mieux foutu que la MSDN et tu trouveras la reponse en 2min
 
sous Unix c'est sous double licence QPL et GNU GPL != GNU LGPL utilise par Gtk
 
sous windows
Qt 2 c'est gratuit pour les applis non commerciales et illimites dans le temps
Qt 3 est gratuit mais limite a 30j
 
http://trolltech.com

Reply

Marsh Posté le 25-01-2003 à 16:59:11    

tanguy a écrit :


 
franchement c'est pas complique il suffit d'aller sur le site web de trolltech et de LIRE la doc.
T'as de la chance c'est 100x mieux foutu que la MSDN et tu trouveras la reponse en 2min
 
sous Unix c'est sous double licence QPL et GNU GPL != GNU LGPL utilise par Gtk
 
sous windows
Qt 2 c'est gratuit pour les applis non commerciales et illimites dans le temps
Qt 3 est gratuit mais limite a 30j
 
http://trolltech.com


 
Mais j'y suis deja aller... je parlais evidemment de la version 2.3 (que je viens tout juste d'installer). On m'en dit tellement de bien !

Reply

Marsh Posté le 25-01-2003 à 17:20:42    

hellbilly a écrit :

 
 
Mais j'y suis deja aller... je parlais evidemment de la version 2.3 (que je viens tout juste d'installer). On m'en dit tellement de bien !


oui Qt c'est bien (bon c'est pas parfait non plus hein)
l'utiliser avec Visual, c'est du gachi
et utiliser la version 2.3 (ca doit bien avoir 2 ans) en sachant que la version 3.1 est sortie avec enormement d'ameliorations ca doit surement etre tres frustrant, m'enfin c'est toujours le meme principe, y'a des fonctionnalites en plus qui ne remettent pas en cause le passe (=compatibilite).
 
pour ma part j'ai resolu le probleme :
j'utilise gcc qui est bien meilleur que Visual au niveau du C++
j'ai Qt sous licence GPL en derniere version
j'ai les derniers outils de developpement : debuggeur, editeur, IDE, memory leak checker et des tonnes de librairies, d'outils et d'exemple de programmes a ma disposition.
Malheureusement, il y a un veritable probleme a cette solution :
"pas assez chere mon fils !"
 
M'enfin chacun son choix, et je respecte profondement le choix des autres :lol:

Reply

Marsh Posté le 25-01-2003 à 22:19:18    

HALLELUIA mes freres !!!
 
le but de ce post est enfin atteint :)
 
je tient a remercier hellbilly ki me fut d'une grande aide ds son dernier post  :love:  
 
merci encore

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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