|
|
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
winapims.lib и Pro_ext.h от VFP6, компилятор VC++6.0 sp6 Простой код: #include <Pro_ext.h> void masi(ParamBlk *parm) // the function definition { int i=1; int j=1; long *ddd=0; int fff; Value val; j=_Load(&parm->p[0].loc,&val); i=_Store(&parm->p[0].loc,&val); if (parm->p[0].loc.l_type == 'R') { _PutStr("\nСсылка\n"); } if (i != 0) { _PutStr("\n_Store is false\n"); } else { _PutStr("\n_Store is true\n"); } if (j != 0) { _PutStr("\nLoad is false\n"); } else { _PutStr("\nLoad is true\n"); } // _RetInt(_ALen(parm->p[0].loc.l_NTI, AL_ELEMENTS), 10); ddd=&val.ev_long; fff=*ddd; _RetInt(fff,10); } // the FoxInfo structure registers the function FoxInfo myFoxInfo[] = { {"MASS",(FPFI) masi, 1, "R"}, }; extern "C" { FoxTable _FoxTable = { (FoxTable *)0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; } но если я коментирую строку _Load, то "_Store is false", если не коментирую - "_Store is true" при выполнении простой проги: set library to proba2.fll Private kdd as integer, i as integer clear kdd=5 Dimension dd(kdd) as string For i=1 to kdd dd(i)=i*2 endfor ? mass(@dd) set library to return В доке про _Store сказано, если локатор определяет массив и l_subs=0, то "If loc specifies an array and l_subs is 0, _Store( ) stores the value in val to all elements in the array." _RetInt(_ALen(parm->p[0].loc.l_NTI, AL_ELEMENTS), 10); возращает 5 строки ddd=&val.ev_long; fff=*ddd; _RetInt(fff,10); возвращают 1-ый элемент массива = 2, строки ddd=&val.ev_long+4; (следующий элемент) fff=*ddd; _RetInt(fff,10); фиг знает что. Почему _Store не работает и как обратиться к элементам массива целых чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 15:10 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
Лучьше по русски скажи , что нужно сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 16:01 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
:) Поработать с массивом целых чисел, переданным по ссылке внутрь функции на С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 16:10 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
И ктож тебе не дает ? Лень в коде капаться, напиши по человечески. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 16:20 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
to luser Блин, вот и спрашиваю, в что я не доделываю, почему функция _Store не отрабатывает и как обратиться к элементам массива(массив целых чисел) переданным по ссылке!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 21:28 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
Вот и отвечаю, завтра напишу пример. Сейчас не могу, извини. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 23:02 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
Вот пример обнуления одномерного массива целых чисел по ссылке. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 11:51 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 12:15 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
Но: код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. выдает: 6 6 6 6 6 если: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. или Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. то выводит 6 6 6 6 6 Весь массив "ошестеряет" :) и цикл не нужен. Вот и спрашиваю как обратиться к элементам массива(массив целых чисел) переданным по ссылке!!! Например 1-ый увеличить на 1, 2-ой на 2, 3-ий на 3, 4-ый на 4, 5-ый на пять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 15:08 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
О как :) Я тебе о направлении мысли, а ты хочешь , чтобы я сделал за тебя твою реализацию :) Ну подумай же, в конце концов-то :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 15:16 |
|
||
|
Вопрос по vfp, c++ и FLL
|
|||
|---|---|---|---|
|
#18+
Дбавил перед циклом: parm->p[0].loc.l_sub2 = 0; parm->p[0].loc.l_subs = 1; Стало работать, но я же так делал(примерно твой пример с этим дополнением) до того как задал вопрос на сайте - но не хрена не работало, а сейчас заработало, не понял ... :) Ладно, все понятно, спасибо luser!!! P.S. Но почему же до этого работало ..., блин хреного, так и не выяснил по чему такие же мои пробы не работали ... :( и выяснить уже не смогу, те пробы уже удалил(код, который я привел в начале - эксперименты от "не удач" ... ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33417423&tid=1592859]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
199ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 512ms |

| 0 / 0 |
