Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
1

DLL(Delphi) для vb

29.01.2017, 22:49. Просмотров 882. Ответов 9
Метки нет (Все метки)

Доброго времени суток народ! Сообственно сама проблема:
сама функция в делфи
Delphi
1
2
3
4
5
6
7
8
9
10
11
function ssCase(x:integer):PChar;stdcall;
//var st: string;
begin
case x of
1: st:='XOPOIIIO';
end;
  Result:= PChar(st);
end;
 exports ssCase;
begin
end.
При выполнении vb просто вылетает
Visual Basic
1
2
3
4
Private Declare Function ssCase Lib "C:\Users\User\Desktop\dll\Project1.dll" (ByVal x As Integer) As Integer
Private Sub Form_Load()
MsgBox (ssCase(1))
End Sub
как я пологаю ошибка в передачи результат из длл в вб с размерами переменных а может и нет помогите кто чем может в чем ошибка?
как правильно вызвать в вб?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2017, 22:49
Ответы с готовыми решениями:

Нужна Dll для exe msvbm70b.dll
Привет у меня есть exe просит Dll msvbm70b.dll, пришлите плз. Спасибо!

Использование DLL, которую уже использует Delphi.
Hi, Mne neobhodimo ispol'zovat' DLL kotoraya seichas ispol'zuetsya v Delphi application. Vse chto...

Fusion для MSVBVM60.DLL
Est` li u kogo nibud` Fusion? Fusion dobavliaet vse biblioteki v .exe file, i umen`shaet razmer...

DLL для проведения битовых операций
Подскажите библиотеку (DLL) для проведения битовых операций.

Создание dll для поддержки скинов
Добрый день, понадобилась помощь в разработке dll для поддержки скинов в других ЯП, сам пишу на...

9
ji2n
...
31 / 30 / 12
Регистрация: 08.10.2016
Сообщений: 140
29.01.2017, 23:17 2
А она не cDecl?

Добавлено через 7 минут
Почитай тут Работа с DLL в Visual Basic (статья)
0
scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
29.01.2017, 23:19  [ТС] 3
ji2n, Эмм?

Добавлено через 1 минуту
ji2n, Мне нужно понять соотнешение переменных (строковых) в делфи и вб или как записать в делфи и прочитать в вб
0
ji2n
...
31 / 30 / 12
Регистрация: 08.10.2016
Сообщений: 140
29.01.2017, 23:39 4
Кстатьи, Integer Delfi = Long VB вроде как, попробуй
Visual Basic
1
MsgBox (ssCase(1&))
так

Добавлено через 15 минут
А соотношение переменных (строковых), в VB String и всё. Её можно объявить нужной длины или как вариант еще байтовый массив использовать.
0
scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
29.01.2017, 23:55  [ТС] 5
ji2n, Результат получается 2545

Добавлено через 29 секунд
a гдеж мое XOPOIIIO
0
Pro_grammer
Модератор
6157 / 2239 / 441
Регистрация: 24.04.2011
Сообщений: 3,964
Записей в блоге: 10
30.01.2017, 00:00 6
Строки из DLL передаются как ссылка, по указателю.
0
ji2n
...
31 / 30 / 12
Регистрация: 08.10.2016
Сообщений: 140
30.01.2017, 00:11 7
Так от функции ты ждешь String?, А из объявления она возвращает Integer!
Попробуй:
Visual Basic
1
Private Declare Function ssCase Lib "C:\Users\User\Desktop\dll\Project1.dll" (ByVal x As Integer) As String
И, навсякий случай:
Visual Basic
1
2
3
dim s as String * 6
s = ssCase(1&)
msgbox s
Добавлено через 5 минут

Добавлено через 1 минуту
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Строки из DLL передаются как ссылка, по указателю.
Запамятовал, возврат тоже?
1
scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
30.01.2017, 07:26  [ТС] 8
ji2n, Спасибо, еще вопрос а без фиксации длины переменной или нужно всегда знать длину?
0
The trick
Модератор
7384 / 2643 / 759
Регистрация: 22.02.2013
Сообщений: 3,822
Записей в блоге: 76
30.01.2017, 10:05 9
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

scripVB, нужно сначала изучить типы данных VB6. String - это BSTR, вот и нужно возвращать BSTR.
2
scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
30.01.2017, 18:02  [ТС] 10
The trick, спасибо, а есть наглядный пример?) просто тяжело немного в одиночного понять(

Добавлено через 1 час 1 минуту
Все спасибо нашел ответ!!!
1
30.01.2017, 18:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2017, 18:02

ntdll.dll и kernel32.dll - Реальные примеры работы на vb6
Копался, копался по стороннему форуму и наткнулся на всевозможные вызовы апифункций из...

За какую функцию отвечают user32.dll,kernel32,winmm.dll
Помогите мне пожалуйста,разобратся с этими DLLками. Если есть где можно скачать матерьял,буду...

Ошибка Can't find DLL entry point CryptEnumProvidersA in advapi32.dll
Проблема вот в чем. Объявляем CryptEnumProviderTypesA Private Declare Function...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru