10.05.2007, 16:32 | #1 |
Участник
|
Ошибка в WinAPI::moveFileEx
в очередной раз поразился криворукости или кривоглазости разработчиков на sys (AX3.0sp2):
X++: client server static int moveFileEx(str fileName, str newFileName, int flags = 0) { DLL _winApiDLL = new DLL(#KERNELDLL); DLLFunction _moveFile = new DLLFunction(_winApiDLL, 'MoveFileExA'); _moveFile.returns(ExtTypes::DWord); _moveFile.arg(ExtTypes::String, ExtTypes::String, ExtTypes::DWord); if (_moveFile.call(fileName, newFileName, flags) == 0) // !!!!! if (!_moveFile.call(fileName, newFileName, flags) == 0) ОШИБКА !!!!! return WinAPI::getLastError(); return 0; }
__________________
--- SHiSHok Последний раз редактировалось SHiSHok; 10.05.2007 в 17:48. Причина: уточнение |
|
10.05.2007, 17:01 | #2 |
Участник
|
Да. в Ax4 заменили вот этим:
X++: client static int moveFileEx(str fileName, str newFileName, int flags = 0) { DLL _winApiDLL = new DLL(#KERNELDLL); DLLFunction _moveFile = new DLLFunction(_winApiDLL, 'MoveFileExW'); _moveFile.returns(ExtTypes::DWord); _moveFile.arg(ExtTypes::WString, ExtTypes::WString, ExtTypes::DWord); // [msdn documentation] // MoveFileEx() - return values: // If the function succeeds, the return value is nonzero. // If the function fails, the return value is zero. // To get extended error information, call GetLastError. if (!_moveFile.call(fileName, newFileName, flags)) return WinAPI::getLastError(); return 0; } |
|