Можно ли подключить к проекту asp.net dll, написанную в 6 версии VS?
Кто-нибудь может посоветовать в какую сторону смотреть?
Буду очеь признателен.
Что-то в интернет не нашел ничего.
Кто-нибудь может посоветовать в какую сторону смотреть?
Буду очеь признателен.
Что-то в интернет не нашел ничего.[/quote]
Теоретически можно, только я не совсем понимаю, что ты хочешь из неё извлеч
Сразу скажу, что мне это самому не нравиться, но выхода другого просто нет, поскольку мне её (длл) навязали, писать то же самое на .net пока никто не собирается. Поэтому на данном этапе придется извратиться.
Сразу скажу, что мне это самому не нравиться, но выхода другого просто нет, поскольку мне её (длл) навязали, писать то же самое на .net пока никто не собирается. Поэтому на данном этапе придется извратиться.[/quote]
А случайно эта DLL не CGI-программа?? А для того, чтобы вызывать Native-функцию из DLL нужно написать Managed-прототипы в C# и потом через атрибут DllImportAttribute указать, из какой DLL её вызывать.
На данном этапе и нужно что-то вроде этого.
А по поводу прототипов. Я правильно понимаю, что речь идет о написании прототипов всех методов, использующихся в длл?
Просто если так, то проще попросить переписать эту длл на .net, поскольку мне доступен только интерфейс, реализацию я не вижу.
На данном этапе и нужно что-то вроде этого.
А по поводу прототипов. Я правильно понимаю, что речь идет о написании прототипов всех методов, использующихся в длл?
Просто если так, то проще попросить переписать эту длл на .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'е.
И таким образом для всех нужных тебе функций...
На данном этапе и нужно что-то вроде этого.
А по поводу прототипов. Я правильно понимаю, что речь идет о написании прототипов всех методов, использующихся в длл?
Просто если так, то проще попросить переписать эту длл на .net, поскольку мне доступен только интерфейс, реализацию я не вижу.[/quote]
Не нужно писать обёртки для всех функций DLL - напиши только для тех, которые нужно вызывать. А если тебе доступен интерфейс, значит это COM-компонент. Зарегистрируй его, затем в Project Explorer -> Add Reference -> COM добавь ссылку на интерфейс.
Спасибо большое, буду пробовать.
Под интерфейсом я имел ввиду интерфейсную часть класса (хедерный файл), а не интерфейсы как таковые. Так что это не СОМ.
Под интерфейсом я имел ввиду интерфейсную часть класса (хедерный файл), а не интерфейсы как таковые. Так что это не СОМ.[/quote]
Ну тогда однозначно использовать P/Invoke (через атрибут DllImport). Другого выхода нет.
Понятно, попробую, спасибо большое.