Zaklad pro programovani ve visual c++ a winApi a cout – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zaklad pro programovani ve visual c++ a winApi a cout – C / C++ – Fórum – Programujte.comZaklad pro programovani ve visual c++ a winApi a cout – C / C++ – Fórum – Programujte.com

 

Petr
~ Anonymní uživatel
746 příspěvků
27. 1. 2015   #1
-
0
-

   


#include <windows.h>
#include "stdafx.h"
#include <winsock.h>
#include "Resource.h"
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
/* Pro mysql */
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <mysql.h>

#pragma comment(lib,"libmysql.lib")

using namespace std;

int Windowsizex = 400;
int Windowsizey = 500;

#define CPPCONN_LIB_BUILD True 
#define _AppName TEXT("KAE Setup")

MYSQL *mysql;



void log(char error[255]){
	time_t t;
	struct tm *pt;
	t = time(NULL);
    pt = localtime(&t);
	
	FILE *log;
	log = fopen("log.txt","a+");
	fprintf(log," %i.%i.%i, %i:%i:%i ",pt->tm_mday, pt->tm_mon + 1, pt->tm_year + 1900, pt->tm_hour, pt->tm_min, pt->tm_sec,pt->tm_isdst ? "let" : "zim" );
	fprintf(log,error);
	fclose(log);
	
}



bool YesNo (HWND Okno){
	
	TCHAR *msg=TEXT("Opravdu zavřít? ");
	if ( MessageBox(Okno, msg, _AppName,
      MB_YESNO | MB_ICONQUESTION) != IDYES )
    return 0;
}

void Menu (HWND Okno){

}

INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
  switch ( uMsg )
  {
    case WM_COMMAND:
      switch ( LOWORD(wParam) )
      {
        case IDOK:
          EndDialog(hwndDlg, IDOK);
          break;
        case IDCANCEL:
          EndDialog(hwndDlg, IDCANCEL);
          break;
      }
      break;
  }
  return FALSE;
}


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
    TCHAR szAppName[] = TEXT("WinApi KOD");
    HWND hWnd;
    MSG msg;
    WNDCLASSEX wc;
    log("Start \n"); 
		

    wc.cbSize = sizeof(wc);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hIconSm = NULL;
    wc.hCursor = (HCURSOR)LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
    wc.lpszClassName = szAppName;
    
    RegisterClassEx(&wc);
    
    hWnd = CreateWindowEx(0,szAppName,
                        szAppName,
                        WS_OVERLAPPEDWINDOW,
                        200,
                        200,
                        Windowsizex,
                        Windowsizey,
                        NULL,
                        NULL,
                        hInstance,NULL);
    ShowWindow(hWnd, iCmdShow);
    UpdateWindow(hWnd);
    
    while(GetMessage(&msg, NULL, 0, 0))
    {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
    }
    return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{	
		
		switch(message)
        {
		
		case WM_CLOSE:
			  if (YesNo(hWnd) ==0){ 
			  return 0;
			}
			  else{
				  cout << "Zapis";
				  system("pause");
				  log("Konec \n");
				  PostQuitMessage(0);
			  }
        }
        return DefWindowProc(hWnd, message, wParam, lParam);
}

Dobry den

Udelal Jsem si malinky zakladni programek v C++ WinApi viz vyse a funguje dle predstav..ale nejak jsem ve vizualku nepochopil vypsani si promenne do konzole Konkretne radky:

~~cout << "Zapis";
      system("pause");
      log("Konec \n");
      PostQuitMessage(0);
Vse provede..podle me aj cout ale nikde ho nevidim vypsany..i proto jsem si udelal svuj log do txt, ale tohle nejde takhle delat vecne..Takze pro mnohe asi jednoduche ale me to nedochazi..Proc se mi pro vypsani cout neotevre nespusti konzole a cout my nevypise,i kdyz system pauze ceka na stisknuti klavesnice a konzole se normalne otevre?

Prechazim z pythonu a PHP a tam jsem s vypsanim promenych problemy nemel. Hlavne v Pythonu..Pygameu..jsem problemy nemel..ale tam je to trochu jinak.

Muze mi nekdo osvetlit poradit

Strycka googla jsem opravdu pouzil, ale bud jsem blbej a nedochazi mi to nebo delam chybu

Diky

Nahlásit jako SPAM
IP: 79.170.252.–
Petr
~ Anonymní uživatel
746 příspěvků
27. 1. 2015   #2
-
0
-

#1 Petr

Jeste mensi poznamka..jiste jste jsi vsimli i radku o MySQL ale to je jen priprava..nemuzu se poustet do databaze kdyz jsem tak blbej a nevypisu si ani blbou promenou Tak se prosim nedivte ze dalsi radky do  tadabaze zatim nezasahuji

Nahlásit jako SPAM
IP: 79.170.252.–
KIIV
~ Moderátor
+43
God of flame
27. 1. 2015   #3
-
0
-

#2 Petr
jelikoz mas projekt pro okna (tj. ne konzolovy), tak se konzolove okno nevytvari. Tim padem cout nema kam vypisovat.

U system("pause") je to jina - spustis EXTERNI program jmenem pause.exe, ktery konzolovy je a tim padem se v konzoli i otevre.

Logy si pak musis psat bud do nejakyho mema, ktere zobrazis, kdyz budes chtit, nebo string listu, nebo si terminal otevrit taky .. (jen nevim, jestli ten cout bude fungovat jen s tim)

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Petr
~ Anonymní uživatel
746 příspěvků
27. 1. 2015   #4
-
0
-

#3 KIIV

Diky chapu, tohle jsem i tusil. Takze budto pole ktere si pak vypisu do textaku nebo neco podobneho..

Jen se mi zdalo, nebo jsem nekde zahledl, ze se to da udelat tak, ze konzoli zapnes, ale bud to nemuzu najit nebo to dost dobre nejde, ale i tak diky za vysvetleni.

panove nema nekdo neco odskouseneho nebo jak si to zapnout? Pokud ne uz na to kaslete

Slovi klasika, stejne to musim zvladnout sam :) 

Diky

Nahlásit jako SPAM
IP: 79.170.252.–
KIIV
~ Moderátor
+43
God of flame
27. 1. 2015   #5
-
0
-
Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Petr
~ Anonymní uživatel
746 příspěvků
27. 1. 2015   #6
-
0
-

#5 KIIV

Dik jde se studovat

Nahlásit jako SPAM
IP: 79.170.252.–
liborb
~ Redaktor
+18
Guru
27. 1. 2015   #7
-
0
-

Ve WinAPI aplikaci je možné používat i něco jiného, například OutputDebugString, kdy výpisy se směřují do okna Output ve Visual Studiu nebo do jiné aplikace, která je zaregistrována pro odchyt těchto zpráv (například aplikace DebugView). Oproti konzoli tu má tu výhodu, že když tu aplikaci na zachytávání sám nespustíš, tak se nic nikam nevypisuje.

A pokud by si trval na konzoli, tak už to někdo řešil. Třeba to bude i fungovat :).

Nahlásit jako SPAM
IP: 188.75.135.–
oxidián0
Grafoman
3. 2. 2015   #8
-
0
-

Asi bych na tvém místě začal s konzolovým programem. Ten výpis je pro konzolu, takže se ti to nemůže vypsat do takového okna.

Nahlásit jako SPAM
IP: 78.45.199.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý