Как отладить класс C# COM?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как отладить класс C# COM?

Сообщение Anonymous »

У меня есть простой проект C++, который использует CoCreateInstance для доступа и использования некоторого кода C# (- открытый класс). Простой код выглядит так:

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

// ...
hr = CoCreateInstance(
CLSID_rclsid,
NULL, CLSCTX_ALL,
CLSID_riid,
reinterpret_cast(&pMyComServer));

if (SUCCEEDED(hr)) {
g_hr = hr;
g_pMyComServer = pMyComServer;
pMyComServer->GetData();
}
// ...
CoUninitialize();
// ...
Код C# предоставляется очень стандартным способом. вот так:

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

[Guid("D9084CEE-5C65-4AB6-9E10-2718595FAD83")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[ComVisible(true)]
public interface IPipeClient
{
void GetData();
}

[Guid("6BEE99C5-CEB5-4B2B-B605-0E6648162AEA")]
[ClassInterface(ClassInterfaceType.None)]
[ComVisible(true)]
public class PipeClient : IPipeClient
{
public void GetData(){...}
// ...
}
Мой вопрос: как я могу отлаживать C#, вызываемый CoCreateInstance? То есть, когда я открываю проект C# в режиме отладки и устанавливаю точки останова, ни один из них не попадает. Более того, использование функций отладки, таких как Debug.WriteLine, ничего не печатает в окне вывода проекта C#. Единственный способ "отладки" этого C# я нашел с помощью окон сообщений, что совсем НЕ удобно. Есть ли способ улучшить способы отладки такого «удаленного» кода?


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

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

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

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

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

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