OberonCore https://forum.oberoncore.ru/ |
|
Странное поведение функций модуля SYSTEM https://forum.oberoncore.ru/viewtopic.php?f=2&t=714 |
Страница 1 из 1 |
Автор: | hothing [ Среда, 31 Октябрь, 2007 19:19 ] |
Заголовок сообщения: | Странное поведение функций модуля SYSTEM |
Приветсвую! Есть следующий код: Код: PROCEDURE ChDir*; VAR res : WinApi.BOOL; path : PATH_STR; apath: WinApi.PtrSTR; void: WinApi.PtrVoid; addr: INTEGER; BEGIN void := 0; res := 0; apath := NIL; path := "\bin32"; PMD_PATH := "D:\PMDPC\"; path := PMD_PATH + path; void:= WinApi.LocalAlloc(WinApi.LPTR, 512 * SIZE(SHORTCHAR)); [b]SYSTEM.PUT(SYSTEM.ADR(apath), void);[/b] [b](*apath := SYSTEM.VAL(WinApi.PtrSTR, void)*)[/b] ConvStrAPI(path, apath); StdLog.String(path$);StdLog.Ln; res := WinApi.SetCurrentDirectory(apath); void := WinApi.LocalFree(void); END ChDir; Пробовал 2 варианта преобразований (выделены жирым). Но ни один из них не работает. Переменная apath всегда NIL. Собственно суть вопроса: Как правильно приводить указатели WinApi.PtrVoid к любому другому указателю из модуля WinApi? |
Автор: | Сергей Губанов [ Среда, 31 Октябрь, 2007 19:26 ] |
Заголовок сообщения: | Re: Странное поведение функций модуля SYSTEM |
hothing писал(а): Переменная apath всегда NIL. А переменная void? |
Автор: | hothing [ Четверг, 01 Ноябрь, 2007 12:20 ] |
Заголовок сообщения: | Re: Странное поведение функций модуля SYSTEM |
Разобрался. Спасибо. Собственно причина была в не внимательном чтении документаци ![]() Источник ошибки - процедура ConvStrAPI(path, apath), в которой второй параметр был задан как OUT. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |