:: Архив конференции по VFP до 2005 года
Re: Опять win32api в Фоксе
Syberex
Автор

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Игорь спасибо!
Igor Korolyov
А почему 20 - так сам посчитай
Вот почемуто никак и не получалось посчитать...

Igor Korolyov
Ну а чтоб работать с "ссылками на строки" надо либо самому memory management
делать (HeapAlloc там и т.п.), либо взять обёртку clsheap.prg или struct.vcx
Я это понял, HeapAlloc() использовал, как откопал в классе rawprint.
А вот обертки посмотрю оязательно! (как понял это из сэмплов...)

Igor Korolyov
можно в более-менее свежем фоксе
воспользоваться SYS(2600) для решения части проблем...
VFP6 в данномможно считать свежим?




------------------
Ratings: 0 negative/0 positive
Re: Опять win32api в Фоксе
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Syberex!

Цитата:
Igor Korolyov
можно в более-менее свежем фоксе
воспользоваться SYS(2600) для решения части проблем...
VFP6 в данномможно считать свежим?
У меня его нигде под рукой нет потому не скажу. В VFP7SP1 он уже есть.
Проверь сам (может оказаться что функция недокументирована, но работает )




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Опять win32api в Фоксе
Syberex
Автор

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Приверил, работает, но вот как ей пользоваться?
?sys(2600) && об ошибке не говорит и ничего не выводит

Igor Korolyov
либо взять обёртку clsheap.prg или struct.vcx
Не нашел у себя этих файлов, весь диск перерыл...
Можешь их вложить сюда?




------------------
Ratings: 0 negative/0 positive
Re: Опять win32api в Фоксе
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Syberex!

=========Beginning of the citation==============
SYS(2600) - Return Pointer as String


Interprets an integer as pointer into memory and returns the contents of
that memory as a string, or writes new data to that memory location.

SYS(2600, dwAddress, nLength [, cNewString])

Parameters
dwAddress

Specifies the pointer to a memory address. This value is interpreted as an
integer.
nLength

Specifies the number of bytes to read from dwAddress.
cNewString

Specifies a value to be returned to dwAddress.
Remarks
This function is for advanced programmers only.

Examples
The following code returns the string cRes, which contains the nLen bytes
starting at nAddress:

Copy Code
cRes = SYS(2600, nAddress, nLen)

The following code returns the string cRes and also places nLen bytes of
cSrc at nAddress:

Copy Code
cRes = SYS(2600, nAddress, nLen, cSrc)
=========The end of the citation================




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Опять win32api в Фоксе
Syberex
Автор

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Спасибо Игорь, классная вещь!

А struct.vcx нашел в решениях, описание есть на FoxHelp.RU




------------------
Ratings: 0 negative/0 positive
Re: Опять win32api в Фоксе
Петров Андрей

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Игорь а наоборот ради любопытства интересуюсь можно? (насчет sys(2600))

Те по строке ее адрес как Integer?




------------------
PS Недочитал тему до конца...
Ratings: 0 negative/0 positive
Re: Опять win32api в Фоксе
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Андрей!

Нет, SYS(2600) тут не помощник. А можно это сделать например через fll,
учитывая также что фокс может динамически перераспределить память, и твоя
"строка" уедет совсем в другое место - чтоб этого не случилось есть
специальные блокировки...




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика