Coincido con
Ñuño Martínez en que no has copiado bien el archivo cabecera C:
Código:
void (__cdecl *cgLevelWarningCall)( short warningType, long denomination, short numberOf, char* typeString, #ifdef __cplusplus
No tiene sentido, te faltan cosas detrás de typeString...
Por otro lado, la función
registerEvents3CG recibe como parámetros punteros a funciones void C. En delphi debes pasar los punteros a los procedimientos adecuados.
Es importante saber como están exportadas las funciones C en esa dll, en algunas ocasiones aparecen "nombres decorados", con la dll en la mano, lo podemos saber.
Sin las declaraciones correctas en C y sin la dll en cuestión, no se te puede ofrecer más ayuda.
Saludos.