<?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[Unverständlicher Quellcode]]></title><description><![CDATA[<p>Hallo,<br />
ich durchforste gerade ein Quellcode und mir ist da was aufgefallen womit ich nix anfangen kann.</p>
<pre><code class="language-cpp">unsigned short *LiveFrame;
.
.
.
.
MbufGet(MilDummyBuffer,(void*)LiveFrame);
</code></pre>
<p>Zuerst wird *LiveFrame als unsigned short deklariert und in der Funktion MbufGet() als (void*). Was bedeutet das? Ist das ein typecast und wenn was bringt das?</p>
<p>Übrigens:<br />
MbufGet() stammt aus der Matrox Imaging Library. Das ist einfach eine Funktion die Bilder, die in MilDummyBuffer gegrabbed wurden, in ein Benutzerdefinierten Puffer laden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189737/unverständlicher-quellcode</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 09:46:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189737.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Aug 2007 11:00:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unverständlicher Quellcode on Thu, 16 Aug 2007 11:00:22 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich durchforste gerade ein Quellcode und mir ist da was aufgefallen womit ich nix anfangen kann.</p>
<pre><code class="language-cpp">unsigned short *LiveFrame;
.
.
.
.
MbufGet(MilDummyBuffer,(void*)LiveFrame);
</code></pre>
<p>Zuerst wird *LiveFrame als unsigned short deklariert und in der Funktion MbufGet() als (void*). Was bedeutet das? Ist das ein typecast und wenn was bringt das?</p>
<p>Übrigens:<br />
MbufGet() stammt aus der Matrox Imaging Library. Das ist einfach eine Funktion die Bilder, die in MilDummyBuffer gegrabbed wurden, in ein Benutzerdefinierten Puffer laden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345638</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Thu, 16 Aug 2007 11:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Unverständlicher Quellcode on Thu, 16 Aug 2007 11:12:29 GMT]]></title><description><![CDATA[<p><code>(void*)</code> ist ein Typecast im C-Stil (den man aus diversen Gründen eigentlich nur noch Selten in C++ benutzt). Vermutlich handelt es sich bei der Bibliothek um eine C-Bibliothek (oder zumindest eine C++-Bibliothek mit einer sehr schlechten API). In C gibt es keine Möglichkeit der generischen Programmierung (templates in C++), die es einem ermöglichen erst spät zur Compile-Zeit den Typ einer Variable (=&gt; also auch eines Parameters) festzulegen. Daher gibt es in C void-Pointer, die einfach normale Pointer sind, aber nicht spezifizieren auf was für Daten (also welchen Typs) sie zeigen. (Daher sind sie auch nicht dereferenzier oder arithmetisch veränderbar, da der Compiler bei ++p; ja nicht weiß, wie viele bytes er nun weiter gehen muss).</p>
<p>Intern wird die Funktion den Pointer dann wieder in etwas für sie benutzbares casten, vermutlich unsigned char (also in Byte größe). Dann schreibt die Funktion die Daten da rein, unabhängig von dem eigentlichen Typ des Buffers. Du kennst den Buffer genauer (zB weil du gesagt hast, dass du 16 Bit Blöcke haben willst) und weißt daher diesen richtig zu interpretieren (eben als Buffer aus unsigned shorts).</p>
<p>In C++ verwendet man aber idr kein void*!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345647</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 16 Aug 2007 11:12:29 GMT</pubDate></item></channel></rss>