|
|
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
У меня есть библиотека написанная на дельфине (она кодирует записи)... function nado_uznat(chto_kod1, chto_kod2 :string; kodir_ras :integer) : Pchar; stdcall; export; И прога для перезаписи полей... SET ESCAPE ON DECLARE string vernul IN a strin, strin, INTEGER DECLARE string kodir IN a strin Код: plaintext Код: plaintext 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. Возникает ошибка 2027 -> Declare DLL call caused an exception. стоит обработчик ошибок Код: plaintext 1. 2. 3. 4. 5. Если ее останоить по ESCAPE и в дебагере пройти по-ШАГОВО... то все нормально работает... В чем может быть проблема... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 19:58 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
у тебя в Delphi sharemem вставлено ? а лучше все строки передавай указателями , мож оно и попустит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 20:08 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
Hi IgorProgrammer! > В чем может быть проблема... Ну чётко же написано - внешняя функция вызвала исключение. Фокс тут не при чём - писать и компилировать функции нужно корректно - особенно в плане работы с памятью. Также вызывают подозрение некоторые из используемых типов параметров... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2006, 20:09 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
Наставил в дельфине try except И ошибку выдало на: Код: plaintext key - константа text - любой текст включая спец.-символы Причем при возникновении ошибки стоит showmessage(text) Который вызывает ошибку... Такое впечатление что text = Null Что в принципе исключено... Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 13:37 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
NULL - это НЕ определенное значение. Т.е. это ни в коем случае не пустая строка - это неизвестно что. Поэтому сравнение типа if chto_kod1='' - некорректно. Если значение равно NULL, то это условие выполнено не будет. Поищи в Delphi специальные функции для определения значения типа NULL. Вероятно, что-то вроде IF chto_kod1 IS NULL ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 14:27 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
Мона так: 1. if kod1=null then kod1:=''; 2. if VarIsNull(kod1)l then:=''; Эт я уже поставил... Так на всякий пожарный... Меня интерисует при каких значениях двух символов эта комбинация вызовет ошибку Код: plaintext Проверял комбинации Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 15:11 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
Это уж ты сам смотри в отладчике, чему равно text и key[j] при наступлении ошибки. Может быть, тот же NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2006, 15:32 |
|
||
|
Delphi6 + FoxPro8
|
|||
|---|---|---|---|
|
#18+
Hi IgorProgrammer! > Меня интерисует при каких значениях двух символов эта комбинация вызовет > ошибку > chr(ord(text ) xor ord(key[j])) C чего ты взял что ЭТА конструкция вызывает ошибку? Я бы сказал что скорее всего вызывает ошибку конструкция tmps:=tmps+неважно_какой_символ; Это как раз и есть конструкция, вызывающая перераспределение памяти (строка увеличивается в размерах). Извини, я в Дельфи не силён, больше ничего умного не скажу... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2006, 02:35 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33638617&tid=1591986]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 474ms |

| 0 / 0 |
