![]() |
|
Модераторы: bsa |
![]()
|
|
| Kirill89 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 17.10.2006 Где: Питер Репутация: нет Всего: 4 |
Доброе время суток.
Я недавно столкнулся с задачей и никак не могу разобраться как её реализовать, очень прошу мне помочь. Есть некоторая программа на C#, мне нужно написать и использовать в ней dll файл, на C++, который будет содержать функцию по чтению файла (текстового), с параметром (путь к файлу) и возвращать значение string (содержимое фала). и аналогично по записи в файл. Вопросы такие: 1) как сделать рабочий dll файл, используя visual studio 2005 и синтаксис С++? 2) как этот файл подключить к c# или visual basic? 3) как осуществить работу с файлами и текстовой строкой в таком dll? Буду очень благодарен, особенно если с примером и инструкцией =) |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
начни с F1 там все написано
|
|||
|
||||
| Kirill89 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 17.10.2006 Где: Питер Репутация: нет Всего: 4 |
GoldFinch, забавно, может ещё пример покажешь?
Я же не для прикола спрашиваю. Такой пример не должен занять много времени, а это мне ОЧЕНЬ поможет разобраться. |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
Kirill89,
1. www.google.ru => "c++ dll example" 2. www.google.ru => "c# c++ p/invoke" 3. www.google.ru => "c# c++ p/invoke" |
|||
|
||||
| shara |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: 2 Всего: 2 |
в общем расскажу как делал я, правда насчет С# ничего не знаю я с этим зверем не сталкивался.
создаем ДЛЛину для этого в MsVC2008 (звыняй 2005 нету считай пол пути уже есть. Теперь тебе нужно описать функцию DllMain - эта функция вызывается с параметром ul_reason_for_call = DLL_PROCESS_ATTACH и тебе нужно обработать его, это так называемая инициализация библиотеки. похожий параметр (DLL_PROCESS_DETACH) функция DllMain принимает и перед тем как библиотека будет выгружаться из памяти. Все остальные функции описываешь как в обычной программе, с класами не работал - но они тебе покаместь и не нужы. Для того чтобы другие приложения могли вызывать функции из твоей библиотеки тебе в проекте нужно будет создать *.def файл в котором нужно показать компилятору какие функции будут видны вне библиотеки. Выглядит он приблизительно так
собсно и все. Компилим библиотеку. Чтобы подгрузить свою ДЛЛ к проге использем LoadLibrary. но тебе еще нужно узнать адреса функций находящихся в библиотеке, это делается так:
и еще, чувак если с англиqским не проблема - не ленись юзать MSDN -------------------- с точки зрения аэродинамики шмель не может летать |
||||
|
|||||
| Kirill89 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 17.10.2006 Где: Питер Репутация: нет Всего: 4 |
shara, во, большое спасибо!
dll получилась, но как её подключить...? через add->existing item не получилось - программа не видит функций. Добавлено через 2 минуты и 6 секунд разобрался. всем спасибо. |
|||
|
||||
| shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: 2 Всего: 2 |
Kirill89,
you are wellcom Это сообщение отредактировал(а) shara - 24.1.2009, 00:24 -------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |