Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать из Visual C++ 6 код написанный под C# 
:(
    Опции темы
compaq
Дата 10.9.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем доброго дня или ночи
Вопрос в следующем  как вызвать из Visual C++ 6 код написанный под C# 
Есть старая программа, двухтысячного года,  написанная на Visual C++ 6 под неё нужно написать плагин в виде dll я и хочу написать обертку на Visual C++ которая  вызывала бы код на C# этот код выполнял все нужные действия и возвращал результат обратно в C++ обёртку. Подскажите в какую сторону копать. Заранее спасибо.

PM MAIL   Вверх
jonie
Дата 13.9.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



делайте по шагам....

1. сделайте простейшую либу на c#
Код

namespace Net2Com
{
    [ComVisible(true)]                                      //важно чтобы было
    [Guid("1A26B23B-2291-4e45-A98C-86ECF48F09D9")]        //не обяз
    [ProgId("Net2Com.MegaPlugin")]                          //не обяз
    public class MegaPlugin
    {
    }
}


2.регите ее в реестре используя regasm Net2Com.dll
3. делаете Com Wrapper используя комманду:
Код

tlbexp Net2Com.dll /out:Net2Com.ComWrapper.tlb /win32

4. далаете C++ простейший hello word, где пишите:
Код

#import "Net2Com.ComWrapper.tlb"

int main() {
    CoInitializeEx(0,0);
    Net2Com::_MegaPluginPtr mpt;
    HRESULT hr = mpt.CreateInstance(__uuidof(Net2Com::MegaPlugin));
    return 0;
}


вот вроде ничего не забыл...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
NatNiM
Дата 14.4.2011, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

А можно, таким способом подключив dll, вызвать из кода на C++ (например, при нажатии кнопки на форме) форму из подключенной dll (dll на C#)?

Спасибо.
PM MAIL   Вверх
jonie
Дата 15.4.2011, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



ну можно, да. Там сгенерирует #import что надо вам (у меня просто "плагин", а вообще там будут и публичные методы светиться, если смогут экспортироваться параметры этих методов)
только наверно лучше использовать regasm dllName /codebase (добавить /codebase к тому что я написал выше)

Это сообщение отредактировал(а) jonie - 15.4.2011, 14:55


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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