|
|
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
задача: Вызывать метод по адресу и передавать ему параметры и Result. Разные, от простых типов до рекордов, сетов и прочих. Со всем остальным проблем нет, только с динмассивами - бьюсь со вчера, не выходит каменный цветок. Подскажите, кто в этом разбирается - как динамические массивы (в чистом виде, не типизированные) ПРАВИЛЬНО передавать? Сразу уточню, что если прописать TCardArr = array of Cardinal и использовать его - то все красиво, но только такой вариант - это вообще малоинтересно. Код: pascal 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. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. Вот максимум чего я добился - на входе в _TestM массив ObjTypes имеет один элемент 111, второй массив nil, третий - мусор. Данный пример написан для воспроизведения проблемы, в оригинале данные приходят из скрипта, в этом случае и содержимое массивов, и инфа о типе массива и его элементов. Cмотрел как дельфийский компилятор передает массивы - вроде похоже. Так же копирует массив по указателю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:04 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:19 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
mm и прочие массивы здесь для примера. из скрипта я получаю указатель на Data и тип массива, там нет готового массива для передачи в TValue. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:26 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
Vizit0rиз скрипта я получаю указатель на Data и тип массива Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:44 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Vizit0rиз скрипта я получаю указатель на Data и тип массива Код: pascal 1. Было, результат тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 18:32 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
Vizit0r, Код: pascal 1. это называется открытый массив , а не динамический фактически передаётся двумя параметрами: указатель на первый элемент и длина массива ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 19:02 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
Vizit0rБыло, результат тот же.Как получали TypeInfo? И что у вас за указатель? Потому что у меня в проекте все работает. Я даже использую MakeWithoutCopy. У вас TValue адекватное получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 19:03 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Vizit0r, Код: pascal 1. это называется открытый массив , а не динамический фактически передаётся двумя параметрами: указатель на первый элемент и длина массива огромное спасибо, передача второго параметра полностью решила проблему. Вот что значит незнание базовых вещей :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 19:34 |
|
||
|
передача динамических массивов в параметры метода через Invoke
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Vizit0rБыло, результат тот же.Как получали TypeInfo? И что у вас за указатель? Потому что у меня в проекте все работает. Я даже использую MakeWithoutCopy. У вас TValue адекватное получается? TValue адекватное было. Возвращало значения, тип правильный. Проблема была при передаче параметров из-за передачи 2х параметров, как подсказали выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 19:43 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39846044&tid=2039175]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
143ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 412ms |

| 0 / 0 |
