Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Armando111
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 228
#1

C++ и C# - C++

08.10.2015, 22:09. Просмотров 224. Ответов 3
Метки нет (Все метки)

Как мне сделать "общение" между DLL написанной на C++ с визуальной программой на C#.
У меня в DLL есть просто функции, которые что-то делают и выдают какое-нибудь сообщение.
Как мне его отобразить на форме C#, допустим в label?

Добавлено через 1 час 41 минуту
Эй, кто нибудь тут?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
08.10.2015, 22:26 #2
В чём сложность-то?
0
Fulcrum_013
Заблокирован
08.10.2015, 22:26 #3
Цитата Сообщение от Armando111 Посмотреть сообщение
Как мне его отобразить на форме C#, допустим в label?
А визуальная форма обязательно C#? Есть и на нативном С++ визуальные системы, поудобнее мелкомягких.
Если из C# есть возможность пользовать указатели и WinAPI то загрузить DLL через LoadLibrary, получить из него указатели на функции через GetProcAddress и их вызывать.
Это динамическое связывание. Есть еще статическое.
Вместе с Dll при компиляции создается еще и Lib файл (библиотека экспорта из DLL). его надо добавить в проект и указать в импорте заголовки функций. Это общая схема для всех языков. Для C# могжет быть своя вариация типа специализированной под него библиотеки импорта.
0
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
08.10.2015, 22:31 #4
Создаёшь, например, класс в C# и в нём описывашь прототипы функций, которые в DLL. Потом просто вызываешь их. Там сложность с тем, что это неуправляемый код и нужно правильно типы указать. Пример:
C#
1
2
3
4
        [DllImport(@"unrar.dll")]
        private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);
        [DllImport(@"unrar.dll")]
        private static extern int RARProcessFile(IntPtr hArcData, int operation, IntPtr destPath, IntPtr destName);
0
Yandex
Объявления
08.10.2015, 22:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru