Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Visual C++ Linking errors Недавно столкнулся с ошибками линковки (точнее Unresolved External Symbol), тк опыта разрешения данных ошибок у меня нет, то я хотел спросить, какие существуют самые распространенные их причины. Мне лично не удалось установить логику их появления, к тому же они зависят от выбранного режима компиляции. https://www.cyberforum.ru/ visual-cpp/ thread249592.html Visual C++ матрица
В прямоугольной матрице найти максимальное среднее арифмитическое среди средних арифметических каждой строки матрицы и вычесть его из всех элементов матрицы, кроме элементов одной заданной строки точнее интересует "вычесть его из всех элементов матрицы, кроме элементов одной заданной строки" Добавлено через 1 минуту #include <locale> #include <vector> #include <iostream> #include...
Visual C++ основы MFC Появилась необходимость в течение 2 недель изучить основы MFC. (в течение года изучал C++, написал программу (правда в C++Builder), в которой задействовал OLE, много поточность, базы данных) Но сейчас уже нужно устраиваться на работу программистом (начинающим), естественно говоря про C++Builder сразу видится улыбка на лицах окружающих...:) Есть одно место, где требуется хотя бы иметь... https://www.cyberforum.ru/ visual-cpp/ thread249496.html Visual C++ Не могу разобратся с Visual Studio 2008 https://www.cyberforum.ru/ visual-cpp/ thread249437.html
Здраствуйте. Я долгое время писал на делфи и с++ в среде RAD Studio 2009, привык к работе в этой среде, соответствено использовал библиотеку компонентов VCL. Проэкт компилировался в нативный код, соответственно на любыв машынах с windows программы работали. В VS 2008 интерфейс и библиотека компонентов другие. Как я понял, приложения на .NET не могут компилироватся в машыный код (или могут...
Получить список подключенных устройств по сети Visual C++
Нужен список утройств и др компьютеров подключенных к моему по сети на подобии того что в "Сетевом окружении", укажите куда копать чтобы об етом узнать p.s. работаю через MFC хочу знать WinApi функции которые мне помогут
Visual C++ Натягивание Dialog на TabPage Добрый день! Подскажите плз как подключить на TabPage диалоговое окно которое я создал графически в ресурсах проекта... Никак не могу найти... Буду очень признателен если раскажите как это сделать опять же графически в студии,и кодом. Добавлено через 1 час 39 минут Проблема решена! http://******************/forum/topic-323554/kw-visual-c++-tab-control-winapi.html https://www.cyberforum.ru/ visual-cpp/ thread249320.html
Visual C++ WinAPI c++ multithreading Всем привет. Недавно начал разбирать winAPI, вот написал программку, с ней какой-то косяк, хотелось бы услышать ваши варианты.. Ну и тяжко что-то даётся Multithreading, пожалуйста, может кто-то чуть модернизировать мою прогу 2 потоками, описав, что они и где делают... Суть моей проги в том, что щёлкаешь на форме левой кнопкой мыши и вылетает месседжбокс с координатами точки, где щёлкаешь, после... https://www.cyberforum.ru/ visual-cpp/ thread249302.html Visual C++ Как подключить libpcap к проекту MVS 2008
Всем привет. Дали задание написать сниффер используя библиотеку libpcap. Саму библу я скачал версия libpcap-1.1.1. Теперь возникла проблема с подключение этой библиотеки к проекту. В большинстве ссылок, которые google выкинул что то типа подключите pcap.h к проекту и будет вам счастье. Но детального руководства я не нашел. А просто подключая pcap.h получаю массу ошибок в этом файле. Если у кого...
Visual C++ Сортировка входной строки бинарным деревом Задача: отсортировать входную строку по возрастанию с помощью бинарного дерева. bin_tree.h #include <iostream> #include <cstring> using namespace std; //------------------------------------------------------------------------------------------------------ typedef unsigned int uint; //------------------------------------------------------------------------------------------------------ https://www.cyberforum.ru/ visual-cpp/ thread249138.html Visual C++ инженерные программы Кто-нибудь писал инженерные программы на этом языке? https://www.cyberforum.ru/ visual-cpp/ thread249112.html
Visual C++ TCHAR + float != дружба или плохой wsprintf
вот столкнулся с проблемой перевода float числа в строчку и наоборот: TCHAR milage; wsprintf(milage,"%f\0",Machines.Mileage);//3й аргумент - float число, допустим 122.2 Ессно не работает - в строчке только буковка "f" остается. порывшись на просторах гугла нашел swprintf, который тоже безуспешно работал - ошибку по синтаксису выдавал, хотя писал как надо было:...
Visual C++ Игнорирует структуру https://www.cyberforum.ru/ visual-cpp/ thread248959.html
Есть главный файл Lobbi.cpp И созданная структура в Lobbi_lib.h,который подключен инклудом в Lobbi.cpp Проблема заключается в том,что если я вызываю структуру Chat().Init_Chat(); в главном файле -ничего не происходит,ошибок тоже нет.Такое ощущение,что код просто игнорируется. Привожу код хедера: struct Struct_Chat { Str
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
28.02.2011, 16:56 0

С++ чтение секторов диска - Visual C++ - Ответ 1407862

28.02.2011, 16:56. Показов 33735. Ответов 31
Метки (Все метки)

Ответ

C++
1
2
3
4
5
6
7
8
9
10
typedef struct _DISK_GEOMETRY
{
    LARGE_INTEGER Cylinders; // Количество цилиндров
    MEDIA_TYPE MediaType;
    DWORD TracksPerCylinder; // Количество дорожек на цилиндр
    DWORD SectorsPerTrack;  // Количество секторов на дорожку
    DWORD BytesPerSector;
} DISK_GEOMETRY;
 
pdg.Cylinders * pdg.TracksPerCylinder * pdg.SectorsPerTrack
Произведение значений этих трех полей даст общее количество секторов

Добавлено через 23 минуты
Цитата Сообщение от partos1 Посмотреть сообщение
как по очереди прочитать все сектора на диске?
по идее должна использоваться функция ReadFile(hDevice, buf, 512, &dwBytesRead, NULL); но где подставить номер сектора или как перебрать все?
Если читать в цикле, то чтение выполняется от начала до конца файла (или дискового устройства). Указатель в файле (диске) сдвигается автоматически. Номер сектора здесь нигде не ставится. Сдвиг указателя осуществляется на количество прочитанных БАЙТ, а не секторов. Но мы то можем узнать, сколько байт в секторе. Обычно 512, но в новых дисках может быть и не так. Поэтому берем это значение из DISK_GEOMETRY pdg.BytesPerSector. Если нужен доступ с произвольного места используется SetFilePointer или SetFilePointerEx (этот сгодится для дисков с огромной емкостью).
Читать дисковые устройства нужно квантами кратными размеру сектора. Если сектор 512 байт, то и читать нужно по 512 байт. Но в целях оптимизации лучше увеличить это значение. Например, по 4096 байт.

Добавлено через 5 часов 46 минут
Кстати, открывается раздел дискового устройства, а запрашиваются сведения о самом дисковом устройстве.
Цитата Сообщение от partos1 Посмотреть сообщение
C++
1
2
hDevice = CreateFile("\\\\.\\D:", ...
bResult = DeviceIoControl(hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY ...
Т.е. то, что будет в структуре DISK_GEOMETRY pdg относится ко всему диску. А на диске может быть несколько разделов. Но даже если на нем будет только один раздел, то размер этого раздела не будет совпадать с размером самого диска. Так что если нужен образ всего диска (с MBR, всеми разделами, неразмеченным пространством), то нужно открывать "\\\\.\\PhysicalDriveX".

Попробуй выполнить запрос
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
PARTITION_INFORMATION pi;
 
if (!DeviceIoControl(hDevice,
    IOCTL_DISK_GET_PARTITION_INFO,
    NULL,
    0,
    &pi,
    sizeof (PARTITION_INFORMATION),
    &bytesReturned,
    (LPOVERLAPPED)NULL))
{
    cout << "Error: " << GetLastError() << endl;
}
И посмотри, что будет в pi.PartitionLength.QuadPart и сравни с pdg.Cylinders.QuadPart * pdg.TracksPerCylinder * pdg.SectorsPerTrack * pdg.BytesPerSector

Вернуться к обсуждению:
С++ чтение секторов диска Visual C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2011, 16:56
Готовые ответы и решения:

Чтение секторов жёсткого в DOS
Добрый вечер! Проблема заключается именно в том, что программа должна работать под DOS, и ей не...

Чтение секторов жесткого диска
пишу драйвер, считывающий секторы жесткого диска он сохраняет в файл результат проделанной работы....

Ремап секторов диска с AF
Понадобилось сделать ремап на своём винче, много бэдов и блоков с чтением &gt;600 ms (даже один с 56к...

Чтение секторов с CD
Как и многие программеры-извращенцы,решил написать свою ОС в учебных целях. Т.к. нынче флоппиков...

31
28.02.2011, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2011, 16:56
Помогаю со студенческими работами здесь

Найти количество кластеров и секторов диска
Как найти количество кластеров и секторов локального диска? И возможно ли обойтись без WinApi?

Количество секторов, кластеров и серийник диска
необходимо определить кол-во секторов, кластеров, байт в кластере и серийник диска перерыл...

У свежекупленного диска много секторов с задержкой
Здравствуйте! В связи с проблемами с HDD (https://www.cyberforum.ru/hdd/thread1935738.html) купил...

Чтение секторов на диске
Подскажите, как в приложении Win32 прочитать на дискете сектор с заданным цилидром головкой и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru