<?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[Win 7, Btrieve und es kommt eine DOS-Box]]></title><description><![CDATA[<p>Servus,</p>
<p>folgende Merkwürdigkeit:</p>
<p>Win 7 Home Premium, 64 Bit<br />
Btrieve Requester 8</p>
<p>Für meine Zwecke habe ich mir mal vor Urzeiten ein Programm geschrieben, ich<br />
verwende es für Kontakte, Buchhaltung etc. Seit Windows 3.1 organisch gewachsen,<br />
in C geschrieben. Zuerst mit Netware als Server und mit Btrieve als Datenbank.<br />
Mittlerweile über mehrere C-Compiler und Win-Versionen durchgezogen.</p>
<p>Jetzt habe ich einen neuen PC mit Win 7 und das Programm ließ sich nicht mehr<br />
starten (Oh, blöd, auf 16 Bit kompiliert). Also auch an den neuesten Watcom<br />
umgehoben und angepaßt - läuft wieder.</p>
<p>Als Requester habe ich wbtrv32.dll.</p>
<p>Es funktioniert wieder alles, nur kommt beim Starten des Programms eine<br />
leere DOS-Box (ohne Titel etc). Rätsel über Rätsel. Beim Beenden der DOS-Box<br />
wird das Programm beendet was es sonst nur auf Nachfrage macht.</p>
<p>Wo kann denn diese DOS-Box herkommen ?</p>
<p>Grüße Joe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323946/win-7-btrieve-und-es-kommt-eine-dos-box</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 10:50:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323946.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Feb 2014 08:57:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 08:57:20 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>folgende Merkwürdigkeit:</p>
<p>Win 7 Home Premium, 64 Bit<br />
Btrieve Requester 8</p>
<p>Für meine Zwecke habe ich mir mal vor Urzeiten ein Programm geschrieben, ich<br />
verwende es für Kontakte, Buchhaltung etc. Seit Windows 3.1 organisch gewachsen,<br />
in C geschrieben. Zuerst mit Netware als Server und mit Btrieve als Datenbank.<br />
Mittlerweile über mehrere C-Compiler und Win-Versionen durchgezogen.</p>
<p>Jetzt habe ich einen neuen PC mit Win 7 und das Programm ließ sich nicht mehr<br />
starten (Oh, blöd, auf 16 Bit kompiliert). Also auch an den neuesten Watcom<br />
umgehoben und angepaßt - läuft wieder.</p>
<p>Als Requester habe ich wbtrv32.dll.</p>
<p>Es funktioniert wieder alles, nur kommt beim Starten des Programms eine<br />
leere DOS-Box (ohne Titel etc). Rätsel über Rätsel. Beim Beenden der DOS-Box<br />
wird das Programm beendet was es sonst nur auf Nachfrage macht.</p>
<p>Wo kann denn diese DOS-Box herkommen ?</p>
<p>Grüße Joe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384904</guid><dc:creator><![CDATA[Scheppertreiber]]></dc:creator><pubDate>Mon, 24 Feb 2014 08:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 09:18:30 GMT]]></title><description><![CDATA[<p>Definiere &quot;DOS-Box&quot;.<br />
Und versuch das ganze nochmal mit MinGW oder VisualC++ zu kompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384913</guid><dc:creator><![CDATA[Singender Holzkübel]]></dc:creator><pubDate>Mon, 24 Feb 2014 09:18:30 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 09:57:25 GMT]]></title><description><![CDATA[<p>Singender Holzkübel schrieb:</p>
<blockquote>
<p>Definiere &quot;DOS-Box&quot;.</p>
</blockquote>
<p>Schwarzer Kasten mit nichts drinnen außer schwarz.<br />
So wie wenn man cmd.exe aufruft. Noch nie gesehen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384926</guid><dc:creator><![CDATA[Scheppertreiber]]></dc:creator><pubDate>Mon, 24 Feb 2014 09:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 10:00:48 GMT]]></title><description><![CDATA[<p>Was hat die Frage mit C++ zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384928</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 24 Feb 2014 10:00:48 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 10:04:42 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Was hat die Frage mit C++ zu tun?</p>
</blockquote>
<p>ups - das falsche Forum erwischt, Sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384930</guid><dc:creator><![CDATA[Scheppertreiber]]></dc:creator><pubDate>Mon, 24 Feb 2014 10:04:42 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 10:13:48 GMT]]></title><description><![CDATA[<p>Scheppertreiber schrieb:</p>
<blockquote>
<p>Singender Holzkübel schrieb:</p>
<blockquote>
<p>Definiere &quot;DOS-Box&quot;.</p>
</blockquote>
<p>Schwarzer Kasten mit nichts drinnen außer schwarz.<br />
So wie wenn man cmd.exe aufruft. Noch nie gesehen ?</p>
</blockquote>
<p>Doch, nur verstehe ich unter DOS-Box <a href="http://www.dosbox.com/" rel="nofollow">das hier</a>.<br />
Wäre vielleicht für deine Zwecke gar keine schlechte Idee.</p>
<p>Ansonnsten das Ding mal mit einem ordentliche Debugger unter die Lupe nehmen, bei so altem Code kann vieles Probleme machen.<br />
Ein wenig Source-Code posten würd' auch nicht schaden. <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>
<p>LG Daniel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384934</guid><dc:creator><![CDATA[Singender Holzkübel]]></dc:creator><pubDate>Mon, 24 Feb 2014 10:13:48 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 10:40:15 GMT]]></title><description><![CDATA[<p>Mit dem Procmon finde ich nichts.</p>
<p>Code sind knapp 40.000 Zeilen, das wäre etwas arg viel.</p>
<p>Laden der Btrieve-DLL</p>
<pre><code>BOOL
        BTR_InitBtrieve(
        HWND    hwnd
        )
{
        char    buf[512];
        HANDLE  hinst;
        FARPROC lpfn;
        int     stat;

        hinst = JGetInstance( hwnd);

        if ( (hLib = LoadLibrary( SGetPRF( &quot;syscon&quot;, &quot;btrieve&quot;))) == NULL ){
                sprintf( buf,
                  &quot;Kann Btrieve-DLL \n%s\nnicht laden.\n(Status $%x)\n%s&quot;,
                  SGetPRF( &quot;syscon&quot;, &quot;btrieve&quot;), hLib, GetErrMessage());
                MessageBox( NULL, buf, &quot;WDOC&quot;, MB_OK | MB_ICONEXCLAMATION);
                return FALSE;
        }
        strcpy( buf, SGetPRF( &quot;syscon&quot;, &quot;btrprms&quot;));
        lpfn = GetProcAddress( hLib, &quot;WBTRVINIT&quot;);
        stat = lpfn( hinst);

        if ( lpfn == NULL){
                sprintf( buf,
                  &quot;Fehler bei der Btrieve-Initialisierung\n&quot;
                  &quot;Recordmanager nicht geladen&quot;);
                JA( buf);
                MessageBox( NULL, buf, &quot;WDOC&quot;, MB_OK | MB_ICONEXCLAMATION);
                BTR_EndBtrieve();
                return FALSE;
        }
        return TRUE;
}
</code></pre>
<p>Btrieve-Funktionsaufruf:</p>
<pre><code>int
        BTR_CallFunction(
        int     Function,
        char    *bt,
        char    *buf,
        int     *buflen,
        char    *keybuf,
        int     key
        )
{
        FARPROC lpfn;
        WORD    keylen;
        int     ret;

        keylen = 255;
        lpfn   = GetProcAddress( hLib, &quot;BTRCALL&quot;);

        return lpfn( Function, bt, buf, buflen, keybuf, keylen, key);
}
</code></pre>
<p>hLib ist in der Datei definiert:</p>
<pre><code>static  HANDLE hLib;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2384942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384942</guid><dc:creator><![CDATA[Scheppertreiber]]></dc:creator><pubDate>Mon, 24 Feb 2014 10:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 10:39:39 GMT]]></title><description><![CDATA[<p>Hast du dein Project als Konsolenprogramm angelegt?<br />
Evtl. auch unbewusst, weil du nichts an den Einstellungen geändert hast.<br />
Oder weil der Startcode für <code>main</code> dies so macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384944</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Mon, 24 Feb 2014 10:39:39 GMT</pubDate></item><item><title><![CDATA[Reply to Win 7, Btrieve und es kommt eine DOS-Box on Mon, 24 Feb 2014 10:44:32 GMT]]></title><description><![CDATA[<p>Eigentlich nicht:</p>
<pre><code>int     PASCAL
        WinMain(
        HINSTANCE hinst,
        HINSTANCE previnst,
        LPSTR   _cmdline,
        int     cmdshow
        )
{
        FARPROC proc;
        char    *p, buf[256];

        unlink( CtlFileName());
        unlink( sTmpFileName());

        cmdline         = _cmdline;
        IsInitialiszed  = FALSE;
        SIsInitialiszed = FALSE;
        StartOK         = FALSE;

        if ( previnst != NULL){
                MakeKrach( &quot;Daneben&quot;);
                MsgBox( NULL,
                   &quot;Programm bereits geladen\nEinmal reicht.&quot;,
                   PgmTitle, MB_ICONEXCLAMATION);

                IdentifyMyWindow( hinst);
                if ( hwndMine)
                        ShowWindow( hwndMine, SW_SHOW);
                return FALSE;
        }

        GetModuleFileName( hinst, buf, 127);

        if ( strlen( cmdline)){
                sprintf( profile, cmdline);
        } else {
                if ( (p = strrchr( buf, '\\')) != NULL)
                        *p = 0;
                sprintf( profile, &quot;%s\\wdoc.ini&quot;, buf);
        }

        CreateJoesClasses( hinst);

        proc = MakeProcInstance( SplashProc, hinst);
        DialogBox( hinst, &quot;SPLASH&quot;, NULL, proc);
        FreeProcInstance( proc);

        WritePrivateProfileString(
           &quot;Btrieve Requester&quot;, &quot;Splash Screen&quot;, &quot;N&quot;, BTIIniFileName());

        if ( ! StartOK)
                return FALSE;

        proc = MakeProcInstance( MainProc, hinst);
        DialogBox( hinst, &quot;MAIN&quot;, NULL, proc);
        FreeProcInstance( proc);

        WriteProfileString( &quot;JD DocuStock&quot;, &quot;cmd&quot;, &quot;BRK&quot;);

        CloseAllDatabases();
        FuckupJoesClasses( hinst);
        ReleaseDialogFonts();
        BTR_EndBtrieve();

        return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2384947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384947</guid><dc:creator><![CDATA[Scheppertreiber]]></dc:creator><pubDate>Mon, 24 Feb 2014 10:44:32 GMT</pubDate></item></channel></rss>