Mesh deform (and other modifiers, like boolean) uses two objects.
For mesh deform :
- The first one is the one to be deformed : the modifier is defined on this object
- The second one is the deforming object : it has to be set in the 'object' field of the modifier
An example :
Here two objects : the cylinder will be the object to be deformed and the cube is the deforming object. The cube must surround the parts of the cylinder we want to be deformed. So it is easier to hide the cube faces to see the cylinder inside :

Now select the cylinder, add the modifier and set the cube as deforming object :

This modifier has a particularity : Blender needs to do some calculations before the modifier can be used. As these calculations can be a bit long, it is needed to click on the "bind" button to make it work (above the calculation time, bind/unbind is also a way to change the initial configuration if needed, clicking on the 'unbind' button available once the binding is done).
Once bound, you can edit the cube mesh to deform the cylinder :

But you can also use other modifiers on the cube to deform it and the cylinder will follow. Here an example with an armature modifier set to the cube. So the armature influences the cube and the mesh deform modifier influences the cylinder as the cube is transformed :

Concerning the warning you indicate in your question : this is because the object field is not defined in the modifier panel.
The "apply" button (for all modifiers) is used to freeze/transform the object at the position (or geometry, etc.) it is when you apply. And once applied the concerned object is really modified and the modifier disappears from the panel.