Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Delphi x64
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый Вчера, 20:52
kaka4a kaka4a вне форума
Прохожий
 
Регистрация: 23.03.2013
Сообщения: 3
Версия Delphi: 2009
Репутация: 10
По умолчанию Запуск одного экземпляра программы...

Всем привет.
Имеем такой код :
Код:
Const
 MemFileSize = 1024;
 MemFileName = 'tratata';
Var
 MemHnd : HWND;
begin
  MemHnd := CreateFileMapping(HWND($FFFFFFFF),
                              nil,
                              PAGE_READWRITE,
                              0,
                              MemFileSize,
                              MemFileName);

  if GetLastError<>ERROR_ALREADY_EXISTS then
  begin
//тут продолжаем запуск приложения
end
else begin
//тут блокируем запуск второй копии
end;
end.
При компиляции в 32-бита - всё работает, при 64 - полный игнор данного кода... Куда копать?
Ответить с цитированием
  #2  
Старый Вчера, 22:26
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,052
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Была подобная фигня. Посмотри возвращаемое значение - там скорее всего ошибка типа неправильные параметры. Т.е. не совпадает размерность каких то флагов. Типа у тебя WORD, а там в 64-bit надо DWORD.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter