Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 10.03.2008, 02:07   #1
Постоялец
 
Пол:Мужской
Регистрация: 19.10.2007
Сообщений: 272
Репутация: 4
По умолчанию проблема с областью видимости

Доброго времени суток.

Есть консольное приложение
PHP код:
program simpl_service;
{
$APPTYPE CONSOLE}
uses
  IniFiles
,
  
SvcMgr,
  
SysUtils,
  
Windows,
  
WinSvc,
  
MyUtilUnit in 'MyUtilUnit.pas';

 
procedure SimpleServiceServiceProc();
 
begin
 end
;

 
procedure LogError(ErrorStr:String);
 var
  
ErrorLogFileTextFile;
  
PathErrorFile String;
  
MyIniFileTIniFile;
  
Path:String;
  
FileName:String;
 
begin

 
if not FileExists('config.ini'then
 begin
  Writeln
('cannot find file : config.ini');
  exit;
 
end;

 
MyIniFile:= TIniFile.Create('config.ini');

 
Path := MyIniFile.ReadString('local_configuration','path','');
 
FileName := MyIniFile.ReadString('local_configuration','file_name','Error.txt');

 
PathErrorFile :=Path+FileName;
 
 if 
not FileExists(PathErrorFilethen
 begin
   AssignFile
(ErrorLogFilePathErrorFile);
   
Rewrite(ErrorLogFile);
   if 
IOResult<>0 then
   begin
    Writeln
('cannot find :'+PathErrorFile);
    exit;
   
end;
   
CloseFile(ErrorLogFile);
 
end;

    
AssignFile(ErrorLogFilePathErrorFile);
    
Append(ErrorLogFile);
    
Writeln(ErrorLogFile,ErrorStr);
    
CloseFile(ErrorLogFile);

 
end;
{
$R *.res}
const  
SimpleServiceNameString 'MyServise';
const  
SimpleServiceDisplayNameString 'MyServise )';
const  
SimpleServiceStartErrorString 'StartServiceCtrlDispatcher Error';
var 
DispatchTable : array [0..1 of _SERVICE_TABLE_ENTRYA;


begin
  
TODO -oUser -cConsole Main Insert code here }
 
DispatchTable[0].lpServiceName:=PChar(SimpleServiceName);
 
DispatchTable[0].lpServiceProc:=@SimpleServiceServiceProc;

 
DispatchTable[1].lpServiceName:=nil;
 
DispatchTable[1].lpServiceProc:=nil;
 
LogError(SimpleServiceStartError);
 if 
not StartServiceCtrlDispatcher(DispatchTable[0])
 
then LogError('StartServiceCtrlDispatcher Error');

end
Хочу перенести функции LogError и SimpleServiceServiceProc в отдельный файл Юнит, но проблема в том что потом обе ти функции не видны в новом юните (. Как сделать их видимыми , новый юнит в uses прописывал.
Wizard2007 вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Магазин бытовой техники: купить варочные электрические двухкомфорочные панели - переходи на сайт ТАЙМТВ!домашний гриль на углях настольныйЛучшие замороженные пюре: муссовые зайчики рецепт пирожные - заказывай на сайта АГРОБАР!зеленый театр вднх любэИнженерная 3D печать


Старый 10.03.2008, 15:53   #2
mdanko2000
Неактивный пользователь
 
Пол:Мужской
Регистрация: 10.08.2007
Сообщений: 39
Репутация: 20
По умолчанию Ответ: проблема с областью видимости

примерно так

Код:
unit proc;

interface

procedure LogError(ErrorStr:String);
procedure SimpleServiceServiceProc;

implementation


procedure SimpleServiceServiceProc(); 
 begin 
 end; 

 procedure LogError(ErrorStr:String); 
 var 
  ErrorLogFile: TextFile; 
  PathErrorFile : String; 
  MyIniFile: TIniFile; 
  Path:String; 
  FileName:String; 
 begin 

 if not FileExists('config.ini') then 
 begin 
  Writeln('cannot find file : config.ini'); 
  exit; 
 end; 

 MyIniFile:= TIniFile.Create('config.ini'); 

 Path := MyIniFile.ReadString('local_configuration','path',''); 
 FileName := MyIniFile.ReadString('local_configuration','file_name','Error.txt'); 

 PathErrorFile :=Path+FileName; 
  
 if not FileExists(PathErrorFile) then 
 begin 
   AssignFile(ErrorLogFile, PathErrorFile); 
   Rewrite(ErrorLogFile); 
   if IOResult<>0 then 
   begin 
    Writeln('cannot find :'+PathErrorFile); 
    exit; 
   end; 
   CloseFile(ErrorLogFile); 
 end; 

    AssignFile(ErrorLogFile, PathErrorFile); 
    Append(ErrorLogFile); 
    Writeln(ErrorLogFile,ErrorStr); 
    CloseFile(ErrorLogFile); 

 end; 

end.
mdanko2000 вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема NVRAM либо какая-то другая проблема qizer Компьютерные проблемы 3 03.11.2009 01:40
Проблема, помогите пожалуйста (проблема с Windows Media Player...) bartinio Windows XP 2 12.08.2009 10:49
Проблема с областью уведомлений в Win. XP Dobryi Архив 7 05.03.2007 19:08

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:49. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04079 секунды с 11 запросами