Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2010, 16:07   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Как лучше включать режим лога?

Может несколько странный вопрос, но как лучше сделать включение\отключение логов?

- Через параметры запуска:
+ Просто.
- Если логи не предназначены для пользователя - ...

- Через dll:
+ Включение\отключение = копирование dll в папку с прогой.
+ Чтобы включить логи нужна dll - юзер не пройдет.
- Хлопотно файл туда\сюда гонять

- Есть альтернатива?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.07.2010, 17:52   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

первое, не каждый юзер вообще про это слышал, а ежели продвинутый, что ему эти логи дадут?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 08.07.2010, 17:55   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Ну например структуру программы.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.07.2010, 18:11   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

конкурентов боишся? а каким тогда образом планировал dll распространять?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 08.07.2010, 18:12   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Никаким. Только у меня и альфа-тестировщков.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.07.2010, 23:48   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

тогда dll.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.07.2010, 07:12   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Пля! Ну как у меня могло вышибить, что лазарь не могет dll корректно подключать! Пля... Придется искать дополнительные пути. Пока поставил так:
Код:
Procedure CheckLog;
  Begin
   If FileExists('Finder.log') Then LogMode := TRUE;
  End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.07.2010, 07:23   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

подожди, лазаря под рукой нет... что там у него некорректно, ты как подключаешь?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.07.2010, 07:27   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Подключаю так:
Код:
Type
  TPrepareLog = Procedure;
  TLogS       = Procedure(Mesg : ShortString);
  TLogN       = Procedure(Numb : Integer);
  TLogSN      = Procedure(Mesg : ShortString; Numb : Integer);
  TLogSB      = Procedure(Mesg : ShortString; B : Boolean);
  TCloseLog   = Procedure;

 Var
  CurDir       : String;

  LogMode    : Boolean = FALSE;
  LogDLL     : THandle;
  PrepareLog : TPrepareLog;
  LogS       : TLogS;
  LogN       : TLogN;
  LogSN      : TLogSN;
  LogSB      : TLogSB;
  CloseLog   : TCloseLog;

 Procedure GetCurrentDir;

 Implementation

 Procedure LoadLogDLL;
  Begin
   LogDLL := LoadLibrary(PChar('Log.dll'));
   If LogDLL >= 32 Then
    Begin
     @PrepareLog  := GetProcAddress(LogDLL, 'PrepareLog');
     @LogS       := GetProcAddress(LogDLL, 'LogS');
     @LogN       := GetProcAddress(LogDLL, 'LogN');
     @LogSN      := GetProcAddress(LogDLL, 'LogSN');
     @LogSB      := GetProcAddress(LogDLL, 'LogSB');
     @CloseLog   := GetProcAddress(LogDLL, 'CloseLog');
     If Assigned(@PrepareLog) And
        Assigned(@LogS)       And
        Assigned(@LogN)       And
        Assigned(@LogSN)      And
        Assigned(@LogSB)      And
        Assigned(@CloseLog)   Then LogMode := TRUE;
    End;
  End;
Дельфи компилит и работает нормально, после проставления mode delphi лазарь тоже компилит нормально. Но вот при запуске выдает SIGSEGV (AV)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.07.2010, 08:06   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

попробуй описать секцию так...
Цитата:
Procedure LogSN(Mesg : ShortString; Numb : Integer); stdcall;
Procedure LogN(Numb : Integer); stdcall;
... и так далее

LogDLL: THandle;
Добавлено
а в заголовке либы {mode какой стоит?} ...тут нужно следовать ее соглашениям вызова
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 09.07.2010 в 08:10.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить ведение лога в свою программу? Человек_Борща Общие вопросы Delphi 12 20.02.2010 14:30
Как отключать и включать explorer(процесс) програмно? Bill Gates Win Api 1 29.12.2007 00:05
Способы ведения файла-лога Norfolk Общие вопросы Delphi 2 14.06.2007 20:47
Как включать и отключать отображения рисунков в браузаре. Виктор Общие вопросы Delphi 3 19.12.2006 15:10