Actually, you CAN use a mapped drive when running an app as a service.
Your service must be running under a user name that has credentials that allow drives to be mapped. In the Windows NT days, we used to find we could just log in as that user, map the drive, then when the service started under that login, the drives would be available. (And, the AutoExec resource kit tool allowed you to do this.)
However, it is better for your app to be passed drive mapping information (login name, password, drive) and use the WNetAddConnection2 function. You could pass it in to your service in a configuration file, such as an ini file, or create a registry entry to store the information. When your service starts, it should check for the settings, and attempt to map the drive, and report errors accordingly.