Страница: 1 |
Вопрос: Использование DLL (не ActeveX) в VB? | Добавлено: 27.02.10 00:46 |
Автор вопроса: ![]() |
Здравствуйте!
Подскажите, как использовать DLL (не ActeveX) в VB? Или кто-то поможет перевести код с С+ или Паскаля на VB. |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 27.02.10 01:01 |
VB понимает только __stdcall, так что бывает приходится перекомпилить библиотеку. http://msdn.microsoft.com/en-us/library/984x0h58(VS.71).aspx
Хотя я не знаю что за dll тут используется, и вообще не знаю есть ли проблема) |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 27.02.10 08:27 |
Winand, так и стоит-ли поднимать панику в этом случае? А если даже и стоит, то нам не страшен серый волк: http://vbnet.ru/forum/show.aspx?id=198338
Anton, работать можно, либо предварительно задекларировав функции, как работают с Windows API, описание которых тебе должен дать создатель длл-ки, либо через тот пример ссылку на который я в том топике запостил. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 28.02.10 11:31 |
Какие функции экспортирует библиотека удобно смотреть с помощью DLL Export Viewer
sne, ого, первый раз вижу такое) круто. хотя если есть код библиотеки, то stdcall вставить даже проще p.s. Недавно прочитал на википедии, что в бейсике часто проектируют интерфейс, а всё остальное пишут на СИ и работают через библиотечные вызовы. Надо бы попробовать |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 28.02.10 12:00 |
Winand пишет:
Какие функции экспортирует библиотека удобно смотреть с помощью DLL Export Viewer Только кол-во параметров и их тип вряд-ли таким образом можно узнать ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 28.02.10 17:12 |
sne, это верно) Хотя не до конца. Как я понимаю, если нет def файла то stdcall функции "декорируются" так:
An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12 Соответственно, можно узнать общий размер параметров. А они случаем не всегда по 4 байта? |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 28.02.10 18:23 |
Ты ведь сам привел пример с 8-байтовым double ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 28.02.10 19:58 |
И правда) В любом случае не надо использовать библиотеки без докуметации![]() |
Страница: 1 |
|