|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Код Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
вызывает ERROR_INVALID_HANDLE при выполнении в среде, что и является проблемой, если же сделать exe-шник, то он выполняет этот код без ошибок. В чем причина и как побороть? Заранее благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 21:21 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
nrmBeginner, Какие значения в момент вызова у переменных strPath, strFileName. Как задекларирована CreateFile и константы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 21:46 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Код ниже отрабатывает как в IDE, так и в EXE. Что возвращает WriteFile? Что возвращает GetLastDLLError? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 22:01 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
VSVLAD, Объявления идентичные приведенным один в один, в strPath и strFileName путь и имя файла в локальной ФС соответственно (например опробовано d:\temp\export.txt), WriteFile возвращает 0, GetLastDLLError как раз и возвращает ERROR_INVALID_HANDLE тольк в ипостаси Err.LastDllError. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 22:29 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Добавился еще один прикол. Написал отдельно вот такой код Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Так он теперь на месте вызова WriteFile фэйлит процесс среды с выбросом предложения отправить отчет разработчику, а файл D:\temp\export.txt принимает рандомный размер. Первый раз было полтора мегабайта, второй раз файл вырос аж в 59 метров, содержимое - все нули, а в начале файла или в конце красуется "stringToWrite", очень уж не похоже на размер Len(stringToWrite). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 22:44 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
А что за суровая необходимость использовать API для записи файла? Почему не Open...Put...Close? Вы строку в каком виде хотите записать - как она в памяти лежит в Unicode (2 байта на символ) или в локальной кодировке (1 байт на символ)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 23:03 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Казанский, windows-1251. Системные апи лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2014, 23:29 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
nrmBeginner, покажите задекларированные API. Также попробуйте накатить среду по новой из инсталлятора, возможно поможет, не раз видел необъяснимые чудо-глюки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2014, 08:42 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
VSVLAD, Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Теперь вообще все поменялось, я понять не могу от чего это зависит: если stringToWrite объявляется как константа то процесс каршится и в файле кракозябры с кучей нулей до или после, если объявляется как локальная переменная то теперь GetLastError выдает ERROR_INVALID_PARAMETER, если как глобальная переменная то крашится, но уже в файле содержимое stringToWrite с кучей нулей до или после. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2014, 12:44 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Кстати попробовал на другом компьютере, все то же самое, и даже попробовал в мс оффисе 2010, то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2014, 12:45 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Может кто попробует у себя код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2014, 12:47 |
|
VB6, Win32 WriteFile() -> ERROR_INVALID_HANDLE
|
|||
---|---|---|---|
#18+
Нашел! Боже, вот же я слепой. Моя декларация WriteFile передавала последний параметр 0 по ссылке. Получалось что я передавал структуру OVERLAPPED с неизвестным содержимым. Всем огромнейшее спасибо за отзывчивость. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2014, 13:18 |
|
|
start [/forum/topic.php?fid=60&msg=38598615&tid=2156432]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 284ms |
total: | 444ms |
0 / 0 |