Форум программистов, компьютерный форум CyberForum.ru

Как форматнуть диск ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как записать график в bmp(24bit)файл? http://www.cyberforum.ru/cpp-beginners/thread479421.html
есть график, я хочу его записать в bmp(24bit)файл, как это реализовать?
C++ Помогите поменять цвет текста на STATIC Приложение API Пишу так, но ничего не меняется. hwnd - HWND моего STATICа HDC hDC = GetDC(hwnd); SetTextColor(hDC, RGB(255,0,0)); ReleaseDC(hwnd, hDC);Подскажите плз. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread479417.html
C++ Как скопировать строку из объекта СSTring так же ListBox в буфер обмена?
Как скопировать строку из объекта СSTring так же ListBox в буфер обмена? думал name. GetBuffer(); но чего-то не то ... помогите.
Господа, нужен макроязык в проге (типа VBA в MSOffice) C++
Помогите пожалуйста. Я программирую на C++Builder5, мне нужен макроязык в моем приложении, чтобы ее можно было в дальнейшем настраивать и по возможности изменять, типа как VBA в MSOffice. Даже не знаю с чего начать. Первый раз такая задача возникла. Подскажите, чем можно воспользоваться, и как? Заранее благодарю.
C++ Как в переменной строкового типа заменить все вхождения одного символа на другой? http://www.cyberforum.ru/cpp-beginners/thread479325.html
Подскажите как в переменной строкового типа заменить все вхождения одного символа на другой. Очень обрадуюсь ссылке или примеру кода подобной процедуры. Заранее спасибо.
C++ MS VC++ 6.0. Как отладить inline-функцию ? MS VC++ 6.0. Как отладить inline-функцию ? Трассирую код с помощью клавиши F11. Но в inline-функцию попасть не могу, можно ли каким-то особым образом скомпилировать проект чтобы можно было ее оттассировать ? подробнее

Показать сообщение отдельно
Ghost
Сообщений: n/a
07.11.2009, 21:38     Как форматнуть диск ?
Еще 1 вирусописатель вылез на свет божий. отстреливать их пора. вопрос задать нормально не может - а лезет в системные функции.

лови. Это для флопика.

[code]
/*
FILE NAME: RandomFloppyAccess.cpp

DESCRIPTION: This file contains the implementation of class RandomFloppyAccess

COPYRIGHT: (C) Copyright Elan, Ltd. 1999

AUTHORS: Alexey Levit, Denis Zaliznyak

*/

#include 'stdafx.h'
#include 'afxtempl.h'

#include 'RandomFloppyAccess.h'

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

using namespace floppy;

bool operator < (const Sector& s1, const Sector& s2) inline
{
return ( (s1.sec + s1.track*CRandomFloppyAccess::track_size + s1.head*CRandomFloppyAccess::track_count) < (s2.sec + s2.track*CRandomFloppyAccess::track_size + s2.head*CRandomFloppyAccess::track_count));
}

bool operator == (const Sector& s1, const Sector& s2) inline
{
return ((s1.track==s2.track)&&(s1.head==s2.head)&&(s1.sec==s2.sec)&&(s1.size==s2.size));
}

CRandomFloppyAccess::CRandomFloppyAccess(int Drive) throw(BadDriveException, InvalidHandleException)
{
if( (Drive!=0) && (Drive!=1) )
{
throw BadDriveException();
}

m_Drive = Drive;

hDevice = CreateFile('\\.\vwin32',
GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
(LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL);

if(INVALID_HANDLE_VALUE==hDevice)
{
throw InvalidHandleException();
}
}

CRandomFloppyAccess::~CRandomFloppyAccess()
{
CloseHandle(hDevice);
}

bool CRandomFloppyAccess::ReadSector(vector<unsigned char>* pBuffer, int Sector, int Head, int Cylinder)
throw(BadSectorException, BadHeadException, BadCylinderException)
{
if( (Sector<1) || (Sector>sector_count) )
{
throw BadSectorException();
}

if( (Head<0) || (Head>head_count) )
{
throw BadHeadException();
}

if( (Cylinder<0)||(Cylinder> (track_count-1)) )
{
throw BadCylinderException();
}

unsigned char buffer[buf_size];

DWORD cb;

reg.reg_EAX = 0x0201; // AL - ўшёыю ёхъЄюЁют (01), AH - ЇєэъЎш* (02 - ўЄхэшх)

reg.reg_EBX = reinterpret_cast<unsigned long>(buffer); // EBX - рфЁхё сєЇхЁр

Head = Head<<8;

reg.reg_EDX = Head|m_Drive; // DH - уюыютър, DL - фшёъ ()

// юсэєы*хь ЎшышэфЁ, ъЁюьх фтєї ёЄрЁ°шї ЁрчЁ*фют
int cil = Cylinder;
cil = cil&0x00000300;
// ёфтшурхь тяЁртю эр 2 ЁрчЁ*фр
cil = cil>>2;

reg.reg_ECX = 0; // ╤═ - эюьхЁ ЎшышэфЁр, CL - эюьхЁ ёхъЄюЁр
reg.reg_ECX = reg.reg_ECX | cil;

// юсэєы*хь ёЄрЁ°шх 2 ЁрчЁ*фр
cil = Cylinder;
cil = cil&0x000000FF;
// ёфтшурхь тыхтю эр тюёхь№ ЁрчЁ*фют
cil = cil<<8;

reg.reg_ECX = reg.reg_ECX | cil;
reg.reg_ECX = reg.reg_ECX | Sector;

int count = 0;

do
{
if(!DeviceIoControl(hDevice, VWIN32_DIOC_DOS_INT13, &reg, sizeof(reg), &reg, sizeof(reg), &cb, 0))
{
return false;
}

reg.reg_EAX = reg.reg_EAX&0x0000FF00;
count++;

}while (reg.reg_EAX && (count < 3) );

if (count>=3)
{
return false;
}
else
{
pBuffer->assign(buffer, &buffer[buf_size]);
return true;
}
}

bool CRandomFloppyAccess::WriteSector(const vector<unsigned char>& Buffer, int Sector, int Head, int Cylinder)
throw(BadSizeExceptio
 
Текущее время: 03:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru