powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проблема с вызовом библиотеки
14 сообщений из 14, страница 1 из 1
проблема с вызовом библиотеки
    #33895127
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть библиотека написанная на VC++

вот функция
Код: plaintext
char* (__stdcall *ffast)(char *arg1, char *arg2);

стоит вопрос о вызове в VB


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Declare Function req Lib "actv.dll" Alias "_ffast" (ByVal arg1 As String, ByRef arg2 As String) As String

Public Function act(ByVal arg1 As String, ByRef arg2 As String)
Dim ret
On Error Resume Next

arg1 = "arg1"
arg2 = ""

ret = req(arg1, arg2) 'так вызвать не получится

End Function

выходит ошибка чтения из памяти, подскажите как вызвать или где почитать
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895208
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все аргументы req должны быть ByVal.
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895264
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyВсе аргументы req должны быть ByVal.

arg2 возвращает значение, он byref, бибилиотека не моя.
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895302
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор(char *arg1, char *arg2);Где отличие между 1м и 2м?
Код: plaintext
Public Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Как видишь lpBuffer тоже объявлен ByVal, однако он возвращает значение. Может в твою функцию тоже нужно передать, например переменную со строкой из сотни пробелов?
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895323
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, теперь вроде нормально, но пишет - 49, Bad DLL calling convention
где-то я видел описание этой ошибки, сча гляну, но если можете, помогите
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895407
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм, похоже все таки ByRef. А что функция делает? Может проще написать свой аналог?
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895442
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
библиотека не моя, и код мне не дадут :(
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895460
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати

C language: CHAR
data type In Visual Basic: ByVal variable As Byte
declare as Call with: An expression that evaluates to a Byte
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895483
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что код не дадут не сомневался, но хоть известно что она делает? Mid вырезает, Format форматирует, _ffast ... что-то ускоряет? ;-)

А попробуй-ка объявить as byte и передавай строку как байтовый массив. 1й его элемент.
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895516
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объявил, сказал что Type mismatch :(
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895521
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyТо, что код не дадут не сомневался, но хоть известно что она делает? Mid вырезает, Format форматирует, _ffast ... что-то ускоряет? ;-)


_ffast возвращает сгенеренный ключ
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33895614
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне передали бибилиотеку где все CHAR заменены на LPSTR, я все делаю как в MSDN , но он по прежнему ругается на 49, Bad DLL calling convention, HELP
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33896334
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тебя переделали библиотеку? Пусть переделают так, чтобы функция принимала указатель на строку типа long, а строку будешь передавать через varptr, такая фишка работает наверняка, проверено.
...
Рейтинг: 0 / 0
проблема с вызовом библиотеки
    #33900882
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с проблемой разобрался, скоро выложу пример для других
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проблема с вызовом библиотеки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]