ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

13.11.2007, 12:44
|
|
Новичок
Регистрация: 04.10.2007
Сообщений: 5
Провел на форуме: 32661
Репутация:
-22
|
|
Помогите
сделайте пожалуйста на с++ консоль..задания
Для тестирования предусмотреть возможность задавать элементы массива различным образом: при описании с инициализацией, присвоением значений (в том числе случайных), или вводом необходимых значений.
1. Найти сумму элементов массива, являющихся степенями числа2.
2. Найти наименьшее среди чисел первой последовательности, не входящих во вторую.
3. Получить массив С(k), упорядоченный по возрастанию, путем слияния массивов A(n) и B(m), упорядоченных перед этим по возрастанию, где k = n + m.
|
|
|

16.11.2007, 08:45
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
Пробую работать с функциями AWE. Вызываю следующим образом:
Код:
bResult = AllocateUserPhysicalPages(GetCurrentProcess(), &NumberOfPages, aPFNs);
bResult = MapUserPhysicalPages(lpMemReserved, NumberOfPages, aPFNs);
bResult = MapUserPhysicalPages(lpMemReserved, NumberOfPages, NULL);
bResult = FreeUserPhysicalPages(GetCurrentProcess(), &NumberOfPages, aPFNs);
Ну т.е. как в примере MSDN. На каждый вызов ругается "identifier not found".
kernel32.lib подключен.
Не пойму в чем дело, подскажите где я мог лажануть..
|
|
|

16.11.2007, 09:50
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Код:
#define _WIN32_WINNT 0x0500
#include <windows.h>
|
|
|

16.11.2007, 10:33
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
С директивами всё норм.)
Всмысле они были прописаны и всё равно не компилится.
Последний раз редактировалось iv.; 16.11.2007 в 10:41..
|
|
|

16.11.2007, 10:42
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
давай исходник
|
|
|

16.11.2007, 10:44
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
Код:
#include <stdio.h>
#include <windows.h>
#define _WIN32_WINNT 0x0501
#define MEMORY_REQUESTED 1024*1024 // request a megabyte
void main(void)
{
BOOL bResult; // generic Boolean value
ULONG_PTR NumberOfPages; // number of pages to request
ULONG_PTR NumberOfPagesInitial; // initial number of pages requested
ULONG_PTR *aPFNs; // page info; holds opaque data
PVOID lpMemReserved; // AWE window
SYSTEM_INFO sSysInfo; // useful system information
int PFNArraySize; // memory to request for PFN array
GetSystemInfo(&sSysInfo); // fill the system information structure
printf("This computer has page size %d.\n", sSysInfo.dwPageSize);
NumberOfPages = MEMORY_REQUESTED/sSysInfo.dwPageSize; // calculate the number of pages of memory to request
printf("Requesting %d pages of memory.\n", NumberOfPages);
PFNArraySize = NumberOfPages * sizeof (ULONG_PTR); // calculate the size of the user PFN array
printf ("Requesting a PFN array of %d bytes.\n", PFNArraySize);
aPFNs = (ULONG_PTR *) HeapAlloc(GetProcessHeap(), 0, PFNArraySize);
NumberOfPagesInitial = NumberOfPages;
bResult = AllocateUserPhysicalPages(GetCurrentProcess(), &NumberOfPages, aPFNs); // allocate the physical memory
if(bResult != TRUE) printf("Cannot allocate physical pages (%u)\n", GetLastError()); return;
if(NumberOfPagesInitial != NumberOfPages) printf("Allocated only %p pages.\n", NumberOfPages); return;
lpMemReserved = VirtualAlloc(NULL, MEMORY_REQUESTED, MEM_RESERVE | MEM_PHYSICAL, PAGE_READWRITE); // reserve the virtual memory
if(lpMemReserved == NULL) printf("Cannot reserve memory.\n"); return;
bResult = MapUserPhysicalPages(lpMemReserved, NumberOfPages, aPFNs);
if(bResult != TRUE) printf("MapUserPhysicalPages failed (%u)\n", GetLastError()); return;
bResult = MapUserPhysicalPages(lpMemReserved, NumberOfPages, NULL); // unmap
if(bResult != TRUE) printf("MapUserPhysicalPages failed (%u)\n", GetLastError()); return;
bResult = FreeUserPhysicalPages(GetCurrentProcess(), &NumberOfPages, aPFNs); // free the physical pages
if(bResult != TRUE) printf("Cannot free physical pages, error %u.\n", GetLastError()); return;
bResult = VirtualFree(lpMemReserved, 0, MEM_RELEASE); // free virtual memory
bResult = HeapFree(GetProcessHeap(), 0, aPFNs); // release the aPFNs array
if(bResult != TRUE) printf("Call to HeapFree has failed (%u)\n", GetLastError());
return;
}
|
|
|

16.11.2007, 11:02
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Сообщение от iv.
#include <windows.h>
#define _WIN32_WINNT 0x0501
а я что тебе написал?
Сообщение от KEZ
#define _WIN32_WINNT 0x0500
#include <windows.h>
разница есть?
|
|
|

16.11.2007, 11:05
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
На всякий случай. Разница не в 500 или 501. А в том, что в windows.h стоят #ifdef, #if и т.п. директивы, поэтому объявлять надо заранее, чтобы правильно процессилась windows.h
иначе нахер ещё писать этот дефайн?
|
|
|

17.11.2007, 01:43
|
|
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме: 951141
Репутация:
291
|
|
WinAPi FindFirstFile FindNextFile
список файлов\директорий по алфавиту всегда выводится?
(мне нужно по алфавиту и размеру)
Последний раз редактировалось inv; 17.11.2007 в 01:47..
|
|
|

17.11.2007, 13:18
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
http://msdn2.microsoft.com/en-us/library/aa364418.aspx
Сообщение от MSDN
The order in which the search returns the files, such as alphabetical order, is not guaranteed, and is dependent on the file system. You cannot depend on any specific ordering behavior. If the data must be sorted, you must do the ordering yourself after obtaining all the results.
например, через std::sort, помоему она умеет сортировать
строки...
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|