Доброго всем.
Есть проект. https://github.com/DGLE-HQ/DGLE
Игровой движок, написанный на с++, компилируется на vs2010 в длл, реализует интерфейсы (для межпроцессного взаимодействия идёт реализация СОМ), я сотрудничаю с автором по вопросам поддержки паскаля и дотнет-сборки.
К движку подключаюсь из дельфи (а также сишарпа, и плюсов) - всё отлично работает на вин7 и винхп.
Начал делать поддержку фрипаскаля, унифицировал хедеры, сделал единые для дельфи и фрипаскаля (дифайны и касты, остального копейки).
Паскаль-Демки (тоже делаю я), также имеют единый код для дельфи (и демки и хедеры тестировались под дельфи 7, дельфи 2007, дельфи 2009+) и фпц. Самые последние фиксы, правда, тестировал пока только скомпилировав на дельфи 2007, но думаю это не суть (могу вечером погонять).
В результате:
Демки, скомпиленые в дельфях бегают как по писанному (идентично оригиналам демок на с++ из комплекта движка) на любых виндах.
Демки, скомпиленные в фпц (и/или на лазаре, если вдруг имеет значение), на винХП бегают тоже идеально (проверялось на нескольких винхп).
Демки, скомпиленные в фпц на вин7, крешатся при первом обращении к полученному из дллки главному интерфейсу движка IEngineCore.
Сам движковый интерфейс получается из либы вроде как нормально (ошибки, сообщаемые виндой и самим движком мониторятся, везде успех), хотя не могу судить, в лазаре вотчесы не дают какой-то картины по интерфейсам (но надо уточнить, дебаг сессию под винхп в лазаре ещё не проводил, только дебажил под вин7).
Т.о. получаем внешне валидный интерфейс, пытаемся к нему обратиться (метод pEngineCore.InitializeEngine в демках) и AV, насколько я могу судить.
Подозрение на некорректный указатель метода в таблице методов интерфейса.
Были испробованы разные {$MODE } и разные {$INTERFACES } - резалта нет. Фрипаскаль 2.6.2 Лазарь 1.2.0
Почитал темы тут и по инету, пока ничего наводящего на мысли о решении (кроме уже испробованных) не нашёл.
Ваши предложения, господа ?
п.с. Тестировать запуская DPR-ки отсюда https://github.com/DGLE-HQ/DGLE/tree/ma ... les/delphi (хедеры https://github.com/DGLE-HQ/DGLE/tree/ma ... ude/delphi). Лучше скачать всё, т.к. используются медиа-ресурсы (хотя для демок с просто графическими ресурсами, например, Simplest достаточно только dpr и хедеров, отсутствующая графика заменяется на пустышку).
Под лазарем для них создавать простейший проект для консольного приложения.