Проблема с внедрением .dll

Создание, использование компонентов ActiveX
_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Проблема с внедрением .dll

Сообщение _igor_ » 25.08.2007 (Сб) 14:13

Здравствуйте!

Есть .dll созданная при помощи Corman Lisp IDE.
.dll-ка рабочая, заранее была заготовлена в папке \examples
Так же со средой идет утилита dllclient.exe для теста этой самой .dll и все тестится успешно.

Копирую эту библиотеку в \system32

Зависимости – тянет за собой msvcr80.dll (C run-time из Visual Studio 2005) и еще парочку библиотек самой среды Corman Lisp, значит все это тоже кладем в папку \system32

Проверяю Dependency walker, вроде все нормально, все что нужно есть, только одно замечание :

„Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.”
Игнорирую сообщение

Пробую связать свою dllsample.dll с Visual Basic 6
Вот что получается:

Код: Выделить всё
Declare Function lisp_add Lib "dllsample.dll" (ByVal x As Long, ByVal y As Long) As Long


т.е. функция принимает х, у и возвращает их сумму

Код: Выделить всё
Private Sub Command1_Click()
   Label1.Caption = lisp_add(3, 4)
End Sub

по клику на Command1 получаю следующее сообщение:

Microsoft Visual C++ Runtime Library

Program: C:\Program Files\Microsoft Visual Studio\VB6.exe

R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application’s support team for more information


Нажимаю Oк, получаю уже

Microsoft Visual Basic
Run-time error ‘48’
File not found: dllsample.dll


Тогда пробую сначала зарегистрировать

regsvr32.exe "C:\WINDOWS\system32\dllsample.dll"

получаю

Microsoft Visual C++ Runtime Library

Program: C:\Windows\system\regsvr32.exe

R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application’s support team for more information


Нажимаю Ок, появляется еще одно сообщение:

Ошибка при вызове LoadLibrary(“C:\WINDOWS\system32\dllsample.dll”) – Произошел сбой в програмне инициализации библиотеки динамической компоновки (DLL).

Может кто-то сталкивался с подобным?

На машине стоит WinXP sp2, и одновременно Visual Studio 98 c Visual Studio 2005 вроде обе работают друг другу не мешают

С уважением,
Игорь
Последний раз редактировалось _igor_ 25.08.2007 (Сб) 14:29, всего редактировалось 1 раз.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Проблема с внедрением .dll

Сообщение tyomitch » 25.08.2007 (Сб) 14:26

_igor_ писал(а):только одно замечание :

„Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.”
Игнорирую сообщение

Лучше б ты попробовал с ним разобраться.


Да, и что этот топик делает в разделе ActiveX?
Изображение

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Re: Проблема с внедрением .dll

Сообщение _igor_ » 25.08.2007 (Сб) 14:39

Внял совету Hans Passant. MSDN forums moderator: This Dependency Walker warning
shows up on any modern Windows .EXE or .DLL, ignore it. Just copy the Blah.dll
assembly into the "different folder".
http://forums.microsoft.com/MSDN/ShowPo ... 6&SiteID=1

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Сообщение _igor_ » 25.08.2007 (Сб) 17:42

В MSDN прочитал, что ошибка R6034 возникает при попытке загрузить .dll без манифеста, видимо для msvcr80.dll он нужен...
Попробовал скопировать
x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd.cat

и

x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd.manifest

туда же, где и все остальное
Пока результат тот же. Не хочет ни связываться, ни регистрироваться
Последний раз редактировалось _igor_ 25.08.2007 (Сб) 21:02, всего редактировалось 1 раз.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.08.2007 (Сб) 19:23

VC80RT не ставится копированием (сами с этим разбирались).
От него есть инсталлятор в виде .msi
Его и нужно таскать за своей прогой.
Изображение

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Сообщение _igor_ » 28.08.2007 (Вт) 17:11

Спасибо за советы
Проблема решилась
Причина было в манифестах от msvcr80.dll


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32

    TopList