Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

В куче - список из строк(HeapAlloc & HeapFree)   Найти похожие ветки 

 
JJohn ©   (2005-10-04 00:50) [0]

есть вот такой вопрос...

Требуется разместить в куче список из N строк...

var P:Pointer;
P:=HeapAlloc(GetProcessHeap(), 0, dwBytes);
...
HeapFree(GetProcessHeap(), 0, P);


не пойму, что находится в "...", то есть как в динамически выделенную память размещать данные?

в голову почему-то лезет только что-то типа lstrcpy(P, "строка") в цикле- где-то видел в какой-то программе...

Объясните, plzz

P.S.> Новичок с работой с памятью и API


 
Digitman ©   (2005-10-04 09:10) [1]


> JJohn ©   (04.10.05 00:50)


зачем тебе куча понадобилась ? объясни ..

если это требование какой-либо WinAPI-ф-ции, то в ее описании должы фигурировать подробности того как тобой д.б. представлен многострочный текст в этой области памяти - то ли строки должны разделяться нуль-терминатором (и, соответственно, такой многострочный текст должен завершаться двойным нуль-терминатором), то ли CRLF ...


 
Андрей Жук ©   (2005-10-04 11:10) [2]

void RefreshInputLocales(HWND list)
{
int nNumLayouts;
nNumLayouts = GetKeyboardLayoutList(0,NULL); //получим количество раскладок
HKL *lpList = (HKL*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(HKL) * nNumLayouts); //выделим память на куче под список раскладок
GetKeyboardLayoutList(nNumLayouts, lpList); //получим список раскладок
SendMessage(list,LB_RESETCONTENT,0,0); //очистим бокс раскладок
for (int idx=0; idx<nNumLayouts;idx++) //пройдемся по списку раскладок
  {
SendMessage(list, LB_ADDSTRING,0, (LPARAM)LanguageTable[LOWORD(*(lpList+idx))]); //добавим в бокс названия установленных раскладок
LanguageHKLTable[LOWORD(*(lpList+idx))] = *(lpList+idx); //запишем HKL в таблицу
}
HeapFree(GetProcessHeap(), 0, lpList); //очистим выделенную под список память
}


 
JJohn ©   (2005-10-04 22:36) [3]

Digitman задание такое было..... простейший пример использования на примере размещения строк



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1131952997
Wolferio
2005-11-14 10:23
2005.12.04
ShellListView i OleContainer


2-1131899074
Lex85
2005-11-13 19:24
2005.12.04
таблица StringGrid


3-1129697892
Liavik
2005-10-19 08:58
2005.12.04
longtime в accsess &amp;delphi


4-1127991575
Rule
2005-09-29 14:59
2005.12.04
Проблемма при открытии СОМ порта посредством функции CreateFile


2-1132038926
Silvestr
2005-11-15 10:15
2005.12.04
Как в RishEdit поменять цвет определёной строки ?