<?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[RAS - Verbindungen kontrollieren]]></title><description><![CDATA[<p>hallo</p>
<p>also ich schreibe gerade ein kleines server-programm und dieses soll mir die zur verfügung stehenden RasEntries anzeigen (1),zu einer bestimmten zeit feststellen, ob eine dsl verbindung besteht (2) und diese dann eventuell trennnen (3) bzw. eine verbindung herstellen (4).</p>
<p>sind folgende befehle dafür richtig?<br />
zu 1) RasEnumEntries<br />
zu 2) RasEnumConnections<br />
zu 3) RasHangUp<br />
zu 4) RasDial</p>
<p>ich hab mir schon in der MSDN die beispiele angeschaut und versucht diese in mein Programm zu integrieren, allerdings ohne erfolg.<br />
ich habe hier im forum aber schon ausführliche beschreibungen und beispiele gesehen, nur finde ich diese - wegen der fehlenden suchfunktion - nicht mehr.<br />
bin auch schon mit google über die seite gegangen ---&gt; leider nix gefunden.</p>
<p>hat vielleicht jemand einen gut kommentierten beispielcode dazu oder einen link zu den alten beiträgen?</p>
<p>danke<br />
slower</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/80568/ras-verbindungen-kontrollieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 08:25:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/80568.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jul 2004 12:24:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RAS - Verbindungen kontrollieren on Thu, 22 Jul 2004 12:24:16 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>also ich schreibe gerade ein kleines server-programm und dieses soll mir die zur verfügung stehenden RasEntries anzeigen (1),zu einer bestimmten zeit feststellen, ob eine dsl verbindung besteht (2) und diese dann eventuell trennnen (3) bzw. eine verbindung herstellen (4).</p>
<p>sind folgende befehle dafür richtig?<br />
zu 1) RasEnumEntries<br />
zu 2) RasEnumConnections<br />
zu 3) RasHangUp<br />
zu 4) RasDial</p>
<p>ich hab mir schon in der MSDN die beispiele angeschaut und versucht diese in mein Programm zu integrieren, allerdings ohne erfolg.<br />
ich habe hier im forum aber schon ausführliche beschreibungen und beispiele gesehen, nur finde ich diese - wegen der fehlenden suchfunktion - nicht mehr.<br />
bin auch schon mit google über die seite gegangen ---&gt; leider nix gefunden.</p>
<p>hat vielleicht jemand einen gut kommentierten beispielcode dazu oder einen link zu den alten beiträgen?</p>
<p>danke<br />
slower</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566008</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 22 Jul 2004 12:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to RAS - Verbindungen kontrollieren on Thu, 22 Jul 2004 22:20:32 GMT]]></title><description><![CDATA[<p>hier ist mal mein testcode, welchen ich aus der MSND habe:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;ras.h&gt;
#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

int main(int argc, char *argv[])
{
    DWORD dwCb = sizeof(RASENTRYNAME);
    DWORD dwErr = ERROR_SUCCESS;
    DWORD dwRetries = 5;
    DWORD dwEntries = 0;
    RASENTRYNAME* lpRasEntryName = NULL;

    //
    // Loop through in case the information from RAS changes between calls.
    //
    while (dwRetries--)
    {
        //
        // If the memory is allocated, free it.
        //
        if (NULL != lpRasEntryName)
        {
            HeapFree(GetProcessHeap(), 0, lpRasEntryName);
            lpRasEntryName = NULL;
        }
        //
        // Allocate the size need for the RAS structure.
        //
        lpRasEntryName = HeapAlloc(GetProcessHeap(), 0, dwCb);
        if (NULL == lpRasEntryName)
        {
            dwErr = ERROR_NOT_ENOUGH_MEMORY;
            break;
        }
        //
        // Set the structure size for version checking purposes.
        //
        lpRasEntryName-&gt;dwSize = sizeof(RASENTRYNAME);
        //
        // Call the RAS API, bail on the loop if we are successful or an unknown
        // error occurs.
        //
        dwErr = RasEnumEntries(
                    NULL,
                    NULL,
                    lpRasEntryName,
                    &amp;dwCb,
                    &amp;dwEntries);
        if (ERROR_BUFFER_TOO_SMALL != dwErr)
        {
            break;
        }
    }
    //
    // In the success case print the names of the entries.
    //
    if (ERROR_SUCCESS == dwErr)
    {
        DWORD i;

        printf(&quot;Phone-book entries in the default phone book:\n\n&quot;);
        for (i = 0; i &lt; dwEntries; i++)
        {
            printf(&quot;%s\n&quot;, lpRasEntryName[i]-&gt;szEntryName);
        }
    }
    else
    {
        printf(&quot;RasEnumEntries failed: Error = %d\n&quot;, dwErr);
    }
    //
    // Free the memory if necessary.
    //
    if (NULL != lpRasEntryName)
    {
        HeapFree(GetProcessHeap(), 0, lpRasEntryName);
        lpRasEntryName = NULL;
    }

  system(&quot;PAUSE&quot;);	
  return 0;
}
</code></pre>
<p>die RASAPI32.Lib habe ich gelinkt<br />
ich benutze DevC++ und bekomme folgende Fehlermeldungen:</p>
<p>31 ANSI C++ forbids implicit conversion from `void *' in assignment<br />
in zeile:</p>
<pre><code class="language-cpp">lpRasEntryName = HeapAlloc(GetProcessHeap(), 0, dwCb);
</code></pre>
<p>51 `ERROR_BUFFER_TOO_SMALL' undeclared (first use this function)<br />
in zeile:</p>
<pre><code class="language-cpp">if (ERROR_BUFFER_TOO_SMALL != dwErr)
</code></pre>
<p>66 base operand of <code>-&gt;' has non-pointer type</code>tagRASENTRYNAMEA'<br />
in zeile:</p>
<pre><code class="language-cpp">printf(&quot;%s\n&quot;, lpRasEntryName[i]-&gt;szEntryName);
</code></pre>
<p>wäre echt dankbar, wenn mir hier wer helfen könnte.</p>
<p>danke slower</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566450</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Thu, 22 Jul 2004 22:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to RAS - Verbindungen kontrollieren on Fri, 23 Jul 2004 01:30:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<blockquote>
<p>31 ANSI C++ forbids implicit conversion from `void *' in assignment</p>
</blockquote>
<p>in C++ benötigt man einen cast auf den Ziel-Datentyp. Da dein Test-Code aber nur reine C-Sprachelemente beinhaltet, könntest du auch das Programm unter DevC++ mit dem C-Compiler kompilieren lassen, denn unter C ist kein cast nötig, allerdings weiß ich nicht, ob und wie man DevC++ dazu bringen kann, daß der C-Compiler angeworfen wird.</p>
<blockquote>
<p>51 `ERROR_BUFFER_TOO_SMALL' undeclared (first use this function)</p>
</blockquote>
<p>includiere zusätzlich &lt;raserror.h&gt;:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;ras.h&gt;
#include &lt;raserror.h&gt;
#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
</code></pre>
<blockquote>
<p>66 base operand of <code>-&gt;' has non-pointer type</code>tagRASENTRYNAMEA'</p>
</blockquote>
<p>richtig muß die bemängelte Zeile so lauten:</p>
<pre><code class="language-cpp">printf(&quot;%s\n&quot;, lpRasEntryName[i].szEntryName);
</code></pre>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566477</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Fri, 23 Jul 2004 01:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to RAS - Verbindungen kontrollieren on Fri, 23 Jul 2004 07:37:50 GMT]]></title><description><![CDATA[<p>danke dir, fehler 2 und 3 sind jetzt eliminiert!</p>
<p>also reines C macht sich schlecht bei meinem programm. kannst du mir das mit dem cast am beispiel erklären, hab schon versucht dazu was zu finden, leider bin ich da nicht weitergekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566556</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Fri, 23 Jul 2004 07:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to RAS - Verbindungen kontrollieren on Fri, 23 Jul 2004 08:37:57 GMT]]></title><description><![CDATA[<p>also Casten ist eine grundsätzliche &quot;Technik&quot;, die dir schon mindestens einmal begegnet sein sollte. Im folgenden der C-Style-Cast für die Problemzeile:</p>
<pre><code class="language-cpp">lpRasEntryName = (RASENTRYNAME*) HeapAlloc(GetProcessHeap(), 0, dwCb);
</code></pre>
<p>also einfach den Datentyp, der auf der linken Seite der Zuweisung steht, in Klammern vor die Anweisung (die hier eben einen, im C++-Fall, unpassenden LPVOID zurückgibt) stellen.</p>
<p>Falls dich die C++-Lösung interessiert:</p>
<pre><code class="language-cpp">lpRasEntryName = reinterpret_cast&lt;RASENTRYNAME*&gt;(HeapAlloc(GetProcessHeap(), 0, dwCb));
</code></pre>
<p>hier steht der Zieldatentyp immer in spitzen Klammern</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566617</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Fri, 23 Jul 2004 08:37:57 GMT</pubDate></item><item><title><![CDATA[Reply to RAS - Verbindungen kontrollieren on Fri, 23 Jul 2004 19:28:32 GMT]]></title><description><![CDATA[<p>vielen dank nochmal<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
habs verstanden und es funktioniert auch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/567130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/567130</guid><dc:creator><![CDATA[slower]]></dc:creator><pubDate>Fri, 23 Jul 2004 19:28:32 GMT</pubDate></item></channel></rss>