Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> класс на С в С# 
:(
    Опции темы
Andrey44
Дата 13.5.2010, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



Код

#pragma once

#include <Unknwn.h>
#include <comdef.h>

#ifdef EXPORTING
#define MYPREFIXCPUUSAGE __declspec(dllimport)
#else
#define MYPREFIXCPUUSAGE __declspec(dllexport)
#endif

#define CFUNC extern "C"

struct ICpuUsage;
#define IID_ICpuUsage __uuidof(ICpuUsage)

struct __declspec(uuid("{8E874148-4223-4e49-8A0E-C2B77CB6CD46}"))ICpuUsage : public IUnknown
{
    BEGIN_INTERFACE
        virtual int GetCpuUsage()PURE;
        virtual int GetCpuUsage(LPCTSTR pProcessName)PURE;
        virtual int GetCpuUsage(DWORD dwProcessID)PURE;
    END_INTERFACE
};

_COM_SMARTPTR_TYPEDEF(ICpuUsage, __uuidof(ICpuUsage));

CFUNC MYPREFIXCPUUSAGE bool CreateCpuUsage(ICpuUsage **ctrlWnd);


Есть у меня моя длл написанная на С++ и это хедер от нее, как мне можно использовать класс ICpuUsage в С#?
Длл тоже писал я, так что могу делать изменения какие надо


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Exception
Дата 16.5.2010, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Просто добавь её в референсы проекта. Visual Studio сгенерирует обёртку для COM-классов.
PM   Вверх
Andrey44
Дата 17.5.2010, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



Цитата(Exception @  16.5.2010,  23:03 Найти цитируемый пост)
Просто добавь её в референсы проекта. Visual Studio сгенерирует обёртку для COM-классов. 

Все дело в том, что это не настоящий СОМ объект. smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Partizan
Дата 17.5.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Andrey44, что такое не настоящий COM объект?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Andrey44
Дата 17.5.2010, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



Цитата(Partizan @  17.5.2010,  11:54 Найти цитируемый пост)
что такое не настоящий COM объект? 

Это значит что в длл сидит абстрактный класс наследник от IUnknown но не регистрируется в системе.
В принципе это написано только для того чтобы использовать _COM_SMARTPTR_TYPEDEF(ICpuUsage, __uuidof(ICpuUsage));


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Exception
Дата 17.5.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Лол, вот у вас в С++ причуды бывают smile . Здесь три пути - либо COM, либо P/Invoke (прощайте, классы!), либо C++/CLI. Четвёртого не дано.
PM   Вверх
Andrey44
Дата 17.5.2010, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



 smile У нас в С++ еще и не такое бывает.
В общем я понял что никак smile
Тогда пойдем другим путем 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.