|
|
|
Не могу вызвать API-функции FindFirstFile и FindNextFile
|
|||
|---|---|---|---|
|
#18+
Пытаюсь вызвать API-функции FindFirstFile и FindNextFile. При вызове первой программа рушится. Прототип функции храню в невизуальном объекте (мне понравилось, как это сделал Филипп) nvo_filefind_first_next. Прототип FindNextFile не указываю, чтобы не загромождать код. Вот содержимое экспорт-файла этого объекта: $PBExportHeader$nvo_filefind_first_next.sru forward global type nvo_filefind_first_next from nonvisualobject end type type filetime from structure within nvo_filefind_first_next end type type win32_file_find from structure within nvo_filefind_first_next end type end forward type filetime from structure unsignedlong dwLowDateTime unsignedlong dwHighDateTime end type type win32_file_find from structure unsignedlong dwfileattributes filetime ftcreationtime filetime ftlastaccesstime filetime ftlastwritetime unsignedlong nfilesizehigh unsignedlong nfilesizelow unsignedlong dwreserved0 unsignedlong dwreserved1 string cfilename string calternate end type global type nvo_filefind_first_next from nonvisualobject autoinstantiate end type type prototypes Function Long FindFirstFileA(string lpFileName, REF win32_file_find findinfo) Library "kernel32.dll" end prototypes type variables end variables forward prototypes public function long getfirstfile (string filemask, ref string filename) end prototypes public function long getfirstfile (string filemask, ref string filename);long handle WIN32_FILE_FIND fileinfo fileinfo.cFilename = space(260) fileinfo.cAlternate = space(14) handle = findfirstfilea(filemask,fileinfo) filename = fileinfo.cFileName return handle end function on nvo_filefind_first_next.create call super::create TriggerEvent( this, "constructor" ) end on on nvo_filefind_first_next.destroy TriggerEvent( this, "destructor" ) call super::destroy end on Далее в тексте основной программы я пытаюсь использовать эту функцию. Так вот, при выполнении строки данного невизуального объекта, в том месте где вызывается объявленная функция FindFirstFileA программа валится (т.е. выводится сообзение «Программа выполнила недопустимую операцию и будет закрыта»). Кто-нибудь может сказать, что я делаю не так. Где ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 14:51 |
|
||
|
Не могу вызвать API-функции FindFirstFile и FindNextFile
|
|||
|---|---|---|---|
|
#18+
см. PFC pfc_n_cst_filesrvwin32(pfcapsrv.pbl) Function long FindFirstFileA (ref string lpFileName, ref win32_file_find findinfo) library "KERNEL32.DLL" type win32_file_find from structure unsignedlong dwfileattributes filetime ftcreationtime filetime ftlastaccesstime filetime ftlastwritetime unsignedlong nfilesizehigh unsignedlong nfilesizelow unsignedlong dwreserved0 unsignedlong dwreserved1 character cfilename [260] character calternate [14] end type ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 15:03 |
|
||
|
Не могу вызвать API-функции FindFirstFile и FindNextFile
|
|||
|---|---|---|---|
|
#18+
Большое спасибо!!! Все заработало!!! Только зачем ref перед lpFileName (long FindFirstFileA (ref string lpFileName, ref win32_file_find findinfo) library "KERNEL32.DLL")? Он ведь объявлен By Value? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 15:37 |
|
||
|
Не могу вызвать API-функции FindFirstFile и FindNextFile
|
|||
|---|---|---|---|
|
#18+
В MSDN написано что ? HANDLE FindFirstFile( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData ); и что такое по вашему LPCTSTR? Long Pointer to a Constant null-Terminated STRing of 8-bit Windows (ANSI) characters. А ежели Pointer, то уж никак не by Value. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 16:25 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32693908&tid=1338884]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 510ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...