안녕하세요
디스크를 포맷하게 할려고 합니다.
델파이의 팁중에 괘찮은거 같아서 씨빌더로 해보았는데
에러가 납니다.
이유가 무엇인지 알고싶습니다, 또 어떡하면 정상적으로
포맷할지도 알고싶습니다.
가르쳐 주세요.
아래는 제가 한것입니다.
그럼 안녕히 계세요
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define SHFMT_ID_DEFAULT 0xFFFF // Formating options
#define SHFMT_OPT_QUICKFORMAT 0x0000
/*#define 0x0001 SHFMT_OPT_FULL
#define 0x0002 SHFMT_OPT_SYSONLY // Error codes
#define 0xFFFFFFFF SHFMT_ERROR
#define 0xFFFFFFFE SHFMT_CANCEL
#define 0xFFFFFFFD SHFMT_NOFORMAT
*/
TForm1 *Form1;
extern "C" __declspec(dllimport) long SHFormatDrive(HWND,
UINT,
UINT,
UINT);
__declspec(dllimport) long format(HWND,UINT,UINT,UINT);
typedef long (*Func)(HWND,UINT,UINT,UINT);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Func myfunc;
HINSTANCE hinst=LoadLibrary("shell32.dll");
myfunc=(Func)GetProcAddress(hinst,"_SHFormatDrive");
long ret;
ret=myfunc(Application->Handle,0,SHFMT_ID_DEFAULT,SHFMT_OPT_QUICKFORMAT);
if (ret < 0) ShowMessage("지정한 드라이브를 포맷하지 못했습니다.");
FreeLibrary(hinst);
}
//---------------------------------------------------------------------------
|