Ich glaube nicht ganz das es an dem Aufrufkonventionen liegt.
Ich habe noch ein C-Funktion erstellt welche diesmal keine String zurückgibt und auch kein CHAR * sondern zwei int Werte und bei da funktioniert das auf einmal.

C-Funktion:
int Random_Num(int iMin, int iMax)

RPGLE:
cRand PR 10I 0 ExtProc('Random_Num__FiT1')
iMin 10I 0 VALUE
iMax 10I 0 VALUE

Die Werte kommen bei dieser Funktion auch ganz normal in der C-Funktion an, deswegen glaube ich liegt es an dem *CHAR.

PS: Was ich überhaupt nicht nachvollziehen kann, wieso beim erstellen des Modules der Symbolname nicht gleich dem Funktionsnamen ist. Also Random_Num -> Random_Num und nicht wie aktuell Random_Num -> Random_Num__FiT1.