Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2010, 10:37   #1
head-dron
Новичок
Джуниор
 
Регистрация: 11.05.2010
Сообщений: 2
По умолчанию C# импорт метода из Dll написанной на C++

Всем привет! Вот какая проблема. Нужно вызвать метод из Dll написанный на c++.
Вот как выглядит его прототип:

Код:
USTEXPORT USTFUNC UstCreateRootObject (REFGUID id, uint64 version, ILogger *logger, IPnm **dst, uint *error)
Долго разбираясь я перевел его в приемлимый вид для C# и сделал импорт:

Код:
[DllImport("HwKeyChk.dll")]
public unsafe static extern bool UstCreateRootObject(ref Guid id, Int64 version, void* logger, ref void** Pnm, ref uint error);
вызываю его вот так:

Код:
void** n = null;
uint error = 0;
bool rel = UstCreateRootObject(ref PNM_API_ID, PNM_API_VERSION, null, ref n, ref error);
Первые два аргумента работают верно, то есть идентификатор и версия там внутри метода сравниваются и выдают положительный результат. Третий аргумерт не требуется в использовании и я его не трогаю. Пятый тоже работает исправно. В результате выполнения данного метода в четвертый аргумент возвращается указатель на указатель на интерфейс. То есть там внутри создается объект и к нам возвращается указатель на указатель на этот объект.

Вот из этого объекта мне нужно получить этот интерфейс чтобы вызвать из него другой метод, но при попытке сделать следующее:
Код:
IntPtr ptr = new IntPtr(*n);
object Key = Marshal.GetObjectForIUnknown(ptr);
вываливается исключение:

Цитата:
Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))
Сам вопрос: Как мне получить из этого указателя объект? Пробовал описывать сам интерфейс но получается такое же исключение. Что делать?
head-dron вне форума Ответить с цитированием
Старый 27.09.2010, 20:57   #2
userdab
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 28
По умолчанию

Попробуйте спрость это здесь
userdab вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение из Delphi к DLL написанной на C++ smirnoff843 Общие вопросы Delphi 6 21.03.2017 11:13
Как использовать в Delphi-программе функции из DLL, написанной на C# АТИКОН Общие вопросы Delphi 12 19.03.2013 08:28
Импорт из С dll на Дельфи apromix Помощь студентам 19 17.11.2009 21:07
Импорт VB6 DLL в C++ DmF Общие вопросы C/C++ 1 06.03.2008 08:48