[ОТВЕТИТЬ]
Опции темы
04.03.2012 13:26  
Janek
как в Delphi 6 использовать DLL, созданный в Visual Basic

Добавлено через 19 минут 46 секунд
Если использую метод статической вставки DLL-файла:
implementation

{$R *.dfm}
procedure set_CommodityCharSize(B:WideString); far external 'ScLoad.dll';

procedure TfmExample.bbRunClick(Sender: TObject);
var B:integer;
Handle:LongWord;
begin
B := 12;
set_CommodityCharSize(IntToStr(B));
end;

то тогда при запуске клавишой F9 возникает сообщение
"The module ScLoad.dll was loaded but the
entry-point DllRegisterServer was not found.

Make sure that "scload.dll" is a valid DLL or OCX file
and then try again."

Добавлено через 3 минуты 13 секунд
"the application was unable to start correctly (0xc000007b). Click OK to close
the application."

Вот это сообщение выходит при запуске клавишей F9
 
зарегистрируйтесь, чтобы убрать эту рекламу
04.03.2012 13:30  
AlexeyF
Какая разница где создана dll
В дельфи есть стандартный способ объявить dll в программе. Единственный нюанс способ передачи параметров - на сколько помню их два. Если известны процедуры/функции, передаваемые параметры и их типы - открой хелп - там всё есть.
 
04.03.2012 13:35  
Janek
Да, эти процедуры и параметры процедур известны, но почему-то при попытке использования этих процедур в проекте Дельфи6 возникает сообщение
"the application was unable to start correctly (0xc000007b). Click OK to close
the application."
 
04.03.2012 13:59  
AlexeyF
{ импорт по специфицированному имени }

procedure ImportByName;external 'MYDLL' name 'MYEXPORTPROC';

{ импорт по оригинальному имени }

procedure MyExportFunc1; external 'MYDLL';

Попробуй по другому объявить.

Добавлено через 17 минут 14 секунд
Сделай поиск строчки "delphi dll 0xc000007b" в гугле
Много интересного вылезает - основная мысль всётаки неправильная передача параметров.
 
04.03.2012 14:23  
Janek
Попробовал объявить эту процедуру по-другому:
procedure set_CommodityCharSize2(B:WideString); external 'ScLoad.dll' name 'set_CommodityCharSize'; ,

но все равно при запуске клавишей F9 возникает сообщение:

"the application was unable to start correctly (0xc000007b). Click OK to close
the application."

Добавлено через 1 минуту 14 секунд
Да, я искал в гугле по теме этой ошибки, но ничего конкретного не нашел. Ни у кого не было этой проблемы.
 
04.03.2012 14:25  
OlegON
исходник васика есть? еще в Delphi есть дампер dll, как я помню, вот им надо посмотреть exports-секцию в dll, сдается мне, что это сервер COM, а не просто подключаемая библиотечка. в общем, я склоняюсь к мысли, что вызов неправильный.
 
04.03.2012 14:57  
Janek
я же передаю этой процедуре тип данных WideString.
Что здесь неправильного в конкретной передаче параметра?

Добавлено через 7 минут 9 секунд
Исоходник есть, но как я его Вам пришлю, если здесь нельзя ссылку показывать?
Здесь есть какой-то tlb-файл, но я не знаю, как его использовать в совокупности с dll-файлом.

Добавлено через 3 минуты 20 секунд
tdump.exe я запустил и в его результатах export секция была нулевая

Добавлено через 2 минуты 41 секунду
Интересно, что этот dll-файл не удается зарегистрировать в регистрах Windows 7 с помощью команды
regsvr32 scload.dll
 
04.03.2012 15:34  
Janek
Что такое Васик?
 
05.03.2012 08:16  
student
Цитата:
Сообщение от Janek
то тогда при запуске клавишой F9 возникает сообщение
"The module ScLoad.dll was loaded but the
entry-point DllRegisterServer was not found.

Make sure that "scload.dll" is a valid DLL or OCX file
and then try again."
обычно это говорит о том, что ты пытаешься регистрировать элемент, который в принципе не может быть зарегистрирован- объявляй ф-ции длл-ки у себя внутри в проекте как обычные виндовые апи (извини синтаксис дельфей уже не помню - слишком давно было) и посмотри в инете соответствие типов переменных в этих средах

кстати,

Цитата:
Сообщение от Janek
Исоходник есть, но как я его Вам пришлю, если здесь нельзя ссылку показывать?
Здесь есть какой-то tlb-файл, но я не знаю, как его использовать в совокупности с dll-файлом.
смысл тогда какой юзать эту длл-ку - портируй все к себе сразу (в васике все трогательно просто :))- меньше накладных расходов у тебя будет
 
05.03.2012 13:03  
Janek
как корректно импортировать в Дельфи 6 компоненты ActiveX, созданные в Visual Basic?
Через Project - Import Type Library пробовал, но потом в проекте Дельфи кричит, что использую незарегистрированный класс.
 
 


Опции темы



Часовой пояс GMT +3, время: 23:25.

Все в прочитанное - Донат - RSS - - Карта - Вверх

Форум сделан на основе vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.