Jak vypsat ukazatel na pole do labelu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak vypsat ukazatel na pole do labelu – C / C++ – Fórum – Programujte.comJak vypsat ukazatel na pole do labelu – C / C++ – Fórum – Programujte.com

 

Didika0
Duch
16. 2. 2013   #1
-
0
-

Dobrý den, snažím se programovat v Microsoft Visual C++. Mám konzolovou aplikaci, která vypisuje velikost BMP obrázku z jeho hlavičky, je funkční a zdrojový kód vypadá takto: 
 


#include "stdafx.h"
#include "iostream"
#include "stdlib.h"
#include "stdio.h"

using namespace std;

unsigned char* data = NULL;

unsigned char* readBMP(char* filename)
{
    int i;
    FILE* f = fopen(filename, "rb");
    unsigned char info[54];
    fread(info, sizeof(unsigned char), 54, f); // read the 54-byte header

    // extract image height and width from header
    int width = *(int*)&info[18];
    int height = *(int*)&info[22];

	cout << width << endl;
	cout << height << endl;

    int size = 3 * width * height;
    data = new unsigned char[size]; // allocate 3 bytes per pixel
    fread(data, sizeof(unsigned char), size, f); // read the rest of the data at once
    fclose(f);

    for(i = 0; i < size; i += 3)
    {
            unsigned char tmp = data[i];
            data[i] = data[i+2];
            data[i+2] = tmp;
    }

    return data;
}




int main(array<System::String ^> ^args)
{

	readBMP("D:/pokus.bmp");

	for(int i = 0; i< 100; i++)
	{
		cout << *(char*)&data[i];
	}



    system("pause");
    return 0;
}

Potřebuji vědět, jak v okenní aplikaci vypíši to samé, ale do labelu.

Předem děkuji za odpověď.

Nahlásit jako SPAM
IP: 85.70.125.–
Radek Chalupa
~ Redaktor
+1
Super člen
16. 2. 2013   #2
-
0
-

#1 Didika
Ve WinAPI není žádný "label", ale ovládací prvek "static", který může být typu "text". Když budeš mít v "okenní aplikaci" dialog, tak pomocí API funkce SetDlgItemText nastavíš text tohoto prvku, parametrem je klasický céčkovský nulou ukončený textový řetězec.

Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 213.220.211.–
zlz
~ Anonymní uživatel
634 příspěvků
17. 2. 2013   #3
-
0
-

Na WinAPI se nikdo neptal.

#1 Didika
Šetři čas a nervy a na C++/CLI se vykašli. Jestli chceš používat .NET, tak přejdi na C#.

char c = 'A';
label1->Text = gcnew String(c, 1);
label2->Text = Char::ToString(c);
label3->Text = String::Concat(label1->Text, label2->Text);
Nahlásit jako SPAM
IP: 80.188.216.–
Radek Chalupa
~ Redaktor
+1
Super člen
17. 2. 2013   #4
-
0
-

#3 zlz
Pokud ta aplikace má pouze zjistit a vypsat velikost bitmapy, tak dělat ji v .NET je mírně řečeno úsměvné ... 

Nahlásit jako SPAM
IP: 213.220.211.–
Didika0
Duch
17. 2. 2013   #5
-
0
-

#4 Radek Chalupa

No jako ona má vypsat i barevnou hloubku, rozlišení a velikost... Ráda bych to psala v něčem snažším, ale mám to dané zadáním.

Nahlásit jako SPAM
IP: 85.70.125.–
Radek Chalupa
~ Redaktor
+1
Super člen
17. 2. 2013   #6
-
0
-

#5 Didika
Pak by stálo za úvahu použít třídu Bitmap, která má metody na zjištění všech možných informací o grafickém formátu obrázku. Protože na jednu stranu píšeš že potřebuješ zjistit barevnou hloubku, ale v kódu "natvrdo" předpokládáš 24bpp.... Takhle musíš přesně znát strukturu bmp souboru a "počítat se vším".

Bitmap* b = new Bitmap(L"cesta_k_souboru.bmp");
b-> .... // metody třídy bitmap
delete b;

v NET to bude Bitmap^ b = gcnew Bitmap(....

Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 213.220.211.–
Didika0
Duch
17. 2. 2013   #7
-
0
-

#6 Radek Chalupa
Děkuji Vám za rady, zkusím to nějak promyslet. Nejspíš to budu vypisovat tímto způsobem:
 

label1->Text =  System::Convert::ToString(width);

a nebudu řešit nějaký ukazatel nebo tak něco.

Nahlásit jako SPAM
IP: 85.70.125.–
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, 16 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ý