Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Can't find DLL entry point ... in ",,,,, .dll Добавлено: 24.12.05 15:53  

Автор вопроса:  Surok
Не ругайте за то что много уже раз кто-то кому-то разжевывал этот вопрос...Поиск по форуму глючит у меня..

значит..так..
АctiveX Dll-ки регистрируются и подключаются к прожекту - норм, знаем..
DLL - ки которые не ActiveX..их как?

Дали мне dll на Дельфях написанную...и как ее контачить?
Не региться и а функции декларируешь - кричит Can't find DLL entry point ... in ",,,,, .dll"..

Так вот...И что это за такая контрольная точка?

Ну, допустим узнаю я ее..как мне это поможет?
Как использовать ее в приложении штобы дллку взять за рога?

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 24.12.05 16:03
Поинтересуйся у того, кто дал, указаны функции на экспорт или нет. И какое соглашение вызова.

Ответить

Номер ответа: 2
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #2 Добавлено: 24.12.05 17:13
В Win\System скопируй и попробуй: regsvr32 ..dll
Если я правильно понял траблу.

Ответить

Номер ответа: 3
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #3 Добавлено: 24.12.05 17:54
 «UL.exe»
Ты неправильно понял "траблу". Вопрос ещё раз почитай.

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 25.12.05 01:55
ну соглашение все-же там stdcall, имхо, а вот функции их декларации и ипользование спросить кешно прийдется :)

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 25.12.05 23:54
Если это нормальная dll, то почему у неё точки входа нет и как с этим бороться? Заодно спроси у того, кто на Дельфи писал, что за dll он компилировал?

Ответить

Номер ответа: 6
Автор ответа:
 Surok



Вопросов: 36
Ответов: 106
 Профиль | | #6 Добавлено: 26.12.05 04:15
Нутро дллки я знаю...иначе как бы я пытался бы декларировать..

Как с ошибкой быть?

>> mc-black Нормальная дллка..? либо активХ либо stdcall..какие еще существуют?

точка входа -- это, я так понимаю, какоето смещение в самой дллки..и как ее узнать и использовать...

Ответить

Номер ответа: 7
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #7 Добавлено: 26.12.05 06:30
мне тут пару месяцев назад гуру написали ДЛЛ на СИ, дак она совсем и не требует регистрации.
Регистрации требуют ActiveX-DLL, иначе из них функций не вытащишь. А на СИ без регистрации работает.

Ответить

Номер ответа: 8
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #8 Добавлено: 26.12.05 09:24
Surok
Точка входа - это адрес DllMain, винда сама её вызывает, когда dll загружается.
Если под точкой входа подразумевается точка входа в конкретную процедуру, то получается она вызовом GetProcAddress (предварительно нужно загрузить dll при помощи LoadLibrary)

Ответить

Номер ответа: 9
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #9 Добавлено: 26.12.05 10:27
Ты хотя бы открой библу в Dependency Walker'е и погляди какие функции она экспортирует и под какими именами. А там уже эксперементируй с параметрами.

Ответить

Номер ответа: 10
Автор ответа:
 Surok



Вопросов: 36
Ответов: 106
 Профиль | | #10 Добавлено: 27.12.05 20:12
Спасибо всем...трабла разрешилась..ошибка возникала из-за того что декларировась функция которой не существовало, поскольку произошла ошибка в системе человек-человек и нутро дллки описано мне было не правильно...=)

но появилась другая, очень важная трабла:
вызываемые функции Дельфиновской дллки возвращают значения как надо...
А вот принимать в качестве аргумента что-либо вне зависимости от типа не хотят..

С тем челом, который эту дллку делал, зависли с этой багой...перепробовали уже все возможные типы..
самый простой пример: в дллке - функция , которой из VB передаеться число типа Long...функция показывает сообщение с этим числом и возвращает его...так вот что не подсунь, а возвращает одно и тоже число...

какая то недружба VB-Delfi...

Ответить

Номер ответа: 11
Автор ответа:
 Surok



Вопросов: 36
Ответов: 106
 Профиль | | #11 Добавлено: 27.12.05 20:21
to HOOLIGAN
попутно рождаеться вопрос..
GetProcAddress как пользоваться функцией?

возможно ли, скажем, если в папку заранее подготовленную кинули дллку stdcall определить ее точку входа и использовать остальные ее функции..и без перекомпиляции проекта?
то есть механизм типа плагинов...
или возможен более удобный способ?

Ответить

Номер ответа: 12
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #12 Добавлено: 27.12.05 21:09
а возвращает одно и тоже число...

Саму dll можно посмотреть?

Если знаешь имена и количество параметров экспортируемых ф-ций, то можно на лету грузить dll и вызывать функции. Примерно так:

Private Sub Form_Load()
    On Error Resume Next
    Dim lb As Long, pa As Long
    'map 'user32' into the address space of the calling process.
    lb = LoadLibrary("user32";)
    'retrieve the address of 'SetWindowTextA'
    pa = GetProcAddress(lb, "SetWindowTextA";)
    'Call the SetWindowTextA-function
    CallWindowProc pa, Me.hWnd, "Hello !", ByVal 0&, ByVal 0&
    'unmap the library's address
    FreeLibrary lb
End Sub


P.S.
Купи себе API-Viewer

Ответить

Номер ответа: 13
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #13
Добавлено: 28.12.05 00:36
А вот принимать в качестве аргумента что-либо вне зависимости от типа не хотят

А ошибки Bad Dll Calling Convention случайно не возникает ли? Надо в объявлении дельфийской функции аписать
Function ......; StdCall;

Или можно SafeCall.

Ответить

Номер ответа: 14
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #14 Добавлено: 28.12.05 12:25
Совет тут один - брать за воротник того кто эту dll писал. Больше тебе никто не поможет.
Ну а если человек сам не знает, какие функции и с какими параметрами он впихнул в свою dll-ку - попроси написать её кого-нить другого :))

Ответить

Номер ответа: 15
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #15 Добавлено: 28.12.05 12:41
ошибка в системе человек-человек ?

У одного есть VB, у другого - Delphi :)
Надо чтобы хотя бы у одного были оба инструмента - для создания и для тестирования dll.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам