<?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[Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>ich habe hier ein kleineres größeres Problem. Ich habe die letzten Monate die Steuerung für eine Messanlage angefangen neu aufzusetzen. Die besteht im Wesentlichen aus einem Antrieb, einem Satz IO Klemmen, einer Kamera und der zugehörigen Bildverarbeitung und Auswertung.</p>
<p>Die alte Software basiert auf 6 oder 7 einzelnen EXE Dateien, die nur mit der C++ STL programmiert sind. Die Kommunizieren teilweise über TXT-Dateien. Und genau dieses langsame Vorgehen wollte ich vermeiden.</p>
<p>Ich habe das Ganze mit einer Oberfläche erweitert und umgestellt.</p>
<p>Die Antrieb, IO, Kamera und Bildverarbeitung sind Zustandsautomaten, die ich durch Threads und Events realisiert habe. Ein Thread der TThread-Klasse wird gestartet und mittels WaitFor eingeschläfert. Der Zustandswechsel erfolgt über Events.<br />
Die vier obigen Threads werden durch einen weiteren Thread gestartet und gesteuert. Dieser Controller stellt die Schnittstelle zur Oberfläche dar.<br />
Die ist mittels Forms realisiert. Im Grunde habe ich eine Formular Anwendung erstellt und darin die Threads implementiert. Der Hauptthread an sich muss somit nur noch die Obefläche rechnen. Die Arbeit machen die andern Threads.</p>
<p>Mein Problem:<br />
Die Bildaufnahme und Bildverarbeitung werden durch eine BV Bibliothek namens Halcon implementiert. Diese Bibliothek lässt sich unter einem Borland Compiler nicht implementieren. Keine Chance die DLLs einzusetzen.<br />
Neben der BV muss ich noch Treiber für die CAN-Anbindung von Motor und IO einbinden. Treiber für die Kamera kommen auch noch.<br />
Bei diversen Anfragen kam meistens die Antwort, dass die Bibliotheken im Angebot für VS gemacht sind.</p>
<p>Das bedeutet ich muss umsteigen. Da ich eigentlich nur auf der VCL und der CLX, mit einigen STL und WinAPI Einschwüngen, programmiert habe, habe ich die absolute arschlochkarte. Alles nochmal bitte. Unter Visual Studio.<br />
Borland war so schön einfach.<br />
Jetzt habe ich ein Problem... MIT WAS eigentlich??? Ich wusste nur, dass Microsoft die Forms Klassen mittlerweile in Lizens nachbaut. Somit dachte ich mir, dass das doch relativ &quot;simpel&quot; sein müsste das nachzubasteln.</p>
<p>Jetzt steh ich hier ich armer Thor und bin so schlau als wie zuvor...</p>
<p>Meine Firma möchte das Ganze am liebsten vorgestern. Ich bin der Einzige, der hier programmieren kann. Naja ich bin definitiv alles andere als ein Pro... Übung macht den Meister. Ich muss dazu sagen, dass ich die MFC nicht mag. Alles so... umständlich.</p>
<p>Als ich mal drüber geschaut habe, dachte ich, dass ich C++/CLI nehmen kann. Mittlerweile wurde mir allerdings von Jochen abgeraten.<br />
Soll ich jetzt C# lernen und auf .NET programmieren?<br />
Oder nehme ich C++ laut STL, würze es mit Boost und werfe ein Oberflächenkit wie qt in den Topf?</p>
<p>Wie mache ich denn jetzt am Besten weiter... Was verwende ich an Bibliotheken? Welche Sprache?</p>
<p>Es ist mir wirklich wichtig hier rbauchbare Informationen zusammenzutragen, gerade weil ich keinen fragen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194303/mit-was-mache-ich-weiter-gt-portieren-einer-bcb-forms-anwendung-gt-mayday</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 07:02:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194303.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Oct 2007 07:00:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Fri, 05 Oct 2007 07:10:08 GMT]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>ich habe hier ein kleineres größeres Problem. Ich habe die letzten Monate die Steuerung für eine Messanlage angefangen neu aufzusetzen. Die besteht im Wesentlichen aus einem Antrieb, einem Satz IO Klemmen, einer Kamera und der zugehörigen Bildverarbeitung und Auswertung.</p>
<p>Die alte Software basiert auf 6 oder 7 einzelnen EXE Dateien, die nur mit der C++ STL programmiert sind. Die Kommunizieren teilweise über TXT-Dateien. Und genau dieses langsame Vorgehen wollte ich vermeiden.</p>
<p>Ich habe das Ganze mit einer Oberfläche erweitert und umgestellt.</p>
<p>Die Antrieb, IO, Kamera und Bildverarbeitung sind Zustandsautomaten, die ich durch Threads und Events realisiert habe. Ein Thread der TThread-Klasse wird gestartet und mittels WaitFor eingeschläfert. Der Zustandswechsel erfolgt über Events.<br />
Die vier obigen Threads werden durch einen weiteren Thread gestartet und gesteuert. Dieser Controller stellt die Schnittstelle zur Oberfläche dar.<br />
Die ist mittels Forms realisiert. Im Grunde habe ich eine Formular Anwendung erstellt und darin die Threads implementiert. Der Hauptthread an sich muss somit nur noch die Obefläche rechnen. Die Arbeit machen die andern Threads.</p>
<p>Mein Problem:<br />
Die Bildaufnahme und Bildverarbeitung werden durch eine BV Bibliothek namens Halcon implementiert. Diese Bibliothek lässt sich unter einem Borland Compiler nicht implementieren. Keine Chance die DLLs einzusetzen.<br />
Neben der BV muss ich noch Treiber für die CAN-Anbindung von Motor und IO einbinden. Treiber für die Kamera kommen auch noch.<br />
Bei diversen Anfragen kam meistens die Antwort, dass die Bibliotheken im Angebot für VS gemacht sind.</p>
<p>Das bedeutet ich muss umsteigen. Da ich eigentlich nur auf der VCL und der CLX, mit einigen STL und WinAPI Einschwüngen, programmiert habe, habe ich die absolute arschlochkarte. Alles nochmal bitte. Unter Visual Studio.<br />
Borland war so schön einfach.<br />
Jetzt habe ich ein Problem... MIT WAS eigentlich??? Ich wusste nur, dass Microsoft die Forms Klassen mittlerweile in Lizens nachbaut. Somit dachte ich mir, dass das doch relativ &quot;simpel&quot; sein müsste das nachzubasteln.</p>
<p>Jetzt steh ich hier ich armer Thor und bin so schlau als wie zuvor...</p>
<p>Meine Firma möchte das Ganze am liebsten vorgestern. Ich bin der Einzige, der hier programmieren kann. Naja ich bin definitiv alles andere als ein Pro... Übung macht den Meister. Ich muss dazu sagen, dass ich die MFC nicht mag. Alles so... umständlich.</p>
<p>Als ich mal drüber geschaut habe, dachte ich, dass ich C++/CLI nehmen kann. Mittlerweile wurde mir allerdings von Jochen abgeraten.<br />
Soll ich jetzt C# lernen und auf .NET programmieren?<br />
Oder nehme ich C++ laut STL, würze es mit Boost und werfe ein Oberflächenkit wie qt in den Topf?</p>
<p>Wie mache ich denn jetzt am Besten weiter... Was verwende ich an Bibliotheken? Welche Sprache?</p>
<p>Es ist mir wirklich wichtig hier rbauchbare Informationen zusammenzutragen, gerade weil ich keinen fragen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378295</guid><dc:creator><![CDATA[Shogun]]></dc:creator><pubDate>Fri, 05 Oct 2007 07:10:08 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Fri, 05 Oct 2007 09:02:40 GMT]]></title><description><![CDATA[<p>Shogun schrieb:</p>
<blockquote>
<p>Die Bildaufnahme und Bildverarbeitung werden durch eine BV Bibliothek namens Halcon implementiert. Diese Bibliothek lässt sich unter einem Borland Compiler nicht implementieren. Keine Chance die DLLs einzusetzen.</p>
</blockquote>
<p>warum nicht? liegts am name mangling? vielleicht kannst du dir einen c-wrapper im visual studio bauen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378383</guid><dc:creator><![CDATA[delicious]]></dc:creator><pubDate>Fri, 05 Oct 2007 09:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Fri, 05 Oct 2007 09:21:56 GMT]]></title><description><![CDATA[<p>Ich vermute es. Ja. Ich bekomme (obwohl ich die Libs mit dingenskirchens... ach wie heissts... für Borland erstellte habe) Zig Fehlermeldungen von wegen unaufgelöste Externe. Unter MSVS habe ich die Libs eingebunden, Pfade gesetzt und feddich.</p>
<p>Ich bin gerade am Schmökern. Wenn ich das Recht verstehe kommen diese Möglichkeiten in Frage:</p>
<p>- Beim BCB bleiben und mir irgendwie aushelfen (Eigene DLLs mit Halcon unter VS erstellen und das C++ Mangling abstellen)<br />
- C# lernen und unter C# programmieren<br />
- C++/CLI NUR für die Forms einsetzen und sonst bei oldschool C++ bleiben, Threads entweder über pthreads (War doch Microsoft oder?) oder die Boost.<br />
- Ich zeige MS und Borland den Mittelfinger, schnappe mir das VS, knalle Boost rein, packe eine Portion einer GUI dazu, schüttle das alles und programmiere zu 80% plattformunabhängig und packe ein wenig Winapi rein.<br />
- Ich werde zum Ledernacken und pfeiffe auf alle Bibs und packe die reine Winapi aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1378396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1378396</guid><dc:creator><![CDATA[Shogun]]></dc:creator><pubDate>Fri, 05 Oct 2007 09:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Mon, 08 Oct 2007 15:30:24 GMT]]></title><description><![CDATA[<p>Wenn ich das mit Borland und DLLs richtig verstehe, so bindest du anscheinend eine .lib-Datei ein, welche für das MS-Visual Studio erstellt wurde.<br />
Mittels des DOS-Programms 'implib' im Borland C++ Builder/bin Verzeichnis kannst du aus einer DLL selber eine .lib-Datei für den Borland C++ Builder erzeugen. (vorausgesetzt es handelt sich um eine DLL mit reiner C-Schnittstelle).<br />
Beim Einbinden der DLL dann einfach</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
#include &quot;DLL.h&quot; // wie auch immer die Header-Datei der DLL heißt
}
</code></pre>
<p>angeben.</p>
<p>Sollte es jedoch eine DLL mit C++-Schnittstelle sein (z.B. Verwendung von std::string oder std::iostream als Parameter), dann funktioniert es leider nicht und du mußt einen anderen Weg wählen.</p>
<p>Bevor du jedoch die komplette Anwendung neu schreibst, würde ich einfach mit dem MS-Visual Studio selber eine DLL (mit reiner C-Schnittstelle) erstellen, welche die Funktionen der externen DLL einfach wrappt und über oben gezeigten Weg die DLL mit dem Borland Builder einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380583</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 08 Oct 2007 15:30:24 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 14:12:57 GMT]]></title><description><![CDATA[<p>Natürlich liegts am name mangling der externen DLLs... LEIDER...</p>
<p>Implib hat total versagt. Das war vor 6 Wochen mein erster Gedanke. Das Wrappen der Zweite. Haben wir aber verworfen. Die BV-Lib ist nicht die Einzige. Da kommen noch diverse Treiber dazu. --&gt; Umständlichkeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381346</guid><dc:creator><![CDATA[Shogun]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:12:57 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 14:34:17 GMT]]></title><description><![CDATA[<p>Handelt es sich um <a href="http://www.mvtec.com/halcon/programming/" rel="nofollow">das hier</a>?<br />
Dafür gibt es nämlich offenbar auch eine COM- und eine C-Schnittstelle...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381376</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 09 Oct 2007 14:34:17 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 16:34:35 GMT]]></title><description><![CDATA[<p>Ich weiss. Aber das COM Konzept bedeutet für mich böhmische Dörfer. Irgendwo hat mir mal einer geflüstert, dass es auch nicht performant wär.</p>
<p>Die C Schnittstelle, an die du denkst kann man vergessen. Ich hab mit dem Support telefoniert. Und der meinte, dass die einzige Möglichkeit die COM Schnittstellen wären. Sie hätten schon vor Jahren angefangen Support Anfragen an Borland zu stellen, weil der Compiler nicht will, haben aber nie eine Reaktion bekommen.</p>
<p>Ich hab jedenfalls den Eindruck, dass die meisten Bibliotheken oder Treiber, die man kauft nur MSVC mögen. Ich finde, dass einfach Microsoft so sehr die Finger in der Industrie hat, dass es zuviele Hürden gibt. Auch die Boost ist erst seit kurzem wirklich unter Borland laufend.</p>
<p>Also sämtliche BV-Firmen, in denen ich Leute kenne, arbeiten mit dem Studio. Bis auf den einen oder anderen Enthusiasten, der Linux benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381476</guid><dc:creator><![CDATA[Shogun (ups logout)]]></dc:creator><pubDate>Tue, 09 Oct 2007 16:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 16:43:35 GMT]]></title><description><![CDATA[<p>visual studio ist halt de-facto standard unter windows. warum borland da nicht für mehr kompatibilität sorgt, ist für mich unbegreiflich. das name mangling nachzubauen kann ja so schwer nicht sein.</p>
<p>unter linux ist man bestimmt genauso aufgeschmissen wenn man c++ programmiert aber nicht gpp, sondern codewarrior oder was es da sonst noch gibt benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381481</guid><dc:creator><![CDATA[cpt. obvious]]></dc:creator><pubDate>Tue, 09 Oct 2007 16:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 16:58:26 GMT]]></title><description><![CDATA[<p>Shogun (ups logout) schrieb:</p>
<blockquote>
<p>Ich weiss. Aber das COM Konzept bedeutet für mich böhmische Dörfer.</p>
</blockquote>
<p>COM jedenfalls würde ich mir mal ansehen. Es gibt zwar ein paar Hürden beim Einstieg, doch mußt du dir überlegen, ob diese oder der komplette Wechsel auf VS schwerer wiegen.</p>
<p>Shogun (ups logout) schrieb:</p>
<blockquote>
<p>Die C Schnittstelle, an die du denkst kann man vergessen. Ich hab mit dem Support telefoniert. Und der meinte, dass die einzige Möglichkeit die COM Schnittstellen wären. Sie hätten schon vor Jahren angefangen Support Anfragen an Borland zu stellen, weil der Compiler nicht will, haben aber nie eine Reaktion bekommen.</p>
</blockquote>
<p>Wenn es eine C-Schnittstelle ist, woran sollte es dann scheitern? Sicher nicht am BCC. Mehr Details bitte.</p>
<p>cpt. obvious schrieb:</p>
<blockquote>
<p>warum borland da nicht für mehr kompatibilität sorgt, ist für mich unbegreiflich. das name mangling nachzubauen kann ja so schwer nicht sein.</p>
</blockquote>
<p>Für Borland zählt ja nicht nur die Microsoft-, sondern vor allem die Abwärts- und Delphi-Kompatibilität. Und diese überliefern nun mal ein eigenes Objektdateien-, Datenstruktur- und .LIB-Format sowie eigene Name-Mangling-Konventionen. Würde man den BCC binärkompatibel mit einem anderen Compiler machen wollen, müßte man all diese ändern, und bei dem Aufwand, und da man sich die kompatibilitätsabhängige und die Delphi-orientierte Kundschaft damit verscherzt, könnte man gleich den anderen Compiler lizensieren.</p>
<p>Ich hoffe, dir ist es jetzt begreiflich <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/1381489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381489</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 09 Oct 2007 16:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 18:59:19 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>cpt. obvious schrieb:</p>
<blockquote>
<p>warum borland da nicht für mehr kompatibilität sorgt, ist für mich unbegreiflich. das name mangling nachzubauen kann ja so schwer nicht sein.</p>
</blockquote>
<p>Für Borland zählt ja nicht nur die Microsoft-, sondern vor allem die Abwärts- und Delphi-Kompatibilität. Und diese überliefern nun mal ein eigenes Objektdateien-, Datenstruktur- und .LIB-Format sowie eigene Name-Mangling-Konventionen. Würde man den BCC binärkompatibel mit einem anderen Compiler machen wollen, müßte man all diese ändern, und bei dem Aufwand, und da man sich die kompatibilitätsabhängige und die Delphi-orientierte Kundschaft damit verscherzt, könnte man gleich den anderen Compiler lizensieren.</p>
<p>Ich hoffe, dir ist es jetzt begreiflich <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>
</blockquote>
<p>nein, ist es nicht. das ist ja alles schön und gut. das sollte borland aber nicht daran hindern, die kompatibilität *zusätzlich* einzubauen, zumindest was die verwendung von msvc-libs betrifft. implib reicht dafür offenkundig nicht aus. damit würde man sich sicher nix verscherzen, im gegenteil.</p>
<p>wenn microsoft auf proprietäres gedöns setzt, schimpfen immer alle. wenn borland das zum leidwesen seiner kunden macht, dann ist das voll in ordnung, der kompatibilität mit sich selber wegen. lustigerweise wird bei msvc ja das offene format (COFF) benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381565</guid><dc:creator><![CDATA[cpt. obvious]]></dc:creator><pubDate>Tue, 09 Oct 2007 18:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to Mit was mache ich weiter -&amp;gt; Portieren einer BCB Forms Anwendung -&amp;gt; Mayday on Tue, 09 Oct 2007 19:47:06 GMT]]></title><description><![CDATA[<p>cpt. obvious schrieb:</p>
<blockquote>
<p>das sollte borland aber nicht daran hindern, die kompatibilität *zusätzlich* einzubauen, zumindest was die verwendung von msvc-libs betrifft.</p>
</blockquote>
<p>Klar wäre es mit vertretbarem Aufwand möglich, mit den Namensdekorierungen von VC++ umzugehen. Und dann? Du kannst die Funktionen theoretisch aufrufen, aber übergibt VC++ this im gleichen Register, oder gar über den Stack? Wie wird der Rückgabewert übergeben? Wo ist der VTable-Zeiger innerhalb einer Klasse? Wie ist die VTable aufgebaut? Gibt es u.U. spezielle Optimierungen in diesem Bereich? Wie ist die dynamische Speicherverwaltung genau implementiert, was hat zu passieren, wenn ein Objekt mit delete freigegeben wird? Wie genau sind Exceptions implementiert?</p>
<p>All das sind Fragen, die auftauchen, weil der C++-Standard ihre Implementation nicht genau spezifiziert hat. Der C-Standard zusammen mit ein paar Windows-Konventionen ist da ergiebiger: eine C-Funktion im Stil der WinAPI (kein Rückgabewert größer als Register, Übergabe von Datenstrukturen per Zeiger) ist völlig compilerunabhängig. Da der C++-Standard keine Vorgaben hinsichtlich der genannten Punkte macht, gilt grundsätzlich: kompilierter C++-Code ist zwischen verschiedenen Compilern nicht austauschbar. Und der BCC ist da kein Sonderfall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381585</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 09 Oct 2007 19:47:06 GMT</pubDate></item></channel></rss>