![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.250.142] |
![]() |
|
Страницы: (9) « Первая ... 6 7 [8] 9 все ( Перейти к последнему сообщению ) |
![]() |
Прикр. сообщ.
#1
,
|
|
В DLL можно использовать только модули (нет классов и форм, почему-то при их вызове прога вызвавшая функцию рушится).
Возможности: ![]() ![]() Экспорт функций по ординалу^ Создание консольных приложений Минимальный размер программы 5 кб Автодобавление функций DllMain и Main (опционально) Создание *.map файла (опционально) Переключение языков (русский/английский) 12.08.2004 Добавилась возможность создания консольных приложений (пример есть в архиве) автор примера Lamerroot 13.08.2004 В опциях добавилась возможность уменьшать размер любого компилируемого объекта. Пустая экзешка теперь весит 5 кб! 18.08.2004 Приношу свои извинения. Но в последней версии Alex221(особоая благодарность за помощь) обнаружил серьезный баг не позволявший компилировать DLL-файлы. Ссылка на скачивание обновлена. Принимается помощь по переводам на различные языки. Языки хранятся в виде строк с раздилителями в ресурсах файла vb_dll.dll. Качать (Последнее обновление 2 декабря 2006г.): (предыдущее обновление 18 Августа 2004г.): Прикреплённый файл ![]() |
![]() |
Сообщ.
#106
,
|
|
Из программы на PB пытаюсь запустить функцию из библиотеки.
Но как известно генерируется ошибка. Интересно что выйдет если в библиотеке в процедуре DllMain при DLL_PROCESS_ATTACH считать структуру VBHeader и передать ее функции Call ThunRTMain(VBHeader) |
Сообщ.
#107
,
|
|
|
Цитата Интересно что выйдет если в библиотеке в процедуре DllMain при DLL_PROCESS_ATTACH считать структуру VBHeader и передать ее функции Call ThunRTMain(VBHeader) А каким образом отработает DLL_PROCESS_ATTACH если краш наступает на этапе инициализации VB DLL? msvbvm60 уже должна быть отображена на пространство процесса, делать это нужно из PB EXE файла, т.е. сначала загружаем msvbvm60 а потом уже VB DLL. Но тогда какой смысл во всем этом гемморое? |
Сообщ.
#108
,
|
|
|
SCINER, а пытался кто-нибудь поколдавать над полученной DLL'кой программой Fusion? Не уверен, что она сработает в случае с API DLL (тем паче такой необычной), но чем черт не шутит...
|
![]() |
Сообщ.
#109
,
|
|
Цитата Alex221 @ Цитата Интересно что выйдет если в библиотеке в процедуре DllMain при DLL_PROCESS_ATTACH считать структуру VBHeader и передать ее функции Call ThunRTMain(VBHeader) А каким образом отработает DLL_PROCESS_ATTACH если краш наступает на этапе инициализации VB DLL? msvbvm60 уже должна быть отображена на пространство процесса, делать это нужно из PB EXE файла, т.е. сначала загружаем msvbvm60 а потом уже VB DLL. Но тогда какой смысл во всем этом гемморое? DLL_PROCESS_ATTACH наступает, даже дает кое-что сделать! |
Сообщ.
#110
,
|
|
|
Попробовал пример из архива - скомпилил dll.dll. Запустил Пример.vbp. При вызове функции из dll пишет cannot find entry point..
|
![]() |
Сообщ.
#111
,
|
|
Цитата dismalion @ Попробовал пример из архива - скомпилил dll.dll. Запустил Пример.vbp. При вызове функции из dll пишет cannot find entry point.. приаттачь скомпиленную библиотеку, ее исходники и исходники тестовой проги. |
Сообщ.
#112
,
|
|
|
Исходники из архива vb_dll. В аттаче еще добавил скомпилированную библиотеку
Прикреплённый файл ![]() |
![]() |
|
|
Цитата SCINER @ Так ведь нет никаких глюков! Просто жестко пропиши при компиляции путь к желаемой DLL'ке например так: c:\my_dll.dll и все будет OK! Всем привет! Уважаемый SCINNER, у меня вот проблемка по созданию DLL-ки с помощью твоего ADD-in'a! Выше, ты писал, что при сохранении проекта, в файле самого проекта указывается путь path32 "......................" И что после изменения пути и расширения файла создается [имя файла].exe А у меня после сохранения проекта файл проекта выглядит так: Type=Exe Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\WINDOWS\system32\stdole2.tlb#OLE Automation Reference=*\G{B4FED8FB-2E8D-4D06-A4F2-E999F73EFE6F}#1.0#0#..\..\..\..\..\zwQuery.dll#Project1 Form=frmMain.frm Module=modHook; modHook.bas IconForm="frmMain" Startup="frmMain" ExeName32="HideInProc.exe" Command32="" <--------- ?????? Почему у вас там написано Path32, а у меня Command32 пустой???? Name="HideInProc" HelpContextID="0" CompatibleMode="0" MajorVer=1 MinorVer=0 RevisionVer=0 AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="Home" CompilationType=0 OptimizationType=0 FavorPentiumPro=0 CodeViewDebugInfo=0 NoAliasing=0 BoundsCheck=0 OverflowCheck=0 FlPointCheck=0 FDIVCheck=0 UnroundedFP=0 StartMode=0 Unattended=0 Retained=0 ThreadPerObject=0 MaxNumberOfThreads=1 [MS Transaction Server] AutoRefresh=1 HideInProc.vbd Создается при компиляции!!! Но DLL Нет! Почему у вас там написано Path32, а у меня Command32 пустой???? ![]() ![]() ![]() Мне очень нужно создать DLL ку! Она для перехвата нужна!!!! Вся работа сейчас стопанулась! |
Сообщ.
#114
,
|
|
|
Цитата Nazaroff @ Мне очень нужно создать DLL ку! Она для перехвата нужна!!!! Вся работа сейчас стопанулась! Nazaroff, Sciner тебе ответит, а пока можешь попробовать это как альтернативу для создания DLL на VB6. |
Сообщ.
#115
,
|
|
|
Цитата Nazaroff @ Мне очень нужно создать DLL ку! Она для перехвата нужна!!!! Вся работа сейчас стопанулась! А для хуков совсем не обязательно, чтобы DLL была именно с АПИ, вполне пойдёт и ActiveX.dll и даже ActiveX.ocx ![]() Смотри здесь: хук на чистом бейсике |
![]() |
Сообщ.
#116
,
|
|
2 Nazaroff: Не смотри вообще в этот файл проекта.
Для успешной компиляции библиотеки тебе нужно сделать следующее: 1) Выбрать пункт меню File → Компиляция 2) Перейти в диалоге выбора имени файла в нужный каталог и в строке имени файла указать mydll.dll, т.е. принудительно выставить правильное расширение файла. |
Сообщ.
#117
,
|
|
|
Цитата SCINER @ 2 Nazaroff: Не смотри вообще в этот файл проекта. Для успешной компиляции библиотеки тебе нужно сделать следующее: 1) Выбрать пункт меню File → Компиляция 2) Перейти в диалоге выбора имени файла в нужный каталог и в строке имени файла указать mydll.dll, т.е. принудительно выставить правильное расширение файла. SCINER, сделал все, ка ты написал. По-обычному, путь лежит в Template\Projects Смотри, меня к пример "C:\" Имя файла там прописан как "****.EXE" Меняю имя файла,как ты говорил, "****.dll" Но ни файла "****.exe", "****.dll" нет на "C:\" !!!!! Что же делать? ![]() -Added Цитата varzind @ Цитата Nazaroff @ Мне очень нужно создать DLL ку! Она для перехвата нужна!!!! Вся работа сейчас стопанулась! Nazaroff, Sciner тебе ответит, а пока можешь попробовать это как альтернативу для создания DLL на VB6. Спасибо тебе))) -Added Цитата Артур @ Цитата Nazaroff @ Мне очень нужно создать DLL ку! Она для перехвата нужна!!!! Вся работа сейчас стопанулась! А для хуков совсем не обязательно, чтобы DLL была именно с АПИ, вполне пойдёт и ActiveX.dll и даже ActiveX.ocx ![]() Смотри здесь: хук на чистом бейсике Я просто хочу, чтобы она как Windows'овская была, Чтобы закинул её в любое место на диске и она работала. Отдельно была от проЖекта. Поэтому и заинтересовался работой сей Add-in'a От SCINER'a ![]() |
![]() |
Сообщ.
#118
,
|
|
Цитата Смотри, меня к пример "C:\" Имя файла там прописан как "****.EXE" Меняю имя файла,как ты говорил, "****.dll" Я правильно понимаю, это ты проделываешь в диалоге выбора файла при компиляции проекта из меню Файл → Компиляция? Компиляция — это пункт меню, который с иконкой. Его добавляет аддин. Кстати не вылетают ли ошибки при компиляции? Есть ли у тебя в проекте модуль с функциями, который добавляет аддин? Тип проекта Standart Exe ? Прицепи сюда проект, который не получается скомпилить. У меня не возникало никогда проблем с компиляцией, ни на одной версии Windows. Хотя я всегда юзаю сей аддин. |
Сообщ.
#119
,
|
|
|
Цитата Nazaroff @ Я просто хочу, чтобы она как Windows'овская была, Чтобы закинул её в любое место на диске и она работала. Отдельно была от проЖекта. Поэтому и заинтересовался работой сей Add-in'a От SCINER'a Вот в этом топике: http://bbs.vbstreets.ru/viewtopic.php?p=6708344#p6708344 лежит готовый пример хука на основе библиотеки Хакера. Думаю, что на основе библиотеки SCINER принцип хука будет приблизительно такой же. Там правда сам проект общается с длл, а раз тебе этого не надо и вся обработка будет прямо в библиотеке, то ещё проще ![]() И посмотри ещё дискуссию в этой теме: http://bbs.vbstreets.ru/viewtopic.php?f=1&t=36237&start=0&st=0&sk=t&sd=a И всё-таки: натив-библиотека и для твоей задачи совсем не обязательна. Единственное отличие - что ActiveX.dll нужно зарегистрировать - и будет она у тебя, точно так же, "отдельно от проЖекта" ![]() А совсем уж отдельно от проЖекта вообще не получится - кто-то ведь должен ставить сам хук? Библа - хоть натив, хоть АктивХе - сама этого не сделает. Так что этот кто-то пусть и библу регит. |
Сообщ.
#120
,
|
|
|
Цитата SCINER @ Я правильно понимаю, это ты проделываешь в диалоге выбора файла при компиляции проекта из меню Файл → Компиляция? Компиляция — это пункт меню, который с иконкой. Его добавляет аддин. Кстати не вылетают ли ошибки при компиляции? Есть ли у тебя в проекте модуль с функциями, который добавляет аддин? Тип проекта Standart Exe ? 1)Да, именно в меню Файл---Компиляция(с иконкой) 2)Никаких ошибок нет вообще Посмотри, я прикрепил архив с этим проэктом.Он маленький и простой, но суть в том, что он не компилется в длл Добавлено Артур, спасибо за ссылочки ![]() Прикреплённый файл ![]() |