Страница: 1 |
Вопрос: DLL на C++ Builder 6.0 | Добавлено: 04.07.11 13:02 |
Автор вопроса: ![]() |
Допустим в длл-ке есть функция OpenPort
DLL_EI int OpenPort(int NCom, HWND hw); Это в билдэре, в vb.net я разобрался, как к ней обратится Declare Ansi Function _OpenPort Lib "LibThread.dll" (ByVal NCom As Integer, ByVal hw As Long) As Long .
Но основная программа написана на vb.6, а он не хочет понимать подчеркивание в имени функции, вот и вопрос как быть, как её декларировать в vb.6? |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 140 |
Профиль | Цитата | #1 | Добавлено: 04.07.11 13:06 |
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 305986093 Вопросов: 3 Ответов: 41 |
Профиль | Цитата | #2 | Добавлено: 04.07.11 13:14 |
Спасибо за ответ, только вот ругается : "Bad dll calling convention", да так, что вылетает. |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 140 |
Профиль | Цитата | #3 | Добавлено: 04.07.11 13:18 |
_stdcall ? |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 140 |
Профиль | Цитата | #4 | Добавлено: 04.07.11 13:26 |
int - в c++ 4 байта, в vb6 - 2 байта. значит нужно ByVal NCom As long |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 305986093 Вопросов: 3 Ответов: 41 |
Профиль | Цитата | #5 | Добавлено: 04.07.11 13:42 |
не катит в vb.net попробовал short, так там сработало все нормально, как не странно. |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 140 |
Профиль | Цитата | #6 | Добавлено: 04.07.11 14:14 |
Чё там пробовать ...
Это для vbnet
Это для vb6
А это правильное соглашение о вызове с++ DLL_EI int __stdcall OpenPort(int NCom, HWND hw); |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 305986093 Вопросов: 3 Ответов: 41 |
Профиль | Цитата | #7 | Добавлено: 04.07.11 14:27 |
Да я полазив по форумам тоже к такому выводу пришел. Спасибо еще раз, буду побывать, что получится отпишусь. |
Страница: 1 |
|