Например, если я объявлю функцию в основном приложении и передам указатель на нее из динамически загруженной библиотеки (через dlopen
в Linux или LoadLibrary
в Windows), используя аргумент gotten symbol (через dlsym
или GetProcAddress
соответственно) и попытаюсь вызвать эту функцию, будет ли она работать правильно?
То же самое, если передавать указатель из одной динамически загруженной библиотеки в другую? Я думаю, это должно работать, если указатель хотя бы относительно приложения, но не относительно модуля/библиотеки.
Другой пример. Я объявляю функцию в одном приложении и передаю указатель на нее в другое полностью независимое приложение (как C, так и C++) каким-то образом (строка параметров или файл i/o - не знаю как, просто идея) и пытаюсь вызвать эту функцию, это тоже будет работать? Я мог бы ожидать, что она будет работать, если указатели абсолютны. Может быть, это просто не сработает, потому что система вообще не любит такие перекрестные вызовы из-за безопасности?