Невозможно связать 32-битные приложения с 64-битными библиотеками и наоборот.Проблема в том, что указатели и типы вообще не могут передаваться между ними.Обычно обходной путь состоит в том, чтобы порождать дочерний процесс другого размера и использовать IPC для связи с этим процессом.
Подумайте об этом так: если у меня есть тривиальная функция C:
extern void foo(void*);
Если он находится в 64-битной библиотеке и я пытаюсь вызвать его из 32-битной библиотеки, откуда берется другая половина указателя?
И наоборот, если он находится в 32-битной библиотеке и я вызываю его из 64-битного приложения, чтопроисходит с другой половиной указателя, который я должен был бы потерять, чтобы вызвать его?