Si tienes todo el código escrito en C puesto en una DLL, no has de tener problemas en hacer llamadas a los procedimientos y funciones exportados de dicha DLL
Si por ejemplo tienes definida la siguiente función en la DLL (lo pongo en Delphi porque no se C)
function MiFuncion(hWnd: THandle); stdcall; export;
Desde Delphi puedes hacer una llamada a dicha función de la siguiete manera
Código:
procedure Form1.Button1Click(Sender: TObject);
type
MiFuncion = function(hWnd: THandle); stdcall;
var
Handle: THandle;
begin
Handle := LoadLibrary('MiDll.dll');
if Handle <> nil then
begin
@MiFuncion := GetProcAddress(Handle, 'MiFuncion');
try
if @MiFuncion <> nil then
MiFuncion(Self.Handle);
finally
FreeLibrary(Handle);
end;
end;
end;
Espero que te pueda servir de orientación