Что нового

Как вызвать WinAPI функцию DeleteFile() в x64 системе?

Alexander

Новичок
Сообщения
105
Репутация
2
Ребята, кто знает, будет ли работать функция DllCall (используется библиотека kernel32.dll) на системе x64? Запись будет такая же как и для x32?
Ну например для x32:
Код:
DllCall('kernel32.dll', 'int', 'DeleteFile', 'str', 'путь к файлу')

Для x64 оно так же записывается или может, с учетом разрядности, по другому?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Re: DllCall (kernel32.dll) и Windows x64

У тебя уже 35 постов, а ты так и не понял как у нас на форуме принято называть темы. Название должно отражать суть проблемы, например "Как вызвать WinAPI функцию DeleteFile() в x64 системе?". Исправь пожалуйста.

По поводу вороса, да, будет работать (а что мешает взять и проверить?). Но лучше использовать Unicode версию этой функции.

Код:
DllCall('kernel32.dll', 'int', 'DeleteFileW', 'wstr', $sFile)
 
Автор
A

Alexander

Новичок
Сообщения
105
Репутация
2
Исправил :smile: Постараюсь в дальнейшем называть темы правильно ;)
А чем отличается Unicode от "обычной"? Проверить мешает отсутствие x64)))
Говорят, что если не установлен .Net Framework (на x64, что вроде оно правильно переадресовывает обращение к библиотеке), то это работать не будет... Это правда?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Я ничего про это не слышал. Не грузись этим, все будет прекрасно работать. Любая функция, которая должна работать на x64, будет работать, если правильно объявлены типы. Например для AutoIt в x86 разницы между "DWORD" и "PTR" нет, а в x64, это работать не будет, т.к. "DWORD" - 4 байта, а "PTR" - 8 байт.

Т.к. последние версии AutoIt работают только с Unicode, то резонно использовать тоже только Unicode функции.

А вообще, большинство WinAPI функций (в том числе и DeleteFile()) реализовано в WinAPIEx.au3.
 
Верх