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

C++ и C# - C++

Восстановить пароль Регистрация
 
Armando111
 Аватар для Armando111
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 228
08.10.2015, 22:09     C++ и C# #1
Как мне сделать "общение" между DLL написанной на C++ с визуальной программой на C#.
У меня в DLL есть просто функции, которые что-то делают и выдают какое-нибудь сообщение.
Как мне его отобразить на форме C#, допустим в label?

Добавлено через 1 час 41 минуту
Эй, кто нибудь тут?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,704
08.10.2015, 22:26     C++ и C# #2
В чём сложность-то?
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
08.10.2015, 22:26     C++ и C# #3
Цитата Сообщение от Armando111 Посмотреть сообщение
Как мне его отобразить на форме C#, допустим в label?
А визуальная форма обязательно C#? Есть и на нативном С++ визуальные системы, поудобнее мелкомягких.
Если из C# есть возможность пользовать указатели и WinAPI то загрузить DLL через LoadLibrary, получить из него указатели на функции через GetProcAddress и их вызывать.
Это динамическое связывание. Есть еще статическое.
Вместе с Dll при компиляции создается еще и Lib файл (библиотека экспорта из DLL). его надо добавить в проект и указать в импорте заголовки функций. Это общая схема для всех языков. Для C# могжет быть своя вариация типа специализированной под него библиотеки импорта.
nmcf
4324 / 3745 / 1260
Регистрация: 14.04.2014
Сообщений: 14,704
08.10.2015, 22:31     C++ и C# #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);
Yandex
Объявления
08.10.2015, 22:31     C++ и C#
Ответ Создать тему
Опции темы

Текущее время: 13:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru