2010-01-26 3 views
1

Привет всем, у меня странная ситуация. У меня есть код на C++, который перегружает операторы +, -, * и экспортирует их в файл .DLL. Теперь я хочу импортировать эти перегруженные операторы из кода VB.NET. Так оно и должно быть, как это:Перегрузка операторов на C++, экспорт и импорт в VB.NET

<DllImport("StructDLL.dll")> Public Shared Function 
Operator +(ByVal a1 As A, ByVal a2 As A) As A 
End Function 

Так что я пытаюсь сделать над ним просто импортировать прекрасный перегруженный оператор + из DLL.

Обратите внимание, что оператор уже перегружен изнутри DLL, поэтому я должен импортировать его как функцию или в качестве оператора вроде этого?

<DllImport("StructDLL.dll")> Public Shared 
    Operator +(ByVal a1 As A, ByVal a2 As A) As A 
    End Operator 

Предполагается, что оператор перегруженного плюса добавит структуры. Поэтому DLL запрограммирована на работу с structs (C++), и я хочу импортировать ее в VB.NET для работы над Structures.

+0

Вы пробовали? –

+0

Да, не работает в этой реализации. Это был эксперимент, так или иначе. – Orca

ответ

1

Вы не можете произвести эту работу. Маршаллер P/Invoke не поддерживает функции, возвращающие структуры.

Смежные вопросы