Встречаю не первый раз dll в которых помимио нормальных функций присутствуют функции у которых длинные составные имена, я только могу предположить что это что то типа пространства имен. Как использовать в ASM такие функции? Код (Text): ??0PxRigidActorGeneratedInfo@physx@@QEAA@XZ ??0PxRigidActorGeneratedValues@physx@@QEAA@PEBVPxRigidActor@1@@Z ??0PxRigidBodyGeneratedInfo@physx@@QEAA@XZ ??0PxRigidBodyGeneratedValues@physx@@QEAA@PEBVPxRigidBody@1@@Z ??0PxRigidDynamicGeneratedInfo@physx@@QEAA@XZ ??0PxRigidDynamicGeneratedValues@physx@@QEAA@PEBVPxRigidDynamic@1@@Z ??0PxRigidStaticGeneratedInfo@physx@@QEAA@XZ ??0PxRigidStaticGeneratedValues@physx@@QEAA@PEBVPxRigidStatic@1@@Z Как в FASM импортировать такие функции в свою программу?
Это манглинг имен С++. https://en.wikipedia.org/wiki/Name_mangling Так а просто внешнюю функцию объявить с таким именем не работает? И потом надо иметь ввиду, что функции С++ могут выбрасывать исключения (в этой ситуации ты должен будешь их как-то обработать в ассемблере), и то, что this указатель вроде через ecx/rcx передается, если ничего не путаю.
Спасибо. Т.е. вот прям так делать таблицу импорта с таким уродским именем? Код (ASM): namedll,\ PxRigidActorGeneratedInfo, '??0PxRigidActorGeneratedInfo@physx@@QEAA@XZ' А про исключения, в какую сторону копать? SEH ?