<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Screenshot Programm läuft nicht.]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zwar danach gegoolet, aber was wirklich brauchbares nicht gefunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Hoffentlich weiß wer, welche lib fehlt.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &lt;stdio.h&gt;
#include &lt;wingdi.h&gt;
#include &lt;fstream.h&gt;

#define SCREENWIDTH GetSystemMetrics(SM_CXSCREEN)
#define SCREENHEIGHT GetSystemMetrics(SM_CYSCREEN)

using namespace std;

HBITMAP g_hDeskBmp;
HDC g_hMemDC;
int g_nDCdata;

int main()
{
/*capture desktop and store for later use*/
HDC hdcDesk;
hdcDesk=GetDC(HWND_DESKTOP); /*equivalent to hdcDesk=GetDC((HWND)0);*/
g_hMemDC=CreateCompatibleDC(0);
g_hDeskBmp=CreateCompatibleBitmap(hdcDesk, SCREENWIDTH, SCREENHEIGHT);
/*fill the bitmap with contents of desktop*/
g_nDCdata=SaveDC(g_hMemDC);
SelectObject(g_hMemDC,g_hDeskBmp);
BitBlt(g_hMemDC, 0, 0, SCREENWIDTH, SCREENHEIGHT,hdcDesk,0,0,SRCCOPY);

//......................................................................................

// get desktop window (but can be any window)
 HWND capture = GetDesktopWindow();
 if(!IsWindow(capture)) return 1;

 // get window dimensions
 RECT rect;
 GetWindowRect(capture, &amp;rect);

 size_t dx = rect.right - rect.left;
 size_t dy = rect.bottom - rect.top;

 // create BITMAPINFO structure
 // used by CreateDIBSection
 BITMAPINFO info;
 info.bmiHeader.biSize          = sizeof(BITMAPINFOHEADER);
 info.bmiHeader.biWidth         = dx;
 info.bmiHeader.biHeight        = dy;
 info.bmiHeader.biPlanes        = 1;
 info.bmiHeader.biBitCount      = 24;
 info.bmiHeader.biCompression   = BI_RGB;
 info.bmiHeader.biSizeImage     = 0;
 info.bmiHeader.biXPelsPerMeter = 0;
 info.bmiHeader.biYPelsPerMeter = 0;
 info.bmiHeader.biClrUsed       = 0;
 info.bmiHeader.biClrImportant  = 0;

 // a bitmap handle and a pointer its bit data
 HBITMAP bitmap = 0;
 BYTE*   memory = 0;

 // create bitmap
 HDC device = GetDC(capture);
 bitmap = CreateDIBSection(device, &amp;info, DIB_RGB_COLORS, (void**)&amp;memory, 0, 0);
 ReleaseDC(capture, device);
 if(!bitmap || !memory) return 1;

 // blit the contents of the desktop (winDC)
 // to the bitmap (selected in memDC)
 HDC winDC = GetWindowDC(capture);
 HDC memDC = CreateCompatibleDC(winDC);
 SelectObject(memDC, bitmap);
 BitBlt(memDC, 0, 0, dx, dy, winDC, 0, 0, SRCCOPY);
 DeleteDC(memDC);
 ReleaseDC(capture, winDC);

 char *buffer;
 sprintf(buffer,&quot;capture%d%d.bmp&quot;,dx,dy);
 // create bitmap file
 basic_ofstream&lt;char&gt; file(buffer, ios::binary);
 if(!file) { DeleteObject(bitmap); return 1; }

 // initialize bitmap file headers
 BITMAPFILEHEADER fileHeader;
 BITMAPINFOHEADER infoHeader;

 fileHeader.bfType      = 0x4d42;
 fileHeader.bfSize      = 0;
 fileHeader.bfReserved1 = 0;
 fileHeader.bfReserved2 = 0;
 fileHeader.bfOffBits   = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

 infoHeader.biSize          = sizeof(infoHeader);
 infoHeader.biWidth         = dx;
 infoHeader.biHeight        = dy;
 infoHeader.biPlanes        = 1;
 infoHeader.biBitCount      = 24;
 infoHeader.biCompression   = BI_RGB;
 infoHeader.biSizeImage     = 0;
 infoHeader.biXPelsPerMeter = 0;
 infoHeader.biYPelsPerMeter = 0;
 infoHeader.biClrUsed       = 0;
 infoHeader.biClrImportant  = 0;

 // save file headers
 file.write((char*)&amp;fileHeader, sizeof(fileHeader));
 file.write((char*)&amp;infoHeader, sizeof(infoHeader));

 // save 24-bit bitmap data
 int wbytes = (((24*dx + 31) &amp; (~31))/8);
 int tbytes = (((24*dx + 31) &amp; (~31))/8)*dy;
 file.write((char*)memory, tbytes);

 // delete bitmap
 DeleteObject(bitmap);
 bitmap = 0;
 memory = 0;

ReleaseDC(HWND_DESKTOP,hdcDesk);
RestoreDC(g_hMemDC,g_nDCdata);
DeleteDC(g_hMemDC);
DeleteObject(g_hDeskBmp);

// close the file

return 0;
//......................................................................................
}
</code></pre>
<pre><code>undefined reference to `CreateCompatibleDC@4'
undefined reference to `CreateCompatibleBitmap@12'
undefined reference to `SaveDC@4'
undefined reference to `SelectObject@8'
ndefined reference to `BitBlt@36'
undefined reference to `CreateDIBSection@24'
undefined reference to `CreateCompatibleDC@4'
undefined reference to `SelectObject@8'
undefined reference to `BitBlt@36'
undefined reference to `DeleteDC@4'
undefined reference to `DeleteObject@4'
undefined reference to `DeleteObject@4'
undefined reference to `RestoreDC@8'
undefined reference to `DeleteDC@4'
undefined reference to `DeleteObject@4'
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/223999/screenshot-programm-läuft-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 02:06:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223999.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Oct 2008 23:21:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Screenshot Programm läuft nicht. on Fri, 03 Oct 2008 23:21:13 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zwar danach gegoolet, aber was wirklich brauchbares nicht gefunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Hoffentlich weiß wer, welche lib fehlt.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &lt;stdio.h&gt;
#include &lt;wingdi.h&gt;
#include &lt;fstream.h&gt;

#define SCREENWIDTH GetSystemMetrics(SM_CXSCREEN)
#define SCREENHEIGHT GetSystemMetrics(SM_CYSCREEN)

using namespace std;

HBITMAP g_hDeskBmp;
HDC g_hMemDC;
int g_nDCdata;

int main()
{
/*capture desktop and store for later use*/
HDC hdcDesk;
hdcDesk=GetDC(HWND_DESKTOP); /*equivalent to hdcDesk=GetDC((HWND)0);*/
g_hMemDC=CreateCompatibleDC(0);
g_hDeskBmp=CreateCompatibleBitmap(hdcDesk, SCREENWIDTH, SCREENHEIGHT);
/*fill the bitmap with contents of desktop*/
g_nDCdata=SaveDC(g_hMemDC);
SelectObject(g_hMemDC,g_hDeskBmp);
BitBlt(g_hMemDC, 0, 0, SCREENWIDTH, SCREENHEIGHT,hdcDesk,0,0,SRCCOPY);

//......................................................................................

// get desktop window (but can be any window)
 HWND capture = GetDesktopWindow();
 if(!IsWindow(capture)) return 1;

 // get window dimensions
 RECT rect;
 GetWindowRect(capture, &amp;rect);

 size_t dx = rect.right - rect.left;
 size_t dy = rect.bottom - rect.top;

 // create BITMAPINFO structure
 // used by CreateDIBSection
 BITMAPINFO info;
 info.bmiHeader.biSize          = sizeof(BITMAPINFOHEADER);
 info.bmiHeader.biWidth         = dx;
 info.bmiHeader.biHeight        = dy;
 info.bmiHeader.biPlanes        = 1;
 info.bmiHeader.biBitCount      = 24;
 info.bmiHeader.biCompression   = BI_RGB;
 info.bmiHeader.biSizeImage     = 0;
 info.bmiHeader.biXPelsPerMeter = 0;
 info.bmiHeader.biYPelsPerMeter = 0;
 info.bmiHeader.biClrUsed       = 0;
 info.bmiHeader.biClrImportant  = 0;

 // a bitmap handle and a pointer its bit data
 HBITMAP bitmap = 0;
 BYTE*   memory = 0;

 // create bitmap
 HDC device = GetDC(capture);
 bitmap = CreateDIBSection(device, &amp;info, DIB_RGB_COLORS, (void**)&amp;memory, 0, 0);
 ReleaseDC(capture, device);
 if(!bitmap || !memory) return 1;

 // blit the contents of the desktop (winDC)
 // to the bitmap (selected in memDC)
 HDC winDC = GetWindowDC(capture);
 HDC memDC = CreateCompatibleDC(winDC);
 SelectObject(memDC, bitmap);
 BitBlt(memDC, 0, 0, dx, dy, winDC, 0, 0, SRCCOPY);
 DeleteDC(memDC);
 ReleaseDC(capture, winDC);

 char *buffer;
 sprintf(buffer,&quot;capture%d%d.bmp&quot;,dx,dy);
 // create bitmap file
 basic_ofstream&lt;char&gt; file(buffer, ios::binary);
 if(!file) { DeleteObject(bitmap); return 1; }

 // initialize bitmap file headers
 BITMAPFILEHEADER fileHeader;
 BITMAPINFOHEADER infoHeader;

 fileHeader.bfType      = 0x4d42;
 fileHeader.bfSize      = 0;
 fileHeader.bfReserved1 = 0;
 fileHeader.bfReserved2 = 0;
 fileHeader.bfOffBits   = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

 infoHeader.biSize          = sizeof(infoHeader);
 infoHeader.biWidth         = dx;
 infoHeader.biHeight        = dy;
 infoHeader.biPlanes        = 1;
 infoHeader.biBitCount      = 24;
 infoHeader.biCompression   = BI_RGB;
 infoHeader.biSizeImage     = 0;
 infoHeader.biXPelsPerMeter = 0;
 infoHeader.biYPelsPerMeter = 0;
 infoHeader.biClrUsed       = 0;
 infoHeader.biClrImportant  = 0;

 // save file headers
 file.write((char*)&amp;fileHeader, sizeof(fileHeader));
 file.write((char*)&amp;infoHeader, sizeof(infoHeader));

 // save 24-bit bitmap data
 int wbytes = (((24*dx + 31) &amp; (~31))/8);
 int tbytes = (((24*dx + 31) &amp; (~31))/8)*dy;
 file.write((char*)memory, tbytes);

 // delete bitmap
 DeleteObject(bitmap);
 bitmap = 0;
 memory = 0;

ReleaseDC(HWND_DESKTOP,hdcDesk);
RestoreDC(g_hMemDC,g_nDCdata);
DeleteDC(g_hMemDC);
DeleteObject(g_hDeskBmp);

// close the file

return 0;
//......................................................................................
}
</code></pre>
<pre><code>undefined reference to `CreateCompatibleDC@4'
undefined reference to `CreateCompatibleBitmap@12'
undefined reference to `SaveDC@4'
undefined reference to `SelectObject@8'
ndefined reference to `BitBlt@36'
undefined reference to `CreateDIBSection@24'
undefined reference to `CreateCompatibleDC@4'
undefined reference to `SelectObject@8'
undefined reference to `BitBlt@36'
undefined reference to `DeleteDC@4'
undefined reference to `DeleteObject@4'
undefined reference to `DeleteObject@4'
undefined reference to `RestoreDC@8'
undefined reference to `DeleteDC@4'
undefined reference to `DeleteObject@4'
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1593188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1593188</guid><dc:creator><![CDATA[Screen0]]></dc:creator><pubDate>Fri, 03 Oct 2008 23:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot Programm läuft nicht. on Fri, 03 Oct 2008 23:54:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#pragma comment(lib, &quot;gdi32.lib&quot;)
</code></pre>
<p>sowas steht in der MSDN man <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1593191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1593191</guid><dc:creator><![CDATA[ascda]]></dc:creator><pubDate>Fri, 03 Oct 2008 23:54:45 GMT</pubDate></item><item><title><![CDATA[Reply to Screenshot Programm läuft nicht. on Sat, 04 Oct 2008 17:07:20 GMT]]></title><description><![CDATA[<p>Ich habs mal einbisschen geändert, aber es läuft dennoch nicht, egal was ich hinzufüge.<br />
Ich nutze den Code::Blocks</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;string&gt;

{

          HDC hdcScreen;

          HBITMAP hbmScreen;

          //---------------Bitmap Informationen

          BITMAPINFO infobmp;

          infobmp.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);

          infobmp.bmiHeader.biWidth = 1024;

          infobmp.bmiHeader.biHeight = 768;

          infobmp.bmiHeader.biPlanes = 1;

          infobmp.bmiHeader.biBitCount = 24;

          infobmp.bmiHeader.biCompression = 0;

          infobmp.bmiHeader.biSizeImage = 0;

          infobmp.bmiHeader.biXPelsPerMeter = 0;

          infobmp.bmiHeader.biYPelsPerMeter = 0;

          infobmp.bmiHeader.biClrUsed = 0;

          infobmp.bmiHeader.biClrImportant = 0;

          int* bitmap = new int[1024*768*3];

          BITMAPFILEHEADER bfheader;

          bfheader.bfType = 19778;

          bfheader.bfSize = sizeof(BITMAPFILEHEADER) + 1024*768*3 + sizeof(BITMAPINFOHEADER);

          bfheader.bfReserved1 = 0;

          bfheader.bfReserved2 = 0;

          bfheader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

          //Bitmap -----------------------      Informationen

          hdcScreen = GetWindowDC(pScreen);

          hbmScreen = CreateCompatibleBitmap(hdcScreen,1024,768);

          // temporärer DC

          HDC hdcTemp = CreateCompatibleDC( hdcScreen );

          // Bitmap reinselektieren

          HBITMAP hbmOld = (HBITMAP)SelectObject( hdcTemp, hbmScreen );

          // Inhalt von Desktop übertragen

          BitBlt( hdcTemp, 0, 0, 1024, 768, hdcScreen, 0, 0, SRCCOPY );

          int iResult = GetDIBits(hdcTemp,hbmScreen,0,768,bitmap,&amp;infobmp,DIB_RGB_COLORS);

          // aufräumen

          SelectObject( hdcTemp, hbmOld );

          DeleteObject( hbmScreen );

          DeleteDC( hdcTemp );

          HANDLE hfile = CreateFile( Path,GENERIC_WRITE,0,0,OPEN_ALWAYS,0,0);

          //Datei Schreiben

          DWORD word;

        WriteFile(hfile,&amp;bfheader,14,&amp;word,NULL);

          WriteFile(hfile,&amp;infobmp,40,&amp;word,NULL);

          WriteFile(hfile,bitmap,1024*768*3,&amp;word,NULL);

            ReleaseDC(pScreen,hdcScreen);

          CloseHandle(hfile);

          delete[] bitmap;

      }
</code></pre>
<blockquote>
<p>undefined reference to <code>CreateCompatibleDC@4' undefined reference to</code>CreateCompatibleBitmap@12'<br />
undefined reference to <code>SaveDC@4' undefined reference to</code>SelectObject@8'<br />
ndefined reference to <code>BitBlt@36' undefined reference to</code>CreateDIBSection@24'<br />
undefined reference to <code>CreateCompatibleDC@4' undefined reference to</code>SelectObject@8'<br />
undefined reference to <code>BitBlt@36' undefined reference to</code>DeleteDC@4'</p>
</blockquote>
<p>Compilerbedingt habe ich nicht die stdxt.h drinn. Oder wie die auch immer heißt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1593409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1593409</guid><dc:creator><![CDATA[fragr]]></dc:creator><pubDate>Sat, 04 Oct 2008 17:07:20 GMT</pubDate></item></channel></rss>