Приветсвую!
Есть следующий код:
Код:
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?