| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Импорт Dll с возвратом массива |
| Автор: War_Chief 7.4.2009, 19:57 | ||||
| Доброго всем времени суток. Проблемка в следующем: Есть ф-ция в библиотеке написаной на delphi
Вызывать нужно из C#, пробывал так:
Пишет вот такую ошибку: Error 1 Error emitting 'System.Runtime.InteropServices.MarshalAsAttribute' attribute -- 'Specified unmanaged type is only valid on fields. Помогите плиз.... |
| Автор: Partizan 7.4.2009, 20:33 |
| War_Chief, атрибут MarshalAs можно применять только к полям |
| Автор: War_Chief 7.4.2009, 20:47 |
| Хорошо, но вопрос остается, как вытащить ету ф-цию из Dll, что бы она вернула массив? |
| Автор: Partizan 7.4.2009, 21:11 |
| War_Chief, а попробуйте атрибут, содержащий MarshalAs убрать... |
| Автор: War_Chief 7.4.2009, 21:30 | ||
| Пробывал, тогда получается Exception : Cannot marshal 'return value': Invalid managed/unmanaged type combination. Также были попытки получить через IntPtr
В итоге вот ето... Attempted to read or write protected memory. This is often an indication that other memory is corrupt. |
| Автор: Rififi 7.4.2009, 22:02 |
| array of integer что из себя представляет эта хрень? возможно какая-то сложная структура данных, про которую C# не в курсе делай "по нашему", по C++'ному в C# данные выковыриваешь через класс Marshal |
| Автор: War_Chief 7.4.2009, 22:10 | ||||
| Да я б с радостью, я Delphi сам не люблю, но просто будет набор DLL написаных не мной, именно на Delphi, и некоторые методы будут возвращать массивы(((( Поэтому позарез нужно узнать как вытащить все это на C#
Насколько я помню из паскаля, ето тот же масив integer значений. Тоесть для шарпа ето должно выглядеть как int[]....
Не получится в методах используется именно array of.... |
| Автор: Rififi 7.4.2009, 22:31 |
| War_Chief, Насколько я помню из паскаля, ето тот же масив integer значений. Тоесть для шарпа ето должно выглядеть как int[].... Неа. Это статические массивы (возможно) могут быть таким образом представлены array[1..10] of integer а запись array of integer означает динамический массив, и на самом деле ХЗ что там внутри. моё мнение - с этими "массивами" ты в <censored> (: |
| Автор: War_Chief 7.4.2009, 22:41 |
| моё мнение - с этими "массивами" ты в <censored> (: похоже на то(((( |