|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Есть некая dll и в ней нужная функция. Функция принимает некий одномерный массив A типа double и размерностью N. Код: c# 1.
А возвращает другой массив B и той размерности, которой сочтет нужным. Т.е. заранее выделять память под массив B я не могу. Код: c# 1.
- и больше ничего мне не известно! Вопрос, как в функцию передать ссылку на массив B и после выполнения получить в C# полноценный массив? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Как использовать это не понятно. Если я пишу так: Код: c# 1.
то студия говорит, что В перед использованием должно быть инициализировано. Как то надо через ссылки сделать. Но вот как? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 19:24 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Недавно делал такое с чужой аналогичной функцией возвращающей Double массив. Все проходило без проблем. М.б. сигнатуру помtнять на С# типа f(double[] a[], out double[] B). В C# [out] в скобках не катит. Можно попробовать f(double[] a[], ref double[] B). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 19:42 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Сорри, ошибся, после а [] конечно же не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 19:44 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
YUBAНедавно делал такое с чужой аналогичной функцией возвращающей Double массив. Ты этот массив перед вызовом как-то инициализировал? Можно кусок кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 20:01 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
vlsafТы этот массив перед вызовом как-то инициализировал? Можно кусок кода?Нет, не инициализировал. DLL цепляется по Референс, т.е. сигнатуры не надо. Кусок примерно такой. Код: c# 1. 2. 3. 4.
Собственно, и кода больше нет. Как то так. C Double не нашел. Нашел подобное, но только со String Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 20:26 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
YUBA, точно! Спасибо. Я что-то затупил. Вот код, который ошибки синтаксиса не дает. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Завтра на работе проверю на работоспособность. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2014, 21:02 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Не получилось. В с++ память под массив выделяется. Массив заполняется нужными значениями (коллега выводит на консоль результаты). А вот при передаче массива обратно в C# лезет ошибка " Попытка чтения или записи в защищенную память. ". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 11:34 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
vlsaf, точную сигнатуру неуправляемой функции в студии. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 13:13 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Да там ничего сложного. На С++ такое вот описалово. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 13:45 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Не. Наврал. Там такая сигнатура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Для примера заполняется массив И значениями и выводится на экран ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 14:36 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
vlsafНе. Наврал. Там такая сигнатура: Код: plaintext 1. 2. 3.
Так ж там указатель на указатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 14:44 |
|
Вызов неуправляемого кода из C# и получение массива.
|
|||
---|---|---|---|
#18+
Ага. Я это уже понял. Сейчас С++ программист сделает обертку, чтобы был не указатель на указатель, а обычный указатель. Дурдом. Прямо "Война и немцы.". Потом отпишусь, что получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 14:47 |
|
|
start [/forum/topic.php?fid=20&msg=38616902&tid=1403018]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 138ms |
0 / 0 |