Bonjour !

Je voudrais faire une DLL avec MinGW, qui soit utilisable dans un programme Free Pascal. Voici le modèle actuel de ma DLL, avec un programme de test (en C) et un script pour compiler le tout :

Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
/* mydll.c */
 
#include <string.h>
 
__declspec(dllexport) int __cdecl MaFonction(char ch[])
{
  return strlen(ch);
}

Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* usemydll.c */
 
#include <stdlib.h>
#include <stdio.h>
 
__declspec(dllimport) int __cdecl MaFonction(char ch[]);
 
int main(int argc, char** argv)
{
  char c[] = "";
 
  printf("%d\n", MaFonction(c));
 
  return EXIT_SUCCESS;
}

Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
 
rem build-all.cmd
 
for %%f in (*.dll *.exe *.o) do del %%f
 
set path=c:\mingw\bin
set dll=mydll
set exe=usemydll
 
rem http://www.transmissionzero.co.uk/computing/building-dlls-with-mingw/
 
gcc.exe -c -o %dll%.o %dll%.c
gcc.exe -o %dll%.dll -s -shared %dll%.o -Wl,--subsystem,windows
 
gcc.exe -c -o %exe%.o %exe%.c
gcc.exe -o %exe%.exe -s %exe%.o -L. -l%dll%
 
call %exe%
 
pause

A votre avis, cette DLL est-elle utilisable avec Free Pascal ? Avec quel code ?