Since a shared object file may have several different module functions, and you may be interested only in one of them, GOCR enables you to decide exactly which module function should be run, and the order they do that. The functions that load module functions are:
gocr_functionDeleteById is straight forward. Its sole argument is the id of the module function you want to delete. As usual, returns -1 if error, 0 on success.
Last, but not least, there's gocr_functionInsertBefore. It works like its counterpart gocr_functionAppend, but there's a difference: it allows you to insert a function in the middle of the list. Good for the absent minded ones. The first three arguments are the same of gocr_functionAppend, and the fourth argument is the id of the function that is be just after the position you want to insert the new function. So, if you want to insert a function in the first position, you should pass the id of the current first position function. Hm. Read it again, and it should become clearer. ;-)
The order of the inclusion is very important, since it will determine the order of running. So, if you add a module function to recognize cyrilic text before latin text and try to decode a latin text, it'll be much slower than if you did vice-versa. Always sort the functions by the probability of their usefullness.
Note that you don't need to specify in which shared object file the function is; GOCR does it automatically for you.