Застрял вот на чем :
Сначала написал програмку на VC++ : подключаю мою DLL-ку, описываю прототип функции которую собираюсь вызывать и собственно вызываю. Одним из параметров функции является указатель на выходной массив, в котором будут содержаться идентификаторы - тип LPDWORD или unsigned long*. Результат возвращается - все ок.
Нужно написать то же самое на Perl\'e :
Подключаю DLL, описываю нужную мне функцию :
ApiLink(\'mglue32.dll\', \'DWORD MG_GetCurSympIds(HANDLE hwnd, DWORD id, LPDWORD lpaid, DWORD dwMaxSize)\');
Вызываю ее в скрипте, на место LPDWORD lpaid подаю например скаляр $list или массив @list пока неважно.
Выделаю под него память $list = " " x 200. Вместо идентификаторов возвращается последовательность символов в юникоде, причем на каждый идентификатор приходится по два символа.
Подскажите что нужно сделать чтобы получить нормальные идентификаторы в виде чисел?
Кстати, если это поможет :
Если в проге на VC++ в прототипе вместо unsigned long* указать char* то вместо целых чисел возвращаеются как раз те самые символы в юникоде