Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли подключить к проекту asp.net dll, написанную в 6 версии VS?

4.0K
21 августа 2006 года
vesna
71 / / 04.10.2005
Появилась вот потребность выложить на сайт вот такую вот dll.
Кто-нибудь может посоветовать в какую сторону смотреть?
Буду очеь признателен.
Что-то в интернет не нашел ничего.
273
21 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=vesna]Появилась вот потребность выложить на сайт вот такую вот dll.
Кто-нибудь может посоветовать в какую сторону смотреть?
Буду очеь признателен.
Что-то в интернет не нашел ничего.[/quote]
Теоретически можно, только я не совсем понимаю, что ты хочешь из неё извлеч
4.0K
21 августа 2006 года
vesna
71 / / 04.10.2005
Она будет получать одну строку и возвращать другую строку.
Сразу скажу, что мне это самому не нравиться, но выхода другого просто нет, поскольку мне её (длл) навязали, писать то же самое на .net пока никто не собирается. Поэтому на данном этапе придется извратиться.
273
22 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=vesna]Она будет получать одну строку и возвращать другую строку.
Сразу скажу, что мне это самому не нравиться, но выхода другого просто нет, поскольку мне её (длл) навязали, писать то же самое на .net пока никто не собирается. Поэтому на данном этапе придется извратиться.[/quote]
А случайно эта DLL не CGI-программа?? А для того, чтобы вызывать Native-функцию из DLL нужно написать Managed-прототипы в C# и потом через атрибут DllImportAttribute указать, из какой DLL её вызывать.
4.0K
22 августа 2006 года
vesna
71 / / 04.10.2005
Чего там внутри этой длл я не знаю. Когда-то давно CGI я подключал. Компилировал в код на С в ехе, обзывал файл .cgi и вперед...
На данном этапе и нужно что-то вроде этого.
А по поводу прототипов. Я правильно понимаю, что речь идет о написании прототипов всех методов, использующихся в длл?
Просто если так, то проще попросить переписать эту длл на .net, поскольку мне доступен только интерфейс, реализацию я не вижу.
20K
23 августа 2006 года
YouRLex
5 / / 18.08.2006
[QUOTE=vesna]Чего там внутри этой длл я не знаю. Когда-то давно CGI я подключал. Компилировал в код на С в ехе, обзывал файл .cgi и вперед...
На данном этапе и нужно что-то вроде этого.
А по поводу прототипов. Я правильно понимаю, что речь идет о написании прототипов всех методов, использующихся в длл?
Просто если так, то проще попросить переписать эту длл на .net, поскольку мне доступен только интерфейс, реализацию я не вижу.[/QUOTE]
1) Тебе и нужен только интерфейс.
2) По поводу прототипов:
описано здесь . Здесь небольшой пример работы с kernel32.dll для COM-порта. Но суть не в этом, твой код будет примерно таким же...
создание прототипа (все из того же примера):
[DllImport("kernel32.dll", SetLastError = true)]
static extern Boolean ReadFile(IntPtr hFile,
out Byte[] lpBuffer,
UInt32 nNumberOfBytesToRead,
out UInt32 nNumberOfReadedBytes,
IntPtr lpOverlapped);

получился прототип экспортируемой из kernel'а Win32 функции ReadFile, описание которой можно найти в MSDN'е.
И таким образом для всех нужных тебе функций...
273
23 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=vesna]Чего там внутри этой длл я не знаю. Когда-то давно CGI я подключал. Компилировал в код на С в ехе, обзывал файл .cgi и вперед...
На данном этапе и нужно что-то вроде этого.
А по поводу прототипов. Я правильно понимаю, что речь идет о написании прототипов всех методов, использующихся в длл?
Просто если так, то проще попросить переписать эту длл на .net, поскольку мне доступен только интерфейс, реализацию я не вижу.[/quote]
Не нужно писать обёртки для всех функций DLL - напиши только для тех, которые нужно вызывать. А если тебе доступен интерфейс, значит это COM-компонент. Зарегистрируй его, затем в Project Explorer -> Add Reference -> COM добавь ссылку на интерфейс.
4.0K
23 августа 2006 года
vesna
71 / / 04.10.2005
Спасибо большое, буду пробовать.
4.0K
23 августа 2006 года
vesna
71 / / 04.10.2005
Пошел я тут покурить, и до меня дошло, что ты написал по поводу СОМ.
Под интерфейсом я имел ввиду интерфейсную часть класса (хедерный файл), а не интерфейсы как таковые. Так что это не СОМ.
273
23 августа 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=vesna]Пошел я тут покурить, и до меня дошло, что ты написал по поводу СОМ.
Под интерфейсом я имел ввиду интерфейсную часть класса (хедерный файл), а не интерфейсы как таковые. Так что это не СОМ.[/quote]
Ну тогда однозначно использовать P/Invoke (через атрибут DllImport). Другого выхода нет.
4.0K
23 августа 2006 года
vesna
71 / / 04.10.2005
Понятно, попробую, спасибо большое.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог