<?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[AVIs mit vfw.h erstellen]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche jetzt schon seit einer Woche einen Fehler in meinem C++-Code zu finden, in dem ich einen Film vom Bildschirm aufnehmen und in einer avi-Datei speichern würde. Das alles versuche ich mit der avifil32.dll (vfw.h).<br />
Meinen Fehler habe ich schon bis auf folgende Zeile schieben können (indem ich Messageboxen vor und nach den Befehl gestellt habe):<br />
AVIStreamSetFormat(pstream,0,(LPVOID)&amp;bi,bi.biSize);</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">#pragma comment(lib, &quot;Vfw32.lib&quot;)
#include &lt;Windows.h&gt;
#include &lt;time.h&gt;
#include &lt;stdio.h&gt;
#include &lt;vfw.h&gt; 

struct BITs
{
    byte* bits;
};

int main(int args,char** arg)
{
    //Variablen
    char* datei;
    int fehler=0,vidfps,sltime=1000;
    int screenw,screenh,screenx,screeny;
    HDC sourcedc,destdc;
    HBITMAP hbmp;
    clock_t timer;

    AVIFileInit();

    //Parameter
    if (args&lt;=6) return -1;
    datei=arg[1];
    screenx=(int)arg[2];
    screeny=(int)arg[3];
    screenw=(int)arg[4];
    screenh=(int)arg[5];
    vidfps=(int)arg[6];

    //Vorbereiten
    sltime/=vidfps;
    sourcedc=GetDC(0);
    destdc=CreateCompatibleDC(sourcedc);
    hbmp=CreateCompatibleBitmap(sourcedc,screenw,screenh);
    SelectObject(destdc,hbmp);

    PAVIFILE pfile;
    AVIFileOpen(&amp;pfile,datei,0x00001000,0);
    AVISTREAMINFO asi;
    asi.fccType=1935960438;
    asi.fccHandler=1129730893;
    asi.dwScale=1;
    asi.dwRate=vidfps;
    asi.dwQuality=10000;
    asi.rcFrame.left=screenx;
    asi.rcFrame.top=screeny;
    asi.rcFrame.right=screenx+screenw;
    asi.rcFrame.bottom=screeny+screenh;

    PAVISTREAM pstream;
    AVIFileCreateStream(pfile,&amp;pstream,&amp;asi);

    int stride=((screenw*(32/8)+3)&amp;(~3));

    BITMAPINFOHEADER bi;
    bi.biSize=sizeof(bi);//40
    bi.biWidth=screenw;
    bi.biHeight=screenh;
    bi.biPlanes=1;
    bi.biBitCount=24;
    bi.biSizeImage=stride*screenh;

    MessageBox(NULL,&quot;Ja!&quot;,&quot;Klappt es bis hier?&quot;,MB_OK);
    AVIStreamSetFormat(pstream,0,(LPVOID)&amp;bi,bi.biSize);
    MessageBox(NULL,&quot;Nein!&quot;,&quot;Klappt es bis hier?&quot;,MB_OK); //Wird nicht mehr ausgeführt

...
</code></pre>
<p>Ich bedanke mich für jede Hilfe im voraus!</p>
<p>EDIT:<br />
Sorry, die beschreibung vergessen^^<br />
Also es kommt bei der genannten Zeile ein Fehler wo steht:<br />
Fenstertitel: Just-in-Time-Debugger von Visual Studio<br />
Text: Unbehandelte Win32-Ausnahme in Recorder.exe[3280]</p>
<p>Es est die Debuggerauswahl</p>
<p>Das Fenster kommt nur wenn man genug Parameter übergibt:<br />
&quot;avi.avi&quot; 0 0 100 100 25<br />
Datei.....X.Y..W...H..FPS</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274063/avis-mit-vfw-h-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 18:53:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274063.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Sep 2010 20:48:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Sun, 19 Sep 2010 09:09:38 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche jetzt schon seit einer Woche einen Fehler in meinem C++-Code zu finden, in dem ich einen Film vom Bildschirm aufnehmen und in einer avi-Datei speichern würde. Das alles versuche ich mit der avifil32.dll (vfw.h).<br />
Meinen Fehler habe ich schon bis auf folgende Zeile schieben können (indem ich Messageboxen vor und nach den Befehl gestellt habe):<br />
AVIStreamSetFormat(pstream,0,(LPVOID)&amp;bi,bi.biSize);</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">#pragma comment(lib, &quot;Vfw32.lib&quot;)
#include &lt;Windows.h&gt;
#include &lt;time.h&gt;
#include &lt;stdio.h&gt;
#include &lt;vfw.h&gt; 

struct BITs
{
    byte* bits;
};

int main(int args,char** arg)
{
    //Variablen
    char* datei;
    int fehler=0,vidfps,sltime=1000;
    int screenw,screenh,screenx,screeny;
    HDC sourcedc,destdc;
    HBITMAP hbmp;
    clock_t timer;

    AVIFileInit();

    //Parameter
    if (args&lt;=6) return -1;
    datei=arg[1];
    screenx=(int)arg[2];
    screeny=(int)arg[3];
    screenw=(int)arg[4];
    screenh=(int)arg[5];
    vidfps=(int)arg[6];

    //Vorbereiten
    sltime/=vidfps;
    sourcedc=GetDC(0);
    destdc=CreateCompatibleDC(sourcedc);
    hbmp=CreateCompatibleBitmap(sourcedc,screenw,screenh);
    SelectObject(destdc,hbmp);

    PAVIFILE pfile;
    AVIFileOpen(&amp;pfile,datei,0x00001000,0);
    AVISTREAMINFO asi;
    asi.fccType=1935960438;
    asi.fccHandler=1129730893;
    asi.dwScale=1;
    asi.dwRate=vidfps;
    asi.dwQuality=10000;
    asi.rcFrame.left=screenx;
    asi.rcFrame.top=screeny;
    asi.rcFrame.right=screenx+screenw;
    asi.rcFrame.bottom=screeny+screenh;

    PAVISTREAM pstream;
    AVIFileCreateStream(pfile,&amp;pstream,&amp;asi);

    int stride=((screenw*(32/8)+3)&amp;(~3));

    BITMAPINFOHEADER bi;
    bi.biSize=sizeof(bi);//40
    bi.biWidth=screenw;
    bi.biHeight=screenh;
    bi.biPlanes=1;
    bi.biBitCount=24;
    bi.biSizeImage=stride*screenh;

    MessageBox(NULL,&quot;Ja!&quot;,&quot;Klappt es bis hier?&quot;,MB_OK);
    AVIStreamSetFormat(pstream,0,(LPVOID)&amp;bi,bi.biSize);
    MessageBox(NULL,&quot;Nein!&quot;,&quot;Klappt es bis hier?&quot;,MB_OK); //Wird nicht mehr ausgeführt

...
</code></pre>
<p>Ich bedanke mich für jede Hilfe im voraus!</p>
<p>EDIT:<br />
Sorry, die beschreibung vergessen^^<br />
Also es kommt bei der genannten Zeile ein Fehler wo steht:<br />
Fenstertitel: Just-in-Time-Debugger von Visual Studio<br />
Text: Unbehandelte Win32-Ausnahme in Recorder.exe[3280]</p>
<p>Es est die Debuggerauswahl</p>
<p>Das Fenster kommt nur wenn man genug Parameter übergibt:<br />
&quot;avi.avi&quot; 0 0 100 100 25<br />
Datei.....X.Y..W...H..FPS</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954233</guid><dc:creator><![CDATA[TheShadowAE]]></dc:creator><pubDate>Sun, 19 Sep 2010 09:09:38 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Sun, 19 Sep 2010 08:42:42 GMT]]></title><description><![CDATA[<p>TheShadowAE schrieb:</p>
<blockquote>
<p>Meinen Fehler habe ich schon bis auf folgende Zeile schieben können (indem ich Messageboxen vor und nach den Befehl gestellt habe):<br />
AVIStreamSetFormat(pstream,0,(LPVOID)&amp;bi,bi.biSize);</p>
</blockquote>
<p>So, und jetzt noch die BESCHREIBUNG des Fehlers, dann wäre es vollständig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954276</guid><dc:creator><![CDATA[loks]]></dc:creator><pubDate>Sun, 19 Sep 2010 08:42:42 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Sun, 19 Sep 2010 09:10:07 GMT]]></title><description><![CDATA[<p>Sorry hatte ich vergessen, oben noch hinzugefügt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954286</guid><dc:creator><![CDATA[TheShadowAE]]></dc:creator><pubDate>Sun, 19 Sep 2010 09:10:07 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Sun, 19 Sep 2010 10:56:54 GMT]]></title><description><![CDATA[<p>TheShadowAE schrieb:</p>
<blockquote>
<p>ich versuche jetzt schon seit einer Woche einen Fehler in meinem C++-Code zu finden, in dem ich einen Film vom Bildschirm aufnehmen und in einer avi-Datei speichern würde.</p>
</blockquote>
<p>Falsches Forum, das ist C-Code mit WinAPI und hat daher eher wenig mit C++ zu tun.</p>
<p>Statt mit Messageboxen rumzumachen könntest du doch mal den Debugger anschmeißen und das bisschen Code durchsteppen, dann siehst du vielleicht wo es hakt. So findet man üblicherweise Fehler. Ich glaube eher nicht, dass das hier jemand für dich tun wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954308</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Sun, 19 Sep 2010 10:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Sun, 19 Sep 2010 11:28:54 GMT]]></title><description><![CDATA[<p>Das Problem ist leider, dass ich die Parameter nicht mit dem IDE machen kann und dann durchsteppen (jedenfalls hab ich es noch nicht gefunden)</p>
<p>EDIT:<br />
Hab es mal mit durchswitchen gemacht (Code verändert statt Parameter), aber die eine Zeile ist nurmal nur eine Zeile, die Funktion ist in einer DLL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954312</guid><dc:creator><![CDATA[TheShadowAE]]></dc:creator><pubDate>Sun, 19 Sep 2010 11:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Sun, 19 Sep 2010 15:17:34 GMT]]></title><description><![CDATA[<p>Selbstverständlich kann man Startparameter im Debugger angeben. Das muss irgendwo im Debugging-Menü stecken.</p>
<p>Zum Fehler: du könntest mal die Doku von der Funktion _genau_ lesen und im Debugger die Parameter auf Korrektheit prüfen. Du übergibst wohl irgendwas flahsces. Falls doch alles richtig ist, vielleicht nochmal im richtigen Forum fragen, um mehr Antworten zu bekommen. WinAPI ist nicht C++, dein Problem interessiert hier keinen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954412</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Sun, 19 Sep 2010 15:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Tue, 21 Sep 2010 15:22:27 GMT]]></title><description><![CDATA[<p>Danke für die Hilfen, ich habe es jetzt richtiger(mein Absturzproblem ist weg).<br />
Ich musste nochmal in den tiefen der ganzen Funktionen gucken, nicht sehr leicht das zu verstehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1955451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1955451</guid><dc:creator><![CDATA[12356]]></dc:creator><pubDate>Tue, 21 Sep 2010 15:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to AVIs mit vfw.h erstellen on Tue, 21 Sep 2010 15:23:40 GMT]]></title><description><![CDATA[<p>Danke für die Hilfen, ich habe es jetzt richtiger(mein Absturzproblem ist weg).<br />
Ich musste nochmal in den tiefen der ganzen Funktionen gucken, nicht sehr leicht das zu verstehen</p>
<p>EDIT:<br />
Warum ist der gleiche Text oben mit dem Namen 123456?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1955453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1955453</guid><dc:creator><![CDATA[TheShadowAE]]></dc:creator><pubDate>Tue, 21 Sep 2010 15:23:40 GMT</pubDate></item></channel></rss>