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

23.06.2009, 11:35
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Код:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <windows.h>
typedef struct
{char JMPCODE[3]; //JMP на код завантажника
char OS[8]; //назва ОС, під якою форматировалсядиск
uint16_t bpersect; //Байт у секторі
unsigned char secperclust; //Секторів у кластері
uint16_t reservsect; //У зарезервованих секторів
unsigned char numFAT;
} boot_t;
int main(int argc, char ** argv){
char * disk_name = "\\\\.\\PhysicalDrive1";
boot_t boot;
HANDLE h_disk=CreateFile(disk_name,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, 0, NULL);
uint32_t read;
if(h_disk != INVALID_HANDLE_VALUE)
printf("the %s successfully opened\n", disk_name);
printf("%d\n",GetLastError());
if(ReadFile(h_disk,buf,10,&r,NULL))
printf("The start of boot block successfully read\n");
printf("%d\n",GetLastError());
CloseHandle(h_disk);
exit(EXIT_SUCCESS);
}
проблема состоит в том, что устройство оно открывает, а вот считывание не проходит и последней ошибкой является ошибка №87 - неправильный параметр, можете подскажите, что я тут неправильно сделал?
|
|
|

23.06.2009, 12:50
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
До самого дошло, что не так... Пипец, ненавижу иногда свою невнимательность.... ведь секторами-то читать надо, а не байтами )))
|
|
|

23.06.2009, 15:25
|
|
Участник форума
Регистрация: 30.05.2009
Сообщений: 139
Провел на форуме: 620261
Репутация:
30
|
|
Что лучше? C++ или C#
И в каком плане лучше?
|
|
|

23.06.2009, 15:30
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Зависит от того, что ты хочешь получить. Что же?
Каждый оптимален в своей области.
Код:
http://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
http://www.imho.ws/archive/index.php?t-86747.html
http://www.cyberforum.ru/programming-theory/thread12269.html
http://www.nuclex.org/pages/csharp-vs-cxx-performance
ps Это я нашел буквально за 2 минуты юзания гугла. Учимся использовать поиск 
Последний раз редактировалось Fata1ex; 23.06.2009 в 15:39..
|
|
|

23.06.2009, 16:43
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
А можно из нескольких потоков работать с одним и тем жем указателем от ф-ции CreateFile ?
|
|
|

23.06.2009, 17:30
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
А можно из нескольких потоков работать с одним и тем жем указателем от ф-ции CreateFile ?
Можно, только необходимо использовать мьютексы, условные переменные, etc. для предотвращения повреждения данных при одновременном обращении нескольких потоков.
|
|
|

23.06.2009, 20:35
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
юзай параметр overlapped в функциях WriteFile и ReadFile. иначе добиться адекватной работы при многопоточности будет очень сложно.
|
|
|

23.06.2009, 22:15
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 39
Провел на форуме: 78936
Репутация:
20
|
|
ПЛЗ! срочно..
подскажите как в c++ удалить указатель(LPVOID void*), размер котрого cbSize
Код:
void FIFOList::DeleteItem(LPVOID pItem){
delete pItem;
}
Код:
void FIFOList::DeleteItem(LPVOID pItem){
char* pTemp;
pTemp = (char*)pItem;
delete[szSize] pTemp;
}
эти варианты у меня не прошли( первый то ясно, а второй доработать вроде как недолго уже..
|
|
|

24.06.2009, 00:23
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
господи руки бы за такое отрывать. вроде делаешь на с++, но зачем же LPVOID то? Для этого делаешь абстрактный класс, если нада хранить элементы разных типов, и делаешь конкретный класс, наследованный от базового.
а по поводу удаления - на сколько помню при выделении памяти в самой куче хранится информация о размере блока памяти, поэтому не пытайся наипать систему. делай делит для указателя и все. есесно это не проканает с двумерными (и более) массивами и получишь реки утекшей памяти.
|
|
|

24.06.2009, 00:40
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 39
Провел на форуме: 78936
Репутация:
20
|
|
Ra$cal
не умничай! я спрашивал как мне прогу по другому прогу реализовать?!! реализуй мне без этого список с элементами переменной длины!! а?! вот по этому мне надо удалять длину n-го кол-ва байт, а вопрос в топ для новичков размещен только из за того что он по синтаксису! не надо учить меня структурам и.т.п. я тож не мало знаю
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|