У меня возникла проблема с запуском на сервере Winapi::findFirstFile
. я havve уже пытался копировать метод на классе WinapiServer, и изменить некоторые строки, например:Попробуйте использовать Winapi :: findFirstFile, запущенный на сервере
server static container findFirstFile(str filename)
{
InteropPermission interopPerm;
Binary data;
DLL _winApiDLL;
DLLFunction _findFirstFile;
;
interopPerm = new InteropPermission(InteropKind::DllInterop);
interopPerm.assert();
data = new Binary(592); // size of WIN32_FIND_DATA when sizeof(TCHAR)==2
_winApiDLL = new DLL(#KernelDLL);
_findFirstFile = new DLLFunction(_winApiDLL, 'FindFirstFileW');
_findFirstFile.returns(ExtTypes::DWord);
_findFirstFile.arg(ExtTypes::WString,ExtTypes::Pointer);
return [_findFirstFile.call(filename, data),data.wString(#offset44)];
}
Но теперь у меня есть еще один вид ошибки Функция «FindFirstFileW» на библиотеки DLL «KERNEL32» выдает исключение.
Это потому, что я выполняю метод на сервере x64. Кто-нибудь, кто решил решить эту проблему?
Вы указали точное сообщение об ошибке из информационного журнала? –
Какое исключение он бросает? Возможно, AX выбрасывает, поскольку WinAPI не генерирует исключений, он возвращает коды ошибок. Попробуйте 'WinAPIServer :: getLastError()', чтобы получить код ошибки –