<?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[dll unter Visual Studio .net für Dephi 7 erstellen]]></title><description><![CDATA[<p>Hi,</p>
<p>möchte C-Code (geschriebene Funktionen) in delphi 7 verwenden.<br />
wie erstelle ich unter Visual Studio .net eine dll die von einem delphi 7 programm geladen werden kann.</p>
<p>irgendwo eine gute anleitung im netz?</p>
<p>oder<br />
was für ein Projekt muss ich auswählen, was noch einstellen?</p>
<p>Code für eine dll mit der funktion<br />
int addieren(int zahl1, zahl2)</p>
<p>als beispiel würde mich evtl. zum Verständnis weiterhelfen.</p>
<p>(habe unter delphi schon eine solche dll geschrieben und auch eingebunden, funktioniert auch ohne probleme, mein Versuch mit einer unter VC erzeugten dll endete mit einem Programmabsturzt)</p>
<p>bye</p>
<p>safexy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/84827/dll-unter-visual-studio-net-für-dephi-7-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 09:08:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/84827.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Sep 2004 16:11:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dll unter Visual Studio .net für Dephi 7 erstellen on Thu, 02 Sep 2004 16:11:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>möchte C-Code (geschriebene Funktionen) in delphi 7 verwenden.<br />
wie erstelle ich unter Visual Studio .net eine dll die von einem delphi 7 programm geladen werden kann.</p>
<p>irgendwo eine gute anleitung im netz?</p>
<p>oder<br />
was für ein Projekt muss ich auswählen, was noch einstellen?</p>
<p>Code für eine dll mit der funktion<br />
int addieren(int zahl1, zahl2)</p>
<p>als beispiel würde mich evtl. zum Verständnis weiterhelfen.</p>
<p>(habe unter delphi schon eine solche dll geschrieben und auch eingebunden, funktioniert auch ohne probleme, mein Versuch mit einer unter VC erzeugten dll endete mit einem Programmabsturzt)</p>
<p>bye</p>
<p>safexy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/598093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598093</guid><dc:creator><![CDATA[safexy]]></dc:creator><pubDate>Thu, 02 Sep 2004 16:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to dll unter Visual Studio .net für Dephi 7 erstellen on Thu, 02 Sep 2004 17:51:18 GMT]]></title><description><![CDATA[<p>Möchtest du die dll mit Hilfe der MFC erstellen? Wenn ja wählste nen MFC-DLL Projekt und schreibst einfach C-Funktionen da rein und die exportierbaren sehen so aus:</p>
<pre><code class="language-cpp">extern &quot;C&quot; __declspec (dllexport) RÜCKGABEWERT __stdcall FUNKTIONSNAME
</code></pre>
<p>Schreibste einfach in PROJEKTNAME.cpp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/598175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598175</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Thu, 02 Sep 2004 17:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to dll unter Visual Studio .net für Dephi 7 erstellen on Thu, 02 Sep 2004 18:36:41 GMT]]></title><description><![CDATA[<p>hier mit MFC (der aufruf unter delphi findet die funkion addiere nicht, handle ergibt NIL)</p>
<pre><code>// rechnen.cpp : Definiert die Initialisierungsroutinen für die DLL.
//

#include &quot;stdafx.h&quot;
#include &quot;rechnen.h&quot;

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CrechnenApp

BEGIN_MESSAGE_MAP(CrechnenApp, CWinApp)
END_MESSAGE_MAP()

// CrechnenApp-Erstellung

extern &quot;C&quot; __declspec(dllexport)
int __stdcall addiere(int zahl1, int zahl2)

{
  return zahl1 + zahl2;
}

CrechnenApp::CrechnenApp()
{
	// TODO: Hier Code zur Konstruktion einfügen
	// Alle wichtigen Initialisierungen in InitInstance positionieren
}

// Das einzige CrechnenApp-Objekt

CrechnenApp theApp;

// CrechnenApp Initialisierung

BOOL CrechnenApp::InitInstance()
{
	CWinApp::InitInstance();

	return TRUE;
}
</code></pre>
<p>hier mein versuch mit win32 dll (gleiche problem)</p>
<pre><code>// rechnen.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.

#include &quot;stdafx.h&quot;

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}

extern &quot;C&quot; int __stdcall addiere(int zahl1, int zahl2)
{
return zahl1+zahl2;
}
</code></pre>
<p>hier der Code der delphi dll (der funktioniert)</p>
<pre><code>library rechnen;  

uses
  SysUtils,
  Classes;

{$R *.res}

function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
  result:=zahl1+zahl2;
end;

exports
  addiere;

begin

end.
</code></pre>
<p>und hier der Programmcode in Delphi der die dll aufruft (mit der delphi erzeugten dll funktioniert es, mit denen aus Visual Studio jedoch nicht)</p>
<pre><code>unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TSummenFunktion = function(zahl1, zahl2: integer): integer; stdcall;
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function addieren(zahl1, zahl2: integer; var summe: integer): integer;
var SummenFunktion: TSummenFunktion;
    Handle: THandle;
begin
  Handle:=LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'rechnen.dll'));
  if Handle &lt;&gt; 0 then begin
    @SummenFunktion := GetProcAddress(Handle, 'addiere');
    if @SummenFunktion &lt;&gt; nil then begin
      summe:=SummenFunktion(zahl1, zahl2);
      result:=1;
    end
    else result:=0;
    FreeLibrary(Handle);
  end
  else result:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var summe: integer;

begin
  if (addieren(strtoint(edit1.Text),strtoint(edit2.Text),summe) &lt;&gt; 0) then
  edit3.Text:=inttostr(summe)
  else edit3.Text:= 'Fehler: DLL nicht ladbar!';
end;

end.
</code></pre>
<p>die dlls habe ich im selben verzeichnis wie das programm selbst (immer das auktuelle in den richtigen Namen umbenannt)</p>
<p>wer kann helfen?</p>
<p>bye<br />
safexy</p>
<p>p.s.:<br />
die delphi bespiele stammen von <a href="http://www.delphi-source.de/tutorials/dlls/?page=1" rel="nofollow">http://www.delphi-source.de/tutorials/dlls/?page=1</a> , wurden jedoch von mir einwenig modifiziert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/598214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598214</guid><dc:creator><![CDATA[safexy]]></dc:creator><pubDate>Thu, 02 Sep 2004 18:36:41 GMT</pubDate></item><item><title><![CDATA[Reply to dll unter Visual Studio .net für Dephi 7 erstellen on Fri, 03 Sep 2004 01:27:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>hab nun alles per Hand erstellt...</p>
<p>headerdatei:</p>
<pre><code>#if!defined DLLTEST_H
#define DLLTEST_H
__declspec(dllexport) int addiere(int zahl1, int zahl2);
#endif
</code></pre>
<p>dlltest.c :</p>
<pre><code>#include &quot;dlltest.h&quot;

__declspec(dllexport) int addiere(int zahl1, int zahl2)

{
return zahl1+zahl2;
}
</code></pre>
<p>bei Aufruf unter obigen delphi-porgramm liefert die dll den richtigen Wert zurück, weise ich den zurückgegebenen Wert summe der Delphi-Funktion<br />
&quot;function addieren(zahl1, zahl2: integer; var summe: integer): integer&quot; außerhalb dieser, einem objekt zu, kommt es zu einem Fehler sobald er die Zuweisung ausführen soll.</p>
<p>bei Verwendung der unter delphi generierten DLL tritt dieser Fehler nicht auf.</p>
<p>was mache ich falsch?</p>
<p>bye</p>
<p>safexy</p>
<p>p.s.: auch wenn ich summe global unter delphi deklariere, passiert dieser mir unverständliche Fehler</p>
<p>Rechtschreibfehler bitte überlesen - es ist schon spät und mach mich nun mal lieber ins Bett <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/598371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598371</guid><dc:creator><![CDATA[safexy]]></dc:creator><pubDate>Fri, 03 Sep 2004 01:27:39 GMT</pubDate></item><item><title><![CDATA[Reply to dll unter Visual Studio .net für Dephi 7 erstellen on Fri, 03 Sep 2004 09:52:33 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>schritt für schritt komm ich etwas weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
da hab ich wohl was vergessen...</p>
<p>ändere ich beide Köpfe in C in</p>
<pre><code>__declspec(dllexport) int __stdcall addiere(int zahl1, int zahl2)
//                      ^^^^^^^^^^^
</code></pre>
<p>sollte es ja auch eigentlich mit stdcall unter Delphi funktionieren..., macht es aber nicht, jetzt findet er einfach die Funktion addiere in der DLL nicht mehr...</p>
<p>belasse ich es in</p>
<pre><code>__declspec(dllexport) int addiere(int zahl1, int zahl2)
</code></pre>
<p>und ändere im Delphiprogramm</p>
<pre><code>type
  TSummenFunktion = function(zahl1, zahl2: integer): integer; stdcall;
</code></pre>
<p>in</p>
<pre><code>type
  TSummenFunktion = function(zahl1, zahl2: integer): integer; cdecl;
</code></pre>
<p>dann funktioniert es.</p>
<p>Meine Frage ist, was muss ich tun, damit ich es unter delphi auch als stdcall aufrufen kann?</p>
<p>bye</p>
<p>safexy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/598590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598590</guid><dc:creator><![CDATA[safexy]]></dc:creator><pubDate>Fri, 03 Sep 2004 09:52:33 GMT</pubDate></item></channel></rss>