Как передать структуру C++ методу DLL C# с помощью COM-взаимодействияC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как передать структуру C++ методу DLL C# с помощью COM-взаимодействия

Сообщение Гость »

В настоящее время у меня есть проект C#, который скомпилирован в DLL COM-взаимодействия, содержащий следующее:

Код: Выделить всё

using System.Runtime.InteropServices;

namespace CommonTest
{
[ComVisible(true)]
public interface ICommonTest
{
[DispId(1)]
int Test(int a, int b);
}

[ComVisible(true)]
public class CommonTestManaged : ICommonTest
{
/// 
/// A method to test the creation of a managed DLL built in C#. It's functionality just adds together two numbers.
/// 
/// 
Number 1
/// Number 2
/// The sum of numbers a and b
public int Test(int a, int b)
{
return a + b;
}
}
}
На стороне C++ этот метод успешно вызывается со следующей командой:

Код: Выделить всё

void Usage()
{
CoInitialize(nullptr);
ICommonTestPtr pICommonTest(__uuidof(CommonTestManaged));

long lResult = 0;
pICommonTest->Test(5, 10, &lResult);

CoUninitialize();
}
Мой вопрос: есть ли способ передать структуру C++ в качестве параметра Test(), чтобы я мог получить доступ к ее содержимому в C#?

Подробнее здесь: https://stackoverflow.com/questions/781 ... om-interop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»