OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 12 Май, 2024 10:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 31 Октябрь, 2007 19:19 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Приветсвую!

Есть следующий код:
Код:
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 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
hothing писал(а):
Переменная apath всегда NIL.

А переменная void?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 01 Ноябрь, 2007 12:20 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Разобрался. Спасибо.

Собственно причина была в не внимательном чтении документаци :oops:

Источник ошибки - процедура ConvStrAPI(path, apath), в которой второй параметр был задан как OUT.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB