информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеГде водятся OGRыАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Новый вопрос с DLL (2) 04.12.01 13:21  Число просмотров: 1061
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > первый вопрос решился - действительно, ДЛЛ не хватало
> этих
> > борландовских ДЛЛок.
> > Тогда возникает встречный вопрос - можно ли какнть из
> одной
> > ДЛЛ вытащить нескольку функций и на их основе
> построить
> > новую ДЛЛ?
> > например если из cw3230.dll нужно всего пара-тройка
> ф-ций,
> > то чтобы не таскать всю cw3230.dll сделть NEW.DLL в
> которой
> > будут эти ф-ции?
> В общем случае нельзя. Например: есть lkk? в которой
> экспортируются функции sin, cos, tg, причём tg реализован
> как sin/cos - ну и как ты его вытащишь?

Esli est' cw3230.lib - kak static library, to pri linkovke, NEW.DLL zaberet tol'ko to chto emu nuzhno, esli zhe ona sushestvuet toka kak dynamic library, to dela ploxi. Totzhe samyj xren kak usat' MFC static or dynamic ...
<programming>
Новый вопрос с DLL 04.12.01 00:43  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Итак, добавив extern "C" run-time длл заработала.
но возникла следующая проблема:

Основной модуль (mail.exe) слинкован статически.
ДЛЛку линкую тоже статически...

В этом случае DLLEntryPoint вызываеца...

Если я линую ДЛЛ динамически, то основной модуль не может ее загрузить и GetLastMessage возвращает "One of the library files needed to run this application could not be found". Не вызываеца цже и DLLEntryPoint.

Почему???

Кстати есть и еще один вопрос - и в том и другом случаях после завершения main.exe он все-таки остаеца в памяти.... Почему он не выгружаеца?
напиши точнее... 04.12.01 02:00  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
> Основной модуль (mail.exe) слинкован статически.
с кем слинкован статически ?

> ДЛЛку линкую тоже статически...
с кем ?

> Кстати есть и еще один вопрос - и в том и другом случаях
> после завершения main.exe он все-таки остаеца в памяти....
> Почему он не выгружаеца?
как ты определяешь что он не выгружается ?
напиши точнее... 04.12.01 02:05  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
В проекте в TargetExpert выбираю static или dynamic. Мне нужно написать маленькую ДЛЛ => делаю dynamic.

а процесс видно через обыкновенный PrcView (причем после закрытия проверял юзает ли он модуль dll.dll но оказалось что он его успешно выгрузил (действительно он его выгружает и загружает нормально - проверял)).
Новый вопрос с DLL 04.12.01 01:48  
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
> Итак, добавив extern "C" run-time длл заработала.
А оно тебе надо? - extern "C" писать?

> но возникла следующая проблема:
>
> Основной модуль (mail.exe) слинкован статически.
Зачем так, ести ты динамически адрес получаешь?

> ДЛЛку линкую тоже статически...
Это ж как?

> В этом случае DLLEntryPoint вызываеца...
В каком случае? DLLEntryPoint, вероятно, вызывается в момент загрузки длл. В любом случае.

> Если я линую ДЛЛ динамически, то основной модуль не может
Может это я торможу, или чего не помню, или bc от vc очень отличается, но что значит "линую ДЛЛ динамически"?

> ее загрузить и GetLastMessage возвращает "One of the
> library files needed to run this application could not be
> found". Не вызываеца цже и DLLEntryPoint.
...

> Почему???
А почему бы и нет? как известно false->"всё, что угодно"

> Кстати есть и еще один вопрос - и в том и другом случаях
> после завершения main.exe он все-таки остаеца в памяти....
> Почему он не выгружаеца?
Кто он? Процесс main.exe? Ну, так значит он ещё не завершился.
Новый вопрос с DLL 04.12.01 02:00  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
фишка вот в чем..

1. основной модуль (main.exe) линкую статически (все импорты зашиваю в него, т.е. он что то stand alone program. ему не нужна будет например cw3230.dll тк все из него запихиваеца в main.exe)

А вот дллку я хочу скомпоновать динамическую, т.е. функции в ней использованные могут нахица вне ее.... тогда она получаеца на 6 кило всего...

но когда я ее пытаюсь загрузить то возвращаеца ошибка которую я ранее называл.

если же же DLL скомпоновать статически (stand alone иначе говоря) то все ф-ции будут в ней.. и тогда она пашет нормально.

2. что касаеца выгрузки main.exe - имееца в виду что после закрытия проги - процесс все еще висит!!! непонятно почему.... висит даже в том случае если я ДЛЛ даже не загружаю... в противном случае можно было бы предположить что счетчик не обнулился и ДЛЛ не выгружна и тада по завершении проги , основной процесс не убиваеца а держит эту ДЛЛ..... но это не так... так в чем же дело?
Новый вопрос с DLL 04.12.01 02:07  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
а у тебя есть эта cw3230 ? (и другие длл типа этой с которыми связывается твоя)
система её не может найти

> 2. что касаеца выгрузки main.exe - имееца в виду что после
> закрытия проги - процесс все еще висит!!! непонятно
> почему.... висит даже в том случае если я ДЛЛ даже не
> загружаю... в противном случае можно было бы предположить
> что счетчик не обнулился и ДЛЛ не выгружна и тада по
> завершении проги , основной процесс не убиваеца а держит
> эту ДЛЛ..... но это не так... так в чем же дело?
глюк у тебя в программе
запусти в отладчике
а когда после выхода из программы она будет висеть приостанови выполнение проги
увидишь где она висит
Новый вопрос с DLL (2) 04.12.01 02:39  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
первый вопрос решился - действительно, ДЛЛ не хватало этих борландовских ДЛЛок.
Тогда возникает встречный вопрос - можно ли какнть из одной ДЛЛ вытащить нескольку функций и на их основе построить новую ДЛЛ?
например если из cw3230.dll нужно всего пара-тройка ф-ций, то чтобы не таскать всю cw3230.dll сделть NEW.DLL в которой будут эти ф-ции?
А прогу которй понадобяца ф-ции из cw3230.dll переправить чтоб она обращалась за ними же но уже в new.dll (или new000.dll чтоб длина совпадала)..
Можно? Есть какийнть тулзы для этого?
Новый вопрос с DLL (2) 04.12.01 03:20  
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
> первый вопрос решился - действительно, ДЛЛ не хватало этих
> борландовских ДЛЛок.
> Тогда возникает встречный вопрос - можно ли какнть из одной
> ДЛЛ вытащить нескольку функций и на их основе построить
> новую ДЛЛ?
> например если из cw3230.dll нужно всего пара-тройка ф-ций,
> то чтобы не таскать всю cw3230.dll сделть NEW.DLL в которой
> будут эти ф-ции?
В общем случае нельзя. Например: есть lkk? в которой экспортируются функции sin, cos, tg, причём tg реализован как sin/cos - ну и как ты его вытащишь?

> А прогу которй понадобяца ф-ции из cw3230.dll переправить
> чтоб она обращалась за ними же но уже в new.dll (или
> new000.dll чтоб длина совпадала)..
> Можно? Есть какийнть тулзы для этого?
Читай Рихтера - у него есть пример того, как перехватывать импортируемую функцию.
Новый вопрос с DLL (2) 04.12.01 13:21  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > первый вопрос решился - действительно, ДЛЛ не хватало
> этих
> > борландовских ДЛЛок.
> > Тогда возникает встречный вопрос - можно ли какнть из
> одной
> > ДЛЛ вытащить нескольку функций и на их основе
> построить
> > новую ДЛЛ?
> > например если из cw3230.dll нужно всего пара-тройка
> ф-ций,
> > то чтобы не таскать всю cw3230.dll сделть NEW.DLL в
> которой
> > будут эти ф-ции?
> В общем случае нельзя. Например: есть lkk? в которой
> экспортируются функции sin, cos, tg, причём tg реализован
> как sin/cos - ну и как ты его вытащишь?

Esli est' cw3230.lib - kak static library, to pri linkovke, NEW.DLL zaberet tol'ko to chto emu nuzhno, esli zhe ona sushestvuet toka kak dynamic library, to dela ploxi. Totzhe samyj xren kak usat' MFC static or dynamic ...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach