|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 24, 2004 01:29:54 Здравствуйте все. Тут проблема с получением адреса строки. В структуре WIN32_FIND_DATA есть поле TCHAR cFileName[ MAX_PATH ]; в нем имя файла, а вот получить адрес начала этой строки, чтобы её можно было скопировать куда-нибудь в буфер - никак не соображу :( Т.е. имею такое: LOCAL FindData:WIN32_FIND_DATA ; ; .if byte ptr FindData.cFileName != '.' .if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) mov esi, offset FindData lea eax, [esi.WIN32_FIND_DATA].cFileName PrintStringByAddr eax Call ReadFiles .endif .endif ; пишет такую ошибку:error A2098: invalid operand for OFFSET Если сделать так: mov esi, FindData lea eax, [esi.WIN32_FIND_DATA].cFileName то нестыковка опять же: error A2022: instruction operands must be the same size возможно из-за того, что FindData имеет непостоянную длину, зависящую от длины имени файла? Подскажите что тут не так, как можно объехать эту ситуацию |
|
|
Дата: Июл 24, 2004 01:43:57lea eax, FindData assume eax:ptr WIN32_FIND_DATA lea esi, [eax].cFileName ; теперь в esi адрес первого байта строки assume eax:nothing |
|
|
Дата: Июл 24, 2004 01:57:08 Или lea eax, FindData.cFileName |
|
|
Дата: Июл 24, 2004 02:08:53 Asterix Спасибо. Щас буду пробовать. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.092 |