Si, c'est normal. Voici la doc de PreOS :
35-kernel::LibsExec(char *lib_name, WORD function, BYTE version, ...) (Preos only)
The parameters are pushed on the stack.
It calls the function without modifying the registers, and it pops its argument
during the call (LIB_DESCRIPTOR, function, and version).
BYTE doesn't follow the C convesion for char (Sorry). Uses macro instead.
It relocs the library, calls the function and unreallocs the library.
The parameters pushed on the stack are corrupted.
If there is an error, the parameter 'lib_name' equals zero after the call.
LibsExec appelle une fonction inconnue d'une lib, et renvoie void, mais la valeur de retour de la fonction appelée dans la lib n'est pas détruite. Evidemment, LibsExec ne pouvant pas deviner de quel type va être cette valeur de retour, elle est déclarée void, mais c'est pas étonnant de vouloir utiliser une valeur de retour (en l'occurence, j'appelle via LibsExec une fonction qui renvoie un LibRef*).