vuxcodeimp.h

来自「这是一个能够自动生成文档的程序」· C头文件 代码 · 共 91 行

H
91
字号
#ifndef __VUXCODEIMP_H__
#define __VUXCODEIMP_H__

#include "stdafx.h"
#include "Xml.h"
#define new DEBUG_NEW


BOOL CVuxClass::Open(LPCTSTR iFilePath)
{
VuxIncRunTimes();
if(VuxIsDebugging() || VuxGetOperateType()==OT_RTEST || 
VuxIsRepeatRun())
{
AUTO_BREAKPOINT(); // "Step(Trace) Into" 2-3 Times
return CXml::Open(iFilePath);
}

VUXO_THIS_IN()
VUXO_PARAM_IN(1, iFilePath) 
BOOL _Vux_Fun_Return_ = _Open(iFilePath);
VUXO_THIS_OUT() 
VUXO_PARAM_OUT(1, iFilePath) 
VUXO_RETURN(_Vux_Fun_Return_)
VuxResetRunTimes();
return _Vux_Fun_Return_;
}

BOOL CVuxClass::_Open(LPCTSTR iFilePath)
{
{
VUXRB(1);
    mFilePath = iFilePath;

    HANDLE hFile = ::CreateFile(iFilePath, GENERIC_READ | GENERIC_WRITE, 0, 
        NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    if((
VUXRS(1)
 &&hFile == INVALID_HANDLE_VALUE))
{VUXRBR(2);
VUXRB(5);
        return FALSE;}
VUXRBR_ELSE(3);
    
VUXRB(2);
    int fileSize = ::GetFileSize(hFile, NULL);
    HANDLE hMapFile = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, fileSize+1, NULL); 
    if((
VUXRS(2)
 &&hMapFile == NULL))
{VUXRBR(4);
    {
VUXRB(6);
        ::CloseHandle(hFile);
        return FALSE;
    }}
VUXRBR_ELSE(5);

VUXRB(3);
    LPVOID pViewOfFile = ::MapViewOfFile(hMapFile, FILE_MAP_WRITE, 0, 0, 0);
    if((
VUXRS(3)
 &&pViewOfFile == NULL))
{VUXRBR(6);
    {
VUXRB(7);
        ::CloseHandle(hFile);
        ::CloseHandle(hMapFile);
        return FALSE;
    }}
VUXRBR_ELSE(7);

VUXRB(4);
    char* pText = (char*)pViewOfFile;
    pText[fileSize] = '\0';
    TEST_TRACEE(pText);

    ParseXmlFile(pText);

    //释放资源
    ::UnmapViewOfFile(pViewOfFile);
    ::CloseHandle(hMapFile);
    ::CloseHandle(hFile);

    return TRUE;
}
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?