Страница 1 из 1

Подключение функции из DLL

Добавлено: 19 янв 2011, 07:54
win
Исходные данные:
функция из DLL

Код: Выделить всё

extern "C" void _fastcall _declspec(dllexport) FILLSTRUCT(ShortString * _kod, int _color);
Импортируем функцию из DLL в VIP(inc файл)

Код: Выделить всё

procedure PrepareData(string, longInt); external 'GalVisio.dll#@FILLSTRUCT';
затем в функции FILLSTRUCT добавляю еще 1 параметр, соответственно и в PrepareData добавляю параметр.

Код: Выделить всё

extern "C" void _fastcall _declspec(dllexport) FILLSTRUCT(ShortString * _kod, int _color, ShortString * _NameObj);

Код: Выделить всё

procedure PrepareData(string, longInt, string); external 'GalVisio.dll#@FILLSTRUCT';
При компиляции возникает ошибка: "Повторная перерегистрация функции не совпадает с используемой".
Приходится менять название функции на другое PrepareData1...
Что нужно сделать, чтобы не менять названия функция после каждой переделки DLL?

Re: Подключение функции из DLL

Добавлено: 19 янв 2011, 13:57
LaaLaa
Нужно очищать служебный рабочий ресурс компилятора.
Для сточного компилятора VIP.EXE по умолчанию это это ресурс Atlantis_User.res (или задается параметром VIP.CFG Compilers.SubServientResource). В Viper этот ресурс указывается в настройках проекта "Компилятор VIP \ Ресурсы \ Имя служебного ресурсного файла"

Re: Подключение функции из DLL

Добавлено: 20 янв 2011, 04:45
win
Спасибо за помощь! :cool: