<?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[Problem beim kopieren eines Vektors; wie bekomme ich das Ding typisiert]]></title><description><![CDATA[<p>Moin...<br />
Ich fall mal direkt mit der Tür ins Haus: auf der Suche nach ner Möglichkeit auf CE Geräten z.B. WLan an zu schalten bin ich auf folgendes gestoßen:<br />
<a href="http://www.codeproject.com/KB/windows/RadioPower.aspx?msg=3605684#xx3605684xx" rel="nofollow">http://www.codeproject.com/KB/windows/RadioPower.aspx?msg=3605684#xx3605684xx</a><br />
Soweit sogut, Bluetooth geht - allerdings hab ich n wahrscheinlich triviales Problem beim kopieren eines Vectors:</p>
<pre><code class="language-cpp">DWORD CWifi::QueryOid( HANDLE ndis, const wchar_t* device_name, ULONG oid, std::vector&lt; BYTE &gt;* buffer )
{
    DWORD bytes_returned = 0;
    std::vector&lt;BYTE&gt; query_theBuffer( sizeof( NDISUIO_QUERY_OID ) + buffer-&gt;size() );
    NDISUIO_QUERY_OID* query = 
        reinterpret_cast&lt; NDISUIO_QUERY_OID* &gt;( &amp;query_theBuffer.front() );
    query-&gt;Oid = oid;
    query-&gt;ptcDeviceName = const_cast&lt; wchar_t* &gt;( device_name );

    BOOL res = ::DeviceIoControl( ndis, 
        IOCTL_NDISUIO_QUERY_OID_VALUE,
        reinterpret_cast&lt; LPVOID &gt;( &amp;query_theBuffer.front() ),
        query_theBuffer.size(),
        reinterpret_cast&lt; LPVOID &gt;( &amp;query_theBuffer.front() ),
        query_theBuffer.size(),
        &amp;bytes_returned,
        NULL );

    if( res )
    {
        std::copy(query-&gt;Data,query_theBuffer.end(), buffer-&gt;begin() );
        return ERROR_SUCCESS;
    }
    return GetLastError();
}
</code></pre>
<p>Weiß einer, wie ich den BYTE Vector typisieren muß, dass das copy funktioniert??? Ich bekomm das grad nicht hin - Kompiler schmeisst immer C2782 und erzählt was von Mehrdeutigkeit...<br />
Ich hab das jetzt über assign gemacht - weiß aber nicht obs gleichwertig ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290709/problem-beim-kopieren-eines-vektors-wie-bekomme-ich-das-ding-typisiert</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 07:15:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290709.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Aug 2011 18:54:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim kopieren eines Vektors; wie bekomme ich das Ding typisiert on Mon, 01 Aug 2011 18:54:23 GMT]]></title><description><![CDATA[<p>Moin...<br />
Ich fall mal direkt mit der Tür ins Haus: auf der Suche nach ner Möglichkeit auf CE Geräten z.B. WLan an zu schalten bin ich auf folgendes gestoßen:<br />
<a href="http://www.codeproject.com/KB/windows/RadioPower.aspx?msg=3605684#xx3605684xx" rel="nofollow">http://www.codeproject.com/KB/windows/RadioPower.aspx?msg=3605684#xx3605684xx</a><br />
Soweit sogut, Bluetooth geht - allerdings hab ich n wahrscheinlich triviales Problem beim kopieren eines Vectors:</p>
<pre><code class="language-cpp">DWORD CWifi::QueryOid( HANDLE ndis, const wchar_t* device_name, ULONG oid, std::vector&lt; BYTE &gt;* buffer )
{
    DWORD bytes_returned = 0;
    std::vector&lt;BYTE&gt; query_theBuffer( sizeof( NDISUIO_QUERY_OID ) + buffer-&gt;size() );
    NDISUIO_QUERY_OID* query = 
        reinterpret_cast&lt; NDISUIO_QUERY_OID* &gt;( &amp;query_theBuffer.front() );
    query-&gt;Oid = oid;
    query-&gt;ptcDeviceName = const_cast&lt; wchar_t* &gt;( device_name );

    BOOL res = ::DeviceIoControl( ndis, 
        IOCTL_NDISUIO_QUERY_OID_VALUE,
        reinterpret_cast&lt; LPVOID &gt;( &amp;query_theBuffer.front() ),
        query_theBuffer.size(),
        reinterpret_cast&lt; LPVOID &gt;( &amp;query_theBuffer.front() ),
        query_theBuffer.size(),
        &amp;bytes_returned,
        NULL );

    if( res )
    {
        std::copy(query-&gt;Data,query_theBuffer.end(), buffer-&gt;begin() );
        return ERROR_SUCCESS;
    }
    return GetLastError();
}
</code></pre>
<p>Weiß einer, wie ich den BYTE Vector typisieren muß, dass das copy funktioniert??? Ich bekomm das grad nicht hin - Kompiler schmeisst immer C2782 und erzählt was von Mehrdeutigkeit...<br />
Ich hab das jetzt über assign gemacht - weiß aber nicht obs gleichwertig ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100552</guid><dc:creator><![CDATA[Vegetico]]></dc:creator><pubDate>Mon, 01 Aug 2011 18:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim kopieren eines Vektors; wie bekomme ich das Ding typisiert on Mon, 01 Aug 2011 19:00:32 GMT]]></title><description><![CDATA[<p>Vor allem solltest du die zusammengehörigen Iteratoren verwenden, also query_theBuffer.begin() und query_theBuffer.end().<br />
Zweitens: Was spricht eigentlich dagegen, den Parameter als Referenz zu übergeben anstelle des Zeigers?<br />
Drittens: dein query_theBuffer hat mehr Platz reserviert als der buffer, in den du ihn reikopieren willst - das endet in undefined Behaviour.</p>
<p>PS: assign() oder Zuweisung dürfte für deine Zwecke besser geeignet sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100556</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim kopieren eines Vektors; wie bekomme ich das Ding typisiert on Mon, 01 Aug 2011 19:03:59 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Zweitens: Was spricht eigentlich dagegen, den Parameter als Referenz zu übergeben anstelle des Zeigers?</p>
</blockquote>
<p>Aber was spricht eigentlich dafür?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100561</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:03:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim kopieren eines Vektors; wie bekomme ich das Ding typisiert on Mon, 01 Aug 2011 19:05:10 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Aber was spricht eigentlich dafür?</p>
</blockquote>
<p>Die bequemere Art es aufzurufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100562</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:05:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim kopieren eines Vektors; wie bekomme ich das Ding typisiert on Mon, 01 Aug 2011 19:08:57 GMT]]></title><description><![CDATA[<p>Ehrlich gesagt habe ich mir über Sinn- bzw Unsinnigkeit von Pointern/ Referenzen keine Gedanken gemacht.<br />
Und ja, ich hab auch gesehen, dass die beiden Vectoren unterschiedliche Längen haben - wußte nicht, dass das zu Probs führt...<br />
Dann bleib ich erstmal bei assign, sofern das beim debuggen gut aussieht und das sonst gleichwertig ist...<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100567</guid><dc:creator><![CDATA[Vegetico]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:08:57 GMT</pubDate></item></channel></rss>