Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение файла в Длл...

33K
31 января 2009 года
Discens
9 / / 18.03.2008
Уважаемые дельфисты, такой вопрос...
Нужно из динамической библиотеки открыть файл. Ну собственно функция которая вызывается из библиотеки использует данные из этого файла... данные там меняются... поэтому нужно открывать и закрывать, когда функция вызывается на выполнение. В основной функции библиотеки это делать не стоит, так как библиотека отображается на многие процесы....
вот мой код
Код:
function NewCreateFileW(lpFileName:PWideChar;
             dwDesiredAcces:Cardinal;
             dwShareMode:Cardinal;
             lpSecurityAttributes:PSecurityAttributes;
             dwCreateDisposition:Cardinal;
             dwFlagsAndAttributes:Cardinal;
             hTemplateFile:Cardinal): cardinal;stdcall;
             var
             F1:TextFile;
             str1:string;
begin
   AssignFile(F1,'Setup.cfg');
   Reset(F1);
   ReadLn(F1,str1);
   ReadLn(F1,str1);
   ShowMessage(str1);
   CloseFile(F1);
            begin
                MessageBoxW(0,lpFileName,'Создание файла',MB_OK);
               result:=TrueCreateFileW(lpFileName,dwDesiredAcces,dwShareMode,lpSecurityAttributes,
               dwCreateDisposition,dwFlagsAndAttributes, hTemplateFile);
             end;

как многие догадались, это перехват вызова функции создания файла какой-то программой...
проблема возникает в том месте, в где коде отмечено жирным. У кого будут каке-то идеи?
39K
31 января 2009 года
kupec
17 / / 11.08.2008
возможно, открывать и читать файл стоит попробовать через WinAPI
46K
01 февраля 2009 года
r9m
9 / / 01.02.2009
А какие именно проблемы? Ошибки или просто не так работает? Поподробнее бы...
33K
01 февраля 2009 года
Discens
9 / / 18.03.2008
Спасибо. Я тож над этим думал... но в делфи работать с WinAPI напряг... хотя у меня наверное нету выбора
6
02 февраля 2009 года
George
4.1K / / 05.01.2007
[highlight=delphi]
AssignFile(F1, 'Setup.cfg');
if FileExists('Setup.cfg') then
Append(F1) // Открытие существующего файла
else
Rewrite(F1);
Reset(F1); // Перемещение указателя в начало файла
try
ReadLn(F1,str1); // Чтение файла
ReadLn(F1,str1);
ShowMessage(str1);
finally
CloseFile(F1); // Закрытие файла
end;
[/highlight]
303
03 февраля 2009 года
makbeth
1.0K / / 25.11.2004
Discens, у тебя код перехвата функции вызова весь под WinAPI. Зачем тебе использовать функции Delphi?
Проблемы могут быть из-за DLL. А вот ошибку мог бы озвучить...
6
03 февраля 2009 года
George
4.1K / / 05.01.2007
Файл setup.cfg точно лежит в папке с дллкой?
303
03 февраля 2009 года
makbeth
1.0K / / 25.11.2004
Да что гадать? Это же hook DLL. Она грузиться в адресное пространство других процессов! Может Delphi функции используют чисто Delphi фичи (наример, при выделении памяти), поэтому трындец и происходит :)
Информации маловато...
33K
04 февраля 2009 года
Discens
9 / / 18.03.2008
Вашингтон спасибо, но код тоже вылетает. А ошибку я увидеть не успеваю. Какую информацию ещё нужно выложить? могу весь код. Наверное буду пробовать с Апи
6
04 февраля 2009 года
George
4.1K / / 05.01.2007
это как так, ошибку не успеваешь увидеть??? вставь тогда GetLastError, сообщи код ошибки. Ну или с апи пробуй, тоже юмор. =)
33K
04 февраля 2009 года
Discens
9 / / 18.03.2008
Я не в том смысле... Окно так быстро вылетает что неуспеваю рассмотреть, и закрывается моментом та программа, к которой библиотека подключена... С вызовом функции CreateFile, тоже самое
303
04 февраля 2009 года
makbeth
1.0K / / 25.11.2004
Т.е. с API не катит? Попробуй протестировать просто хук, без каких-либо своих добавлений (т.е. просто тупо сразу вызывай TrueCreateFileW). Будет ли ошибка?
33K
05 февраля 2009 года
Discens
9 / / 18.03.2008
Так всё, конечно же работает, не хочет работать когда я открываю файл в функции-обработчике перехвата... вот этого понять не могу .... пока... ну буду думать, из этого файла функция должна брать параметры, которые туда ложит другая программа, может быть попробовать другой способ передачи ... типа каналы или что-то такое...
14
05 февраля 2009 года
Phodopus
3.3K / / 19.06.2008
ShowMessage() и MessageBox() это слишком круто при перехвате..
33K
22 февраля 2009 года
Discens
9 / / 18.03.2008
Всё. РАзобрался. Проблема была в том, что стоял перехват, на открытие файла. Нужно было снять перехвать и всё путём стало
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог