Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

DLL in C mit dem GCC

  Alt 16. Aug 2006, 10:49
Ich versuche gerade eine DLL mit dem GCC zu schreiben und sie in einem Delphi Programm zu verwenden:

FirstDLL.c:
Code:
#include <windows.h>
#include "FirstDLL.h"

int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
     return 1;
}

EXPORT int add(int a,int b)
{
   return a+b;
}
FirstDLL.h:
Code:
#ifndef FIRSTDLL_H_
#define FIRSTDLL_H_

#endif /*FIRSTDLL_H_*/

#ifdef __cplusplus
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

EXPORT int add(int,int);
Und der Aufruf in Delphi:
Delphi-Quellcode:
type
  TAdd = function(a, b: Integer): Integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  hLib: THandle;
  s: String;
begin
  s := IncludeTrailingBackSlash(ExtractFilePath(ParamStr(0)))+ 'FirstDLL.dll';
  hLib := LoadLibrary(PChar(s));
  if hLib <> 0 then
  begin

    FreeLibrary(hLib);
  end
  else
    ShowMessage(SysErrorMessage(GetLastError));
end;
Wen ich jetzt aber auf den Button klicke bleibt das Programm bei LoadLibrary einfach hängen und reagiert nicht mehr. Was mache ich da falsch?

Ich habe mal die DLL mit dem DeopendencyWalker geöffnet. ScreenShot im Anhang. Irgendwie will er eine MSJava.dll einbinden, aber die habe ich auf meinem ganzen System nicht gefunden.
Miniaturansicht angehängter Grafiken
dw_199.jpg  
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat