Я пробовал из под веб-сервера запускать exe-шник который подключает эту DLL и вызывает функцию, возвращающую хендл. Результат тот же, из командной строки все ок, из под сервера - нули и ошибки
Так что скорее дело в принципе, а не в языке
use Win32::API;
use Win32::API::Prototype;
ApiLink(\'mglue32.dll\', \'HANDLE MG_OpenSession(LPSTR lpParamStr, int nShow)\');
$handle=MG_OpenSession("NULL",SW_NORMAL);
print "$handle\\n";
P.S. пожалуйста, перемести эту тему в раздел веб-технологии