C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[54615] WriteFile 에서 이미지를 쓰지를 못해요~ 헬프미
김재범 [] 1255 읽음    2008-09-19 21:04
책의 11장에 있는 샘플 추출하는 프로그램인데요..
VC++로 되어 있는것을 볼렌드로 고치는데 힘드네요.
디버그모드로 확인해 봤는데요..
pszFileName 에는 지금 파일이랑 \0\0\0\0\0 .. 이 저장되네요..
그래고 아래에 WriteFile에서 쓰지를 못해요.
필요업는건 뺀다고 빼고 수정 햇는데 뭐가 잘못 된건지..첫번째 WriteFile  에서 return; 되어서
그 다음은 실행이 안되네요...

#define DEFAULT_MEDIA_PATH  TEXT("\\\0")
#define DIB_HEADER_MARKER ((WORD)('M'<<8) | 'B')

void __fastcall TForm1::SaveImage(BITMAPINFOHEADER& bmiHeader, BYTE* pDIB)
{
    SaveDialog1->Execute();
    char pszFileName[MAX_PATH] = "";
    AnsiString cFileName = SaveDialog1->FileName;
    strcpy(pszFileName, cFileName.c_str());


    BITMAPFILEHEADER bmfHeader;

    bmfHeader.bfType        = DIB_HEADER_MARKER;
    bmfHeader.bfOffBits        = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
    bmfHeader.bfSize        = sizeof(bmfHeader) + sizeof(BITMAPINFOHEADER) + bmiHeader.biSizeImage;
    bmfHeader.bfReserved1    = 0;
    bmfHeader.bfReserved2    = 0;

    HANDLE fd = CreateFile(pszFileName, GENERIC_WRITE, 0, NULL,
                                CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

    DWORD dwLength;

    if(!WriteFile(fd, (LPSTR)&bmfHeader, sizeof(bmfHeader), &dwLength, NULL));
        return;
    if(!WriteFile(fd, (LPSTR)&bmiHeader, sizeof(BITMAPINFOHEADER), &dwLength, NULL));
        return;
    if(!WriteFile(fd, pDIB, bmiHeader.biSizeImage, &dwLength, NULL));
        return;

    CloseHandle(fd);
}

+ -

관련 글 리스트
54615 WriteFile 에서 이미지를 쓰지를 못해요~ 헬프미 김재범 1255 2008/09/19
54625     Re:WriteFile 에서 ... 테스트 해보지 않고 답변, 따라해 보세요 박영목 1624 2008/09/20
54626         Re:Re:WriteFile 에서 ... 테스트 해보지 않고 답변, 따라해 보세요 김재범 1641 2008/09/20
54627             아주 허무한 결과.. 해결 되었습니다 ; 김재범 1686 2008/09/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.