Drukowanie bitmapy

problemy z tworzeniem aplikacji graficznych oraz audio i wideo

Re: Drukowanie bitmapy

Nowy postprzez Cyfrowy Baron » wtorek, 8 czerwca 2010, 14:00

Tu akurat sciezka jest typu wstring


OK.



Ale tego:

Kod: Zaznacz cały
Graphics::TBitmap* bmp = new Graphics::TBitmap;
bmp->Width = 960;
bmp->Height = 1359*3; // określam rozmiar
bmp->Assign((*itbitmap));


to już nie rozumiem. Co Ty właściwie chcesz zrobić? Nie wrzucisz tablicy do obiektu typu TBitmap, a jeżeli wrzucasz pojedynczy element z tablicy, to gdzie określiłeś, który to jest element?



Patrząc na Twój kod widzę, że używasz tylko jednej i tej samej bitmapy przechowywanej w trzech elementach tablicy. PO CO? Skoro możesz używać jednego elementu?

Kod: Zaznacz cały
  String tekst[] = {"6", "7", "8"};

  Graphics::TBitmap *tmpBmp = new Graphics::TBitmap();
  tmpBmp->LoadFromFile( sciezka + "pict.bmp");

  Graphics::TBitmap* newimage = new Graphics::TBitmap;
  newimage->Width = 960;
  newimage->Height = 1359*3; // określam rozmiar

  for(int i = 0; i < 3; i++)
  {
   newimage->Canvas->Draw(0, i*1359, tmpBmp);
   newimage->Canvas->TextOut(70, ((i + 1) * 480) tekst[i]);
  }


efekt identyczny jak ten który chcesz osiągnąć, a o ile prościej.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez Cyfrowy Baron » wtorek, 8 czerwca 2010, 14:03

polymorphism napisał(a):Jeśli dobrze rozumiem (a raczej pamiętam) działanie metody Assign, to nie służy ona do kopiowania bitmap (w sensie operacji rastrowych), [...]


Fakt. Zauważyłem co prawda, że wrzuca tam cała tablicę jednak umknęło mi, że użycie Assign ustawi rozmiar obiektu na rozmiar przechowywanej bitmapy. Gdyby najpierw użył Assing, a potem ustawił rozmiar bitmapy to by zadziałało, ale nie miało by to za grosz sensu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez duf » środa, 9 czerwca 2010, 08:14

Cyfrowy Baron napisał(a):
Ale tego:

Kod: Zaznacz cały
Graphics::TBitmap* bmp = new Graphics::TBitmap;
bmp->Width = 960;
bmp->Height = 1359*3; // określam rozmiar
bmp->Assign((*itbitmap));


a jeżeli wrzucasz pojedynczy element z tablicy, to gdzie określiłeś, który to jest element?

Jest określony zaraz na samym początku:
Kod: Zaznacz cały
bitmapvector.push_back( new Graphics::TBitmap );
itbitmap = bitmapvector.end()-1;




Faktycznie jest ten sam efekt i prościej.
Kod: Zaznacz cały
for( int i = 0; i < 3; i++ )
{
   newbmp->Canvas->Draw( 0, i*1359, tmpBmp );
   newbmp->Canvas->TextOut( 70, ((i + 1) * 73), tekst[i] );
   newbmp->Canvas->TextOut( 70, ((i + 1) * 480), tekst[i] );

       newImage->Canvas->Draw( 0, i*1359, tmpBmp ); // "newImage" od TImage*
}

newImage widzi wszystkie trzy elementy. Tylko, że problem leży znowu w wydruku.
Kod: Zaznacz cały
Printer()->BeginDoc();                          //left, top, right, bottom
Printer()->Canvas->CopyRect(Rect(0, 0, Printer()->PageWidth, Printer()->PageHeight), newbmp->Canvas, Rect(0, 0, newbmp->Width, newbmp->Height));
Printer()->EndDoc();

Wychodzi czysta kartka. Nie rozumiem dlaczego. Sprawdziłem wysokość newbmp i wynosi 4077 czyli właściwie. Ustawiłem parametr Printer()->PageHeight na tą wysokość i niestety cały czas brak druku.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez Cyfrowy Baron » środa, 9 czerwca 2010, 12:02

A u mnie ten kod działa:

Kod: Zaznacz cały

void __fastcall TForm1
::Button2Click(TObject *Sender)
{
 String tekst[] = {"6", "7", "8"};

 Graphics::TBitmap *tmpBmp = new Graphics::TBitmap();
 tmpBmp->LoadFromFile("c:\\pict.bmp");

 Graphics::TBitmap* newimage = new Graphics::TBitmap;
 newimage->Width = 960;
 newimage->Height = 1359*3; // określam rozmiar

 for(int i = 0; i < 3; i++)
 {
  newimage->Canvas->Draw(0, i*1359, tmpBmp);
  newimage->Canvas->TextOut( 70, ((+ 1) * 73), tekst[i]);
  newimage->Canvas->TextOut( 70, ((+ 1) * 480), tekst[i] );
 }

 Printer()->BeginDoc();                          //left, top, right, bottom
 Printer()->Canvas->CopyRect(Rect(0, 0, Printer()->PageWidth, Printer()->PageHeight),
                 newimage->Canvas, Rect(0, 0, newimage->Width, newimage->Height));
 Printer()->EndDoc();
}
 



Stajesz tutaj jednak przed innego rodzaju problemem. Cokolwiek napiszesz na Canvas bitmapy przestaje to być tekstem, a staje się elementem graficznym więc drukarka podczas drukowania bitmapy zbiorczej nie skaluje tekstu, gdyż go nie ma. Przeskalowaniu ulega cała bitmapa zbiorcza, więc napisany tekst będzie mały, chyba, że przed napisaniem go na bitmapie zbiorczej ustawisz dla tekstu odpowiednio dużą czcionkę.

Niemniej jednak tekst przestaje być tekstem, przez co na wydruku po przeskalowaniu - a funkcja CopyRect skaluje bitmapę na płótno drukarki -wydrukowany tekst będzie wyglądał nieładnie. Rozwiązaniem mogłoby być rysowanie tekstu bezpośrednio na płótnie drukarki:


Kod: Zaznacz cały

void __fastcall TForm1
::Button2Click(TObject *Sender)
{
 String tekst[] = {"6", "7", "8"};

 Graphics::TBitmap *tmpBmp = new Graphics::TBitmap();
 tmpBmp->LoadFromFile("c:\\pict.bmp");

 Printer()->Orientation = poLandscape; // ustawienie drukowania w poziomie
 Printer()->BeginDoc();


 for(int i = 0; i < 3; i++)
 {
  TRect pRect;
  pRect.left   = i * (Printer()->PageWidth/3);
  pRect.right  = pRect.left + (Printer()->PageWidth/3);
  pRect.top    = 0;
  pRect.bottom = Printer()->PageHeight;


  Printer()->Canvas->StretchDraw(pRect, tmpBmp);

  Printer()->Canvas->TextOut(pRect.left + 70, 73,  tekst[i]);
  Printer()->Canvas->TextOut(pRect.left + 70, 480, tekst[i]);
 }

 Printer()->EndDoc();
}
 


Pozycja tekstu jest tutaj określona jawnie, więc po zmianie rozdzielczości drukowania zmieni się również pozycja tekstu względem grafiki siebie nawzajem, ale można to naprawić używając współczynnika do określania pozycji tekstu opierając się na wybranej rozdzielczości drukowania. W przykładzie zamiast rozdzielczości użyję szerokości płótna drukarki:

Kod: Zaznacz cały

void __fastcall TForm1
::Button2Click(TObject *Sender)
{
 String tekst[] = {"6", "7", "8"};

 Graphics::TBitmap *tmpBmp = new Graphics::TBitmap();
 tmpBmp->LoadFromFile("c:\\pict.bmp");

 Printer()->Orientation = poLandscape; // ustawienie drukowania w poziomie
 Printer()->BeginDoc();

 int ws = Printer()->PageHeight / 2400;// współczynnik

 int X = 70 * ws;

 int Y1 = 73 * ws;
 int Y2 = 480 * ws;

 for(int i = 0; i < 3; i++)
 {
  TRect pRect;
  pRect.left   = i * (Printer()->PageWidth/3);
  pRect.right  = pRect.left + (Printer()->PageWidth/3);
  pRect.top    = 0;
  pRect.bottom = Printer()->PageHeight;


  Printer()->Canvas->StretchDraw(pRect, tmpBmp);

  Printer()->Canvas->TextOut(pRect.left + X, Y1,  tekst[i]);
  Printer()->Canvas->TextOut(pRect.left + X, Y1, tekst[i]);
 }

 Printer()->EndDoc();
}
 

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
duf
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez duf » środa, 9 czerwca 2010, 13:07

Dziękuję. Drukuje nie tak jak chciałem ale drukuje. Zmieniłem orientację druku na pionową i próbowałem zmodyfikować kod żeby drukować trzy strony, bez powodzenia. Czy istnieje taka możliwość?
Dopracowałem dorysowywanie kolejnych elementów obrazów do newbmp stosując funkcję Drw() i w ten sposób mogę tworzyć długą bitmapę, którą następnie poprzez prosty zabieg
Kod: Zaznacz cały
newimage->Canvas->Draw( 0, 0, newbmp );

przerysowuję na TImage. Czy nie prościej byłoby zrobić wydruk kilkustronicowy z TImage? Czy to się da zrobić?
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez Cyfrowy Baron » środa, 9 czerwca 2010, 15:39

Drukowanie na trzech stronach:

Kod: Zaznacz cały

void __fastcall TForm1
::Button2Click(TObject *Sender)
{
     
String tekst[] = {"6""7""8"};

     
Graphics::TBitmap *tmpBmp = new Graphics::TBitmap();
     
tmpBmp->LoadFromFile("c:\\pict.bmp");

     
Printer()->Orientation poPortrait// ustawienie drukowania w pionie
     
Printer()->BeginDoc();

     
int ws Printer()->PageHeight 2400;// współczynnik

     
int X 70 ws;

     
int Y1 73 ws;
     
int Y2 480 ws;

     for(
int i 03i++)
     {
      
TRect pRect;
      
pRect.left   Printer()->PageWidth;
      
pRect.right  pRect.left Printer()->PageWidth;
      
pRect.top    0;
      
pRect.bottom Printer()->PageHeight;


      
Printer()->Canvas->StretchDraw(pRecttmpBmp);

      
Printer()->Canvas->TextOut(pRect.left XY1,  tekst[i]);
      
Printer()->Canvas->TextOut(pRect.left XY1tekst[i]);

      
Printer()->NewPage(); // nowa strona drukarki
     
}

     
Printer()->EndDoc();
}
 


Resztę sobie dopasuj, gdyż nie wiem już co Ty właściwie chcesz zrobić.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez duf » środa, 9 czerwca 2010, 17:20

Cyfrowy Baron napisał(a):Resztę sobie dopasuj, gdyż nie wiem już co Ty właściwie chcesz zrobić.

Przepraszam, że tak mące ale dopiero teraz zauważyłem, że inaczej zachowują się dwie różne drukarki podłączone do innych komputerów. Stąd te pytania.
Na OKI np ta prosta instrukcja nie daje żadnego druku:
Kod: Zaznacz cały
TImage* newimage = new TImage(newform);
newimage->Width = 950;
newimage->Height = 1360;
newimage->Proportional = true;

newimage->Canvas->TextOut( 100, 100, "AAAAAAAAAAAAA" );

Printer()->BeginDoc();                        
Printer()->Canvas->CopyRect(Rect(0, 0, Printer()->PageWidth, Printer()->PageHeight), newimage->Canvas, Rect(0, 0, newimage->Width, newimage->Height));
Printer()->EndDoc();

Podczas gdy na HP jest widoczny tekst.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez Cyfrowy Baron » środa, 9 czerwca 2010, 17:53

Nie mam pojęcia czemu tak jest. Możliwe, że to nie wina drukarki, lecz na OKI masz ustawioną wysoką rozdzielczość drukowania, a na HP niską i dlatego na OKI tekstu nie widać, gdyż po przeskalowaniu jest bardzo mały.

Po pierwsze - o czym już pisałem - tekst nadrukowany na bitmapę, a potem przeniesiony do drukarki, tekstem już nie jest lecz elementem graficznym, przez co po przeniesieniu na drukarkę podlega skalowaniu razem z grafiką.

Po wtóre - o czym również pisałem - po zmianie rozdzielczości drukowania zmieni się również pozycja tekstu względem grafiki jak i siebie nawzajem, ale można to naprawić używając współczynnika do określania pozycji tekstu opierając się na wybranej rozdzielczości drukowania.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez duf » piątek, 11 czerwca 2010, 09:53

Doszedłem do miejsca, z którego brakuje mi już pomysłu. Problem leży po stronie drukarki. Tak jak już pisałem z HP drukuje a z Canona ( nie z OKI ) nie drukuje.
Żeby drukować z Canona muszę bitmapę zapisać na dysk i ponownie ją wczytać co jest nonsensem. Co więcej drukowanie mogę przeprowadzić tylko z instrukcją Printer()->Canvas->CopyRect
Kod: Zaznacz cały
for( int i = 0; i < 3; i++ )
{
  newbmp->Canvas->Draw( 0, 0, tmpBmp );
  newbmp->Canvas->TextOut( 70, 73,  tekst[i] );
  newbmp->Canvas->TextOut( 70, 480, tekst[i] );

  newbmp->SaveToFile("sad.bmp");    // ??
  newbmp->LoadFromFile("sad.bmp");//?

  Printer()->BeginDoc();                        
  Printer()->Canvas->CopyRect(Rect(0, 0, Printer()->PageWidth, Printer()->PageHeight), newbmp->Canvas, Rect(0, 0,   newbmp->Width, newbmp->Height));
  Printer()->EndDoc();
}

Czy można to obejść? Próbowałem również poprzez Assign() ale bez rezultatu.
Żeby nie powiększać bitmapy newbmp do rozmiarów astronomicznych zmieniłem kod tak żeby drukować za każdym razem po zmianie tekstu[] dlatego użyłem stałą początkową pozycję wpisywania bitmapy
Kod: Zaznacz cały
newbmp->Canvas->Draw( 0, 0, tmpBmp );

Myślałem jeszcze o pozostawieniu pierwotnej wersji zapełniania bitmapy a następnie wycinania odcinków poprzez
Kod: Zaznacz cały
newbmp->Canvas->CopyRect(Rect(0, 0, Printer()->PageWidth, Printer()->PageHeight), newbmp->Canvas, Rect(0, i*1360,   newbmp->Width, (i+1)*1360 ));

i drukowaniu. Myślę jednak że tak jak wspomniał Cyfrowy Baron taka bitmapa zajmuje mnóstwo pamięci podręcznej co zresztą widać po rozmiarach zapisywanych plików .bmp.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez polymorphism » piątek, 11 czerwca 2010, 10:15

Tu coś, co obaj przeoczyliście:

    C++Builder canvases use device-dependent bitmaps to implement the Draw, StretchDraw, or CopyRect methods. Because of this, you can’t use these methods with most printers. Instead, to create graphic images on the printer’s canvas, create a device-independent bitmap and draw it directly to the canvas’s Handle property.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez duf » piątek, 11 czerwca 2010, 10:22

polymorphism napisał(a):Tu coś, co obaj przeoczyliście:

    ... create a device-independent bitmap and draw it directly to the canvas’s Handle property.

A jak to zrobić?
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez polymorphism » piątek, 11 czerwca 2010, 10:33

Spróbuj skopiować bitmapę funkcją SetDIBitsToDevice lub StretchDIBits. PixelFormat bitmapy ustaw na pf24bit lub pf32bit, coby mieć dostęp do pamięci bitmapy via ScanLine.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez Cyfrowy Baron » piątek, 11 czerwca 2010, 15:41

Używałem kiedyś Canona i nie miałem takich problemów. Co do propozycji polymorphism, to masz tutaj link:

http://raz-soft.com/c-builder/printing-a-tbitmap-with-stretchdibits/

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
duf
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez duf » sobota, 12 czerwca 2010, 08:45

Dzięki za pomoc. Próbuję kompilować ten kod ale dostaje takie errory:
Kod: Zaznacz cały
HDC h_dc = TheBitmap->Canvas->Handle;
int bmp_w = TheBitmap->Width, bmp_h = TheBitmap->Height;

HDC h_mem_dc = ::CreateCompatibleDC (h_dc);
HBITMAP h_mem_bmp = ::CreateCompatibleBitmap (h_dc, bmp_w, bmp_h);
HBITMAP h_old_bmp = ::SelectObject (h_mem_dc,h_mem_bmp); // <-- tutaj
.............................................................................

[BCC32 Error] File1.cpp(158): E2034 Cannot convert 'void *' to 'HBITMAP__ *'

Kod: Zaznacz cały
if ( ::GetDeviceCaps (TheBitmap->Canvas->Handle, RASTERCAPS) & RC_PALETTE )
{
   pal = static_cast<LOGPALETTE*>(malloc (sizeof (LOGPALETTE) + (sizeof (PALETTEENTRY) * 256)));
   memset (pal, 0, sizeof (LOGPALETTE) + (sizeof (PALETTEENTRY) * 256));
   pal->palVersion = 0×300; // <-- tutaj
   pal->palNumEntries = ::GetSystemPaletteEntries(TheBitmap->Canvas->Handle, 0, 256, pal->palPalEntry);

   if (pal->palNumEntries != 0)
   {
      h_pal = ::CreatePalette (pal);
      h_old_pal = ::SelectPalette (h_mem_dc, h_pal, false);
      is_pal_dev = true;
   }
   else free (pal);
}

[BCC32 Error] File1.cpp(169): E2379 Statement missing ;

Kod: Zaznacz cały
// adjust bitmap dimensions for the printer device:
int PrnXRes= GetDeviceCaps(PrinterCanvas->Handle, LOGPIXELSX); //Get dpi of printer along width
int PrnYRes= GetDeviceCaps(PrinterCanvas->Handle, LOGPIXELSY); //Get dpi of printer along height
bmp_w= floor(((double)TheBitmap->Width / (double)Screen->PixelsPerInch) * (double)PrnXRes);
bmp_h= floor(((double)TheBitmap->Height / (double)Screen->PixelsPerInch) * (double)PrnYRes);

[BCC32 Error] File1.cpp(252): E2268 Call to undefined function 'floor'
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
Podziękował : 17
Otrzymał podziękowań: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Drukowanie bitmapy

Nowy postprzez polymorphism » sobota, 12 czerwca 2010, 09:02

Ech, duf. Przecież te błędy są banalne, wystarczy przeczytać ze zrozumieniem ich treść. (tylko nie pisz, że jesteś początkującym, bo już trochę na tych forach siedzisz, więc pewne rzeczy powinieneś wiedzieć)

[BCC32 Error] File1.cpp(158): E2034 Cannot convert 'void *' to 'HBITMAP__ *'

Zastosuj rzutowanie...

[BCC32 Error] File1.cpp(169): E2379 Statement missing ;

A ten '×' w 0x300 to na pewno 'x'?

[BCC32 Error] File1.cpp(252): E2268 Call to undefined function 'floor'

Nie taki undefined -> floor.

Spróbuj może metody, o której pisałem wcześniej. Z dużym prawdopodobieństwem zadziała, a i kod będzie prostszy.
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
duf
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia stronaNastępna strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje multimedialne, graficzne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości

cron