Re[2]: оболочка для C++ dll в C#
От: Alexei_z_  
Дата: 07.09.04 07:45
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, примерно:

VD>
VD>int f1(ImageResult ref vResults, ref eRotattionType RotType, еще пара параметров);
VD>


Я, наверное, чего-то недопонял, но так я просто передаю ссылку на объект ImageResult.
Кстати, спасибо за информацию по поводу структур, в принципе, в ImageResult можно оставить только простые типы
выглядеть она будет примерно так:
[C#]
[ StructLayout( LayoutKind.Sequential )]
public struct ImageResult
{
[ MarshalAs( UnmanagedType.ByValArray, SizeConst=2 )]
float [] DefAngles;
eRotationType r_type;
bool bFinal;
}

[C++]
struct ImageResult
{
float DefAngles [2];
eRotationType r_type;
bool bFinal;
}
enum объявлен и в шарпе.
struct я хочу использовать, чтобы в C# работать со значениями, а не со ссылками.

Моя задача в следующем: нужно вызывать функцию С++ dll, передавая ей ссылку на вектор (или что-нибудь похожее, нужен массив переменной длиныб могу написать и сам,получится тот же упрощенный вектор, т.е. проблема та же)

Внутри Dll этот массив заполняется (конечный размер из вне заранее неизвестен) и возвращается в C#.
т.е. в C++ dll прототип функции
funcCPP(vector<ImageResult>&vresults)

как вызвать эту функцию из Dll С++ средствами C#?

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