|
|
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
есть такое описание фукции входящей к некую Dll Код: plaintext 1. Код: plaintext 1. Make sure that you pass all the necessary parameters to the DLL and that the parameters are of the proper type." (в моем переводе - ошибка в типе параметров переданных в dll) думаю что ошибка в последнем параметре Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 11:49 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
Боюсь, что отнюдь не в последнем. По какому правилу Pointer превратился в string, а не в integr? Указатели перестали быть целыми числами? Где Вы в Windows API видели тип Double? Или размер файла перестал быть целым числом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 11:54 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
Параметр типа dword объявляется как Long или Integer Что касается типа pointer, то тут надо смотреть. Изли изображение хранится в распределённой памяти, то указатель на эту память так же передаётся с типом Long (или Integer). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 11:59 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
довод 1 другая фукция с такими же параметрами, но без этого последнено, не вызвает такой ошибки довод 2 http://]http://www.sql.ru/forum/actualthread.aspx?tid=447406&hl=declare довод 3 help к VFP 8 статья "DECLARE - DLL Command" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 12:06 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
АлексейОно не пошло - говорит: "The parameters passed to a DLL caused an exception in the DLL. Make sure that you pass all the necessary parameters to the DLL and that the parameters are of the proper type." (в моем переводе - ошибка в типе параметров переданных в dll)... У тебя слишком вольный перевод. Написано примерно следующее: "Параметры переданные в DLL вызвали исключение, убедитесь что передали все параметры и они имеют соответствующий тип" 1. Для dword использовать Integer, но не как ни double 2. PersonData и Photo корректно заполнены до вызова DLL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 12:57 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
ВБЧто касается типа pointer, то тут надо смотреть. Изли изображение хранится в распределённой памяти, то указатель на эту память так же передаётся с типом Long (или Integer). В фоксе сохранить в память изображения я смогу только в переменной "строка". хорошо, если указатель декларировать как строка, то как будет вызыватся такая функция? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 13:09 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
Dima T1. Для dword использовать Integer, но не как ни double да. действительно. согласен. Dima T2. PersonData и Photo корректно заполнены до вызова DLL? считаю что все правильно: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 13:35 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
А PChar - это, случаем, не указатель на строку? Почему в него пишется строка? Record что, переменной длины? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 13:44 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
проходящий.А PChar - это, случаем, не указатель на строку? такая мысль тоже закралась ко мне только что :-) как же мне сформировать такую структуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 13:50 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
В паскале не силен, но тут явно у тебя нестыковка с паскалевским Integer: если ты считаешь что SHORT фокса надо использовать, то почему для Person_descr_error SHORT я для возврата фоксовый INTEGER? Тут просто определить INTEGER или SHORT если в паскале Integer это 16 бит (2 байта), то SHORT, иначе INTEGER Я бы посоветовал сделать свою DLL с такой же функцией (по параметрам) и 1. Поставить в DLL MessageBox() для проверки что она работать начинает 2. Сохранить полученные параметры в файл и посмотреть что же она реально получает. Если есть исходники той DLL - то сделай копию проекта и выкинь внутренности. Убедись в работоспособности этой DLL - вызови ее из дельфи например. Заполнять из фокса TPerson не самое простое занятие. Тут класс для заполнения структур на VFP с примерами. Я бы посоветовал сделать в той же DLL (или в отдельной) функцию обертку, которая примет содержимое TPerson отдельными параметрами, соберет в структуру и вызовет AddPerson() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:12 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
Вставлять в Record не саму строку, а ее адрес. то есть вместо Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:29 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
WordToStr(@fam) не приводит к передаче в WordToStr указателя , а передает туже строку но с возможностью изменения в функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:55 |
|
||
|
declare - dll
|
|||
|---|---|---|---|
|
#18+
to АлексейО Ну, батенька, вы совершенно зря считаете, что у Вас всё правильно. Фокс не поддерживает структур, поэтому действительно мы вынуждены эмулировать структуру как строку. Но в Вашей структуре сплошняком одни указатели на строки pchar. Конечно, можно эмулировать и такую структуру, но в этому случае в каждое поле структуры вы должны поместить указатели на строки pchar, а не сами эти строки. Соответственно, выделив для каждой такой строки память (например, API функций GlobalAlloc). Т.е. распределяете память, вызывая GlobalAlloc и получая указатели на выделенные блоки, потом при помощи фоксовской функции SYS(2600) загоняете туда Ваши строковые данные, и только после этого вызываете Вашу API. Ну и, потом, возвращаете всю распределённую память винде. А иначе - никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:59 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35019833&tid=1588384]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 362ms |

| 0 / 0 |
