Что произойдет при несоответствии сигнатур функций по константности аргументов при экспорте/загрузке из DLL?
Рассмотрим два следующих прототипа функций:
extern "C"
{
void a(void* p);
void b(const void* p);
}
Скажите, пожалуйста, влияет ли спецификатор константности аргумента функции на генерируемый код при экспорте символа из DLL?
Конкретно меня интересует следующая ситуация:
Внутри DLL функция экспортируется как:
extern "C" void func(const void* p);
Но пользователь библиотеки работает с загруженной функцией через указатель, который имеет сигнатуру:
void (*)(void*);
Я понимаю, что если сделать наоборот, то будет плохо. Но если сделать так?