Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Использование DLL (не ActeveX) в VB? Добавлено: 27.02.10 00:46  

Автор вопроса:  Anton
Здравствуйте!
Подскажите, как использовать DLL (не ActeveX) в VB?

Или кто-то поможет перевести код с С+ или Паскаля на VB.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #1
Добавлено: 27.02.10 01:01
VB понимает только __stdcall, так что бывает приходится перекомпилить библиотеку. http://msdn.microsoft.com/en-us/library/984x0h58(VS.71).aspx
Хотя я не знаю что за dll тут используется, и вообще не знаю есть ли проблема)

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 27.02.10 08:27
Winand, так и стоит-ли поднимать панику в этом случае? А если даже и стоит, то нам не страшен серый волк: http://vbnet.ru/forum/show.aspx?id=198338

Anton, работать можно, либо предварительно задекларировав функции, как работают с Windows API, описание которых тебе должен дать создатель длл-ки, либо через тот пример ссылку на который я в том топике запостил.

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 28.02.10 11:31
Какие функции экспортирует библиотека удобно смотреть с помощью DLL Export Viewer

sne, ого, первый раз вижу такое) круто. хотя если есть код библиотеки, то stdcall вставить даже проще
p.s. Недавно прочитал на википедии, что в бейсике часто проектируют интерфейс, а всё остальное пишут на СИ и работают через библиотечные вызовы. Надо бы попробовать

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 28.02.10 12:00
Winand пишет:
Какие функции экспортирует библиотека удобно смотреть с помощью DLL Export Viewer

Только кол-во параметров и их тип вряд-ли таким образом можно узнать :)

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #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
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 28.02.10 18:23
Ты ведь сам привел пример с 8-байтовым double ;)

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 28.02.10 19:58
И правда) В любом случае не надо использовать библиотеки без докуметации=) там всё написано обычно

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам