<?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[Borland Dll &amp;amp; Visual Studio Problem]]></title><description><![CDATA[<p>Ich schreibe mit dem BDS 2006 eine DLL für das Backend eines Programmes während ein Freund das Frontend (mit VS) schreibt.</p>
<p>Funktionen exportiere ich mit extern &quot;c&quot; damit es mit den unterschiedlichen compilern funktioniert.</p>
<p>Bisher haben wir nur int Werte ausgetauscht was immer funktioniert hat.</p>
<p>Nun muss aber eine string meiner dll übergeben werden sowie ein String zurückgeliefert werden und hier fangen auch die Probleme an.</p>
<p>Bei der Erstellung der Borland dll wird geraten das ich keine std strings übergebe sondern char*. Gut hab ich gemacht. Meine dll kompiliert, das vs programm auch. Wird das Programm auf meinem Rechner (mit der Dll) ausgeführt dann klappt alles einwandfrei. Wird das Programm jedoch auf dem Rechner meines Freundes ausgeführt kommt es zu einer exception.</p>
<p>Leider hab ich hier weder meinem compiler noch weis ich den genauen inhalt der fehlermeldung (auf alle fälle hat die meldung wohl keine besonders große aussagekraft gehabt, sonst wäre ich jetzt nicht hiet).</p>
<p>Woran kann das Problem liegen? Bitte um Hilfe. Habe absolut keine Ahnung was solch einen Fehler verursacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153034/borland-dll-amp-visual-studio-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 17:28:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153034.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Jul 2006 09:29:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 09:29:49 GMT]]></title><description><![CDATA[<p>Ich schreibe mit dem BDS 2006 eine DLL für das Backend eines Programmes während ein Freund das Frontend (mit VS) schreibt.</p>
<p>Funktionen exportiere ich mit extern &quot;c&quot; damit es mit den unterschiedlichen compilern funktioniert.</p>
<p>Bisher haben wir nur int Werte ausgetauscht was immer funktioniert hat.</p>
<p>Nun muss aber eine string meiner dll übergeben werden sowie ein String zurückgeliefert werden und hier fangen auch die Probleme an.</p>
<p>Bei der Erstellung der Borland dll wird geraten das ich keine std strings übergebe sondern char*. Gut hab ich gemacht. Meine dll kompiliert, das vs programm auch. Wird das Programm auf meinem Rechner (mit der Dll) ausgeführt dann klappt alles einwandfrei. Wird das Programm jedoch auf dem Rechner meines Freundes ausgeführt kommt es zu einer exception.</p>
<p>Leider hab ich hier weder meinem compiler noch weis ich den genauen inhalt der fehlermeldung (auf alle fälle hat die meldung wohl keine besonders große aussagekraft gehabt, sonst wäre ich jetzt nicht hiet).</p>
<p>Woran kann das Problem liegen? Bitte um Hilfe. Habe absolut keine Ahnung was solch einen Fehler verursacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096260</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Jul 2006 09:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 10:23:08 GMT]]></title><description><![CDATA[<p>Evtl. handelt es sich um eine Debugversion, du solltest sicherstellen,<br />
das du im Release Modus kompilierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096299</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Wed, 12 Jul 2006 10:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 11:12:59 GMT]]></title><description><![CDATA[<p>Ja es handelt sich um eine Debug-Version. Aber bisher ist es doch auch (mit Integer Werten) gegangen?</p>
<p>Was ändert release überhaupt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096336</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Jul 2006 11:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 11:42:42 GMT]]></title><description><![CDATA[<p>Ist der String, den Ihr austauscht, Nullterminiert? Vieleicht holt sich dein Freund (oder irgendeine Funktion des VS) die Stringlänge mit strlen (oder irgendeiner Funktion die eine Nullterminierte Zeichenkette erwartet).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096358</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Wed, 12 Jul 2006 11:42:42 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 11:46:32 GMT]]></title><description><![CDATA[<p>Wenn ihr char* übergibt, dann mit der .c_str()-Funktion von std::string. Vielleicht habt ihr .data() benutzt, die nicht null-terminiert sein muß (aber kann!). Nur .c_str() garantiert eine Null-terminierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096361</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 12 Jul 2006 11:46:32 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 12:02:49 GMT]]></title><description><![CDATA[<p>Kann es sein, dass du unter einer WinNT version (Win2000 - WinXP) und dein Freund unter einer Win95 Version arbeitet (Win95 - WinME)?</p>
<p>Fals ja dann schau mal ob die Aufrufskonventionen stimmen. WinNT arbeitet oft auch mit kapputem Stack weiter und kommt sogar zum erwartetem Ergebnis wogegen Win95 äußerst anfällig hierfür ist.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a> Ich glaub nicht, dass es daran liegt. Erstens ist soweit ich weiß die .data() von Borland null terminiert und das würde nicht das unterschiedliche Verhalten erklären. Einmal übersetzt kann ich nähmlich nicht vorstellen, dass das Verhalten von .data() ändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096367</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Wed, 12 Jul 2006 12:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 12:06:42 GMT]]></title><description><![CDATA[<p>Die Strings sollten eigentlich alle Null terminiert sein (da ich eben .c_str() verwende).</p>
<p>Aber inwiefern soll das was ausmachen wenn die dll und die exe schon kompiliert sind und der error erst dann kommt wenn er auf unseren sytemen ausgeführt wird? (Das ist ja eben das sonderbare)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7575">@Ben04</a> Nein, wird arbeiten beide auf xp. (ich weis aber nicht ob mein freund home oder prof hat. Das sollte dann aber doch nicht das Problem sein?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096371</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Jul 2006 12:06:42 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 12:25:17 GMT]]></title><description><![CDATA[<p>Gen.d.Pz.Tr.Seb schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7575">@Ben04</a> Nein, wird arbeiten beide auf xp. (ich weis aber nicht ob mein freund home oder prof hat. Das sollte dann aber doch nicht das Problem sein?)</p>
</blockquote>
<p>Nein, das sollte nicht das Problem sein. Prof und Home unterscheiden sich nämlich soweit ich weiß nur durch die Abwesenheit mancher Komponenten und nicht durch eine andere Implementirung wie es bei WinNT und Win95 der Fall ist.</p>
<p>Seit ihr sicher, dass der Fehler überhaupt durch den Funktionsaufruf ausgelöst wird?</p>
<p>Handelt es sich auf beiden PCs um genau die gleiche Executable oder wurde die eine mit dem VC und die andere mit dem Borland zusammengelinkt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096385</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Wed, 12 Jul 2006 12:25:17 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 12:31:36 GMT]]></title><description><![CDATA[<p>Ja, der Fehler wird durch den Funktionsaufruf (mit den char*) ausgelöst. Wird der auskommentiert geht alles (also die anderen Funktionen die alle nur integers nehmen und geben).</p>
<p>Es ist dieselbe exe (sprich sie wird immer vom VS zusammengelinkt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096395</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 12 Jul 2006 12:31:36 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 18:52:56 GMT]]></title><description><![CDATA[<p>Declarire den Parameter mal als int und caste vom Pointer und zum Pointer zurück. Ist nicht die schöne Art aber wenn es nicht anders geht. Sollte aber eigentlich nichts ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096698</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Wed, 12 Jul 2006 18:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Borland Dll &amp;amp; Visual Studio Problem on Wed, 12 Jul 2006 19:17:28 GMT]]></title><description><![CDATA[<p>Du übergibst aus der DLL- Funktion einen char* zu MS- Programm?<br />
Kann ev. daran liegen, dss z.B. bei Borland AnsiStrin(auch mit anderen Strings) mit c_str() ein temporäreres Ding erzeugt wird.<br />
Keiner weis wie lange das im RAM vorhanden ist. Die Gültigkeit verliert sich am Ende der Funktion.</p>
<p>Du kannst eine char[] Array dynamisch erzeugen. Dahinein KOPIERST Du den c_str() und übergibst den Zeiger. Der Aufrufer muss allerdings den Speicher freigeben.</p>
<p>Oder eine char Variable übergeben (die gross genug ist) und in diese das Ergebnis schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1096709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1096709</guid><dc:creator><![CDATA[DerAltenburger]]></dc:creator><pubDate>Wed, 12 Jul 2006 19:17:28 GMT</pubDate></item></channel></rss>