![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Приветствую!
Не говоря уже о том, что я ни разу не экпортировал классы из DLL в VC++6.0, то и говорить нечего о том как их втыкать в программу, написанную под C#.NET. Объясните мне пожалуйста (или покажите на простом примере) как импортировать класс из библиотеки написанной в VC++6.0 в среду .NET и его использовать (e.g. вызвать конструктор - достаточно). Спасибо. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Если подразумевается, что надо использовать COM-объекты, то можно посмотреть прямо в "Находках" по ключу "как в VC++.net работатьс EXEL" Если не так понял вопрос - надо подробности. |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Нет, что ты, никаких COM-объектов. Элементарный класс с набором методов. Просто как это чисто технически реализовать?
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Гость_dim |
|
|||
Unregistered |
Просто так такой класс не вызовешь. Для этого нужно писать враппер, например на Managed C++, класс который будет являтся managed классом и подгружать твой VC6 класс.
|
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
RTFM - MSDN "Platform Invoke Examples"
|
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Однако это импорт функции. А как с классом проделать тоже самое?
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Думаю это тебе должно помочь, программер ты опытный, разберешся, а если что милости просим с вопросами.
http://forum.vingrad.ru/index.php?act=ST&f=2&t=13274 http://forum.vingrad.ru/index.php?act=ST&f=2&t=15002 метод, правда, хакерский... -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Если есть header файл(ы) и библиотека импорта все будет намного проще.
--------------------
that's all |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Если эти хедеры написанны на С++, а мне надо в С# то как они помогут?
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Очень просто - пишется на managed C++ managed класс который является простой оберткой для твоего реального класса. Сборку с managed классом ты уже сможешь подключать в C# и использовать свой оберточный класс как .NET класс.
--------------------
that's all |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Вы наверное не обратили внимание, что я написал в начале темы: "...я ни разу не экпортировал классы из DLL в VC++6.0..." И как пользоваться классами из библиотек я тоже не знаю. В книгах дома ничего не нашел.
А оборточные классы на управляемом С++ я умею делать. Проблема именно в импорте класса из библиотеки. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Cully Спасибо. Я лучше введу ясность. А то у вас из-за меня голова заболит.
Мне нужно просто (как я понимаю) объявить интерфейс класса из библиотеки для программы. И указать, что он находится в такой-то библиотеке. Как это чисто технически реализовать? -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Дело в том, что исходный класс надо указать как експортируемый. Это можно сделать таким образом:
class __declspec( dllexport ) SomeClass { ... }; Далее - подключить библиотеку импорта этой длл-ки в тот проект где будет использаться класс. --------------------
that's all |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Я экспортирую класс. Как импортировать? Как интерфейс объявить для внешней программы?
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
neutrino, опиши, плиз, подробно какими файлами ты располагаешь или, если это не военная тайна, пришли по мылу, вместе раберемся.
cully(sobaka, mlin)ngs.ru -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |