Well you don't need marker objects, but they don't really add any notable overhead.
If you want to just use the use the positions you can just compare the delta between the bounding box of the platform and the enemy like so.
Enemy and Platform are both sprites in this example. Enemy has a single instance variable called direction and the platform behaviour. The platform behaviour has the default controls disabled so we can simulate the control input using events. The Platform object has the solid behaviour.
The events visit each enemy character, and find the closest platform instance to them. Then checks the distance between the left bounding box edges, then the right bounding box edges. If it's close to the left edge we change direction to "right" if it's close to the right edge we change the direction to "left". Then finally we check the direction variable, and simulate the control for the desired direction.