Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
new_programmer
1

проблема с использованием функции в проекте Visual Basic, вызываемой из DLL написаной на Delphi5

25.12.2009, 16:25. Показов 1317. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет!

У меня возникла проблема с использованием функции в проекте Visual Basic, вызываемой из DLL написаной на Delphi5.
Код DLL:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
library MyDll;
 
uses
  windows,
  SysUtils,
  Classes;
 
function GetString ():string;stdcall;
   begin
     GetString:='Привет!';
   end;
 
  exports
    GetString name 'GetString'
 begin
end.
Код Project (Visual Basic 6):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
' если 
Private Declare Function GetString Lib 'MyDll.dll' () as String ' в этом случае ошибка: 'Неправильно задан параметр'
' или
Private Declare Function GetString Lib 'MyDll.dll' () ' - а в этом случае: 'Variable uses an Automation type not supported in Visual Basic'
 
Private Sub Command_Click()
  
  Dim Str as String
 
  str=GetString()
 
End Sub
Как решить эту проблему, подскажите пожайлуста?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2009, 16:25
Ответы с готовыми решениями:

Visual Basic вылетает с ошибкой при попытке вызова функции из DLL
Declare Function testdll Lib "cfg.dll" () As String Private Sub Form_Load() Me.Caption =...

Возможно ли вернуть двухмерный массив строк из DLL функции написаной на C++
Собственно есть DLL(на C++), в ней функция, дальше мне собственно нужно что б эта функция...

Вычисление значений функции двух переменных в Visual Basic - Visual Basic
Помогите пожалуйста! В среде VB написать программу вычисления значений функции двух переменных....

Музыка в проекте Visual Basic 6.0
Привет форумчане! Вот понадобилась ваша помощь, как можно добавить в проект MP3 мелодию, то есть не...

3
0 / 0 / 1
Регистрация: 20.05.2008
Сообщений: 26
26.12.2009, 02:25 2
проблема в том, что Delphi имеет свой формат строк, который явно несовместим с VB. плюс ко всему этому, для того, чтобы работать со String в DLL, нужно использовать SharedMem (дельфийский менеджер памяти), а VB его явно не использует.
так что строку String ты не передашь никак. пытайся сделать через PChar.
0
new_programmer
26.12.2009, 02:41 3
Сейчас пытаюсь из DLL передать адресс переменной в проект Visual Basic, чтобы далее обработать с помощью API-функции CopyMemory.
Пока безуспешно...
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 31
27.01.2010, 18:35 4
Попробуй так
function GetString ():PChar;stdcall;
или
function GetString ():PAnsiChar;stdcall;
0
27.01.2010, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2010, 18:35
Помогаю со студенческими работами здесь

Visual Basic + VC++ DLL = ошибка Bad DLL calling convertation
Попытался я написать DLL-ку на VC++, для последующего использования ее в VB. Но поскольку я в VC++...

Проблема с установкой Visual Studio вообще и Visual Basic
Точнее, с установкой Visual Studio вообще и Visual Basic в частности. В самом конце установки, при...

Работа с DLL в Visual Basic (статья)
В данной статье описаны основные способы работы с DLL в языке программирования Visual Basic....

Создание dll на основе Visual Basic
Помогите решить рабочую задачу: создание dll на основе visual basic. Требуется трехмерная модель с...

Использование библиотеки dll написанной в Visual Basic
Здравствуйте. Не получается использовать библиотеку написанную в VB. Вот так вызываю функцию...

Создание процедурных DLL в Visual Basic (статья)
Создание процедурных DLL в Visual Basic Несколько слов о резонах создания процедурных Dll на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru