Использование C-шной dll на C#
От: SergH Россия  
Дата: 03.10.12 11:24
Оценка:
Привет!

Есть какие-то разумные ограничения на прототипы функций, которые можно безболезненно использовать на C#? И как примерно это можно сделать?
Свои структуры? Возврат строк? Выделение памяти? Вернуть массив строк? Принять-вернуть массив структур?

Я совсем не знаю C# (синтаксис пойму), я пишу либу, она типа кросплатформенная. Коллега, который пишет ГУИ для Windows и C# знает, с такими задачами не сталкивался.
В примерах в сети в основном параметры типа int, ну может быть string на вход.

Заводить ещё и COM-объект вокруг этого пока что не хочется.
Делай что должно, и будь что будет
Re: Использование C-шной dll на C#
От: adontz Грузия http://adontz.wordpress.com/
Дата: 03.10.12 11:39
Оценка: 14 (1)
Здравствуйте, SergH, Вы писали:

Желательно избегать union-ов, строки выделять в буфере фиксированного размера.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Использование C-шной dll на C#
От: HowardLovekraft  
Дата: 03.10.12 11:49
Оценка: 14 (1)
Здравствуйте, SergH, Вы писали:

SH>skipped

Думаю, Marshaling Data with Platform Invoke вам с коллегой для начала хватит.
Re[2]: Использование C-шной dll на C#
От: Ведмедь Россия  
Дата: 03.10.12 12:55
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>Здравствуйте, SergH, Вы писали:


SH>>skipped

HL>Думаю, Marshaling Data with Platform Invoke вам с коллегой для начала хватит.

+1. Кроме того лучше набросать примеров, тогда коллеги распишут как такие примеры правильно описывать и вызывать.
Да пребудет с тобой Великий Джа
Re[2]: Использование C-шной dll на C#
От: SergH Россия  
Дата: 03.10.12 12:59
Оценка:
Здравствуйте, adontz, Вы писали:

A>Желательно избегать union-ов, строки выделять в буфере фиксированного размера.


О! union-ы! А я думал, чего мне не хватает в интерфейсе для завершённости
Нет, такого, к счастью, не требуется.

А вот строки есть разные, подумаем, спасибо.
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.