Есть библиотека, функции которой используют стандарт вызова отличный от cdecl. Получение адресов на функции происходит посредством dlopen/dlsym.
void ( *lib_SomeFunc )( const int arg1, cont int arg2 );
void lib_Load(void)
{
void* myLib = (void*)dlopen( 'libmy.so', 0x01 );
lib_Init = (typeof(lib_SomeFunc))dlsym( myLib, 'lib_SomeFunc' );
}
В результате функция lib_Init вызывается как cdecl-объявленная, и соответственно аргументы передаются неправильно - справа на лево, а нужно «слева на право». Можно ли как-то объявить lib_Init и указать что-то отличное от cdecl?