⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writedata.cpp

📁 此程序是利用VC实现了USB的驱动程序。
💻 CPP
字号:
// WriteData.cpp: implementation of the WriteData class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "FileMaker.h"
#include "WriteData.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CWriteData::CWriteData()
{

}

CWriteData::~CWriteData()
{	if( DataBuffer != NULL )
		free(DataBuffer);
	if( !BufferFile )
		BufferFile.Close();
}

BOOL CWriteData::BuildBufferFile(LPTSTR szFilePath)
{
	if(!BufferFile) 
	{
		BufferFile.Close ();
	}

	CFileException e;
	if( !BufferFile.Open (szFilePath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::typeBinary, &e))
	{
		MessageBox(NULL,"无法打开记录文件","严重错误",MB_ICONERROR);
		return FALSE;
	}

	if ( DataBuffer == NULL )
	{	DataBuffer = (char*)malloc(1024*100);	//200K 缓冲
		if( DataBuffer == NULL )
		{
			::MessageBox(NULL,"系统内存不足","严重错误",MB_OK|MB_ICONHAND);
			return FALSE;
		}
		DataBufferWritePointer = DataBuffer;
	}
	return TRUE;
}

BOOL CWriteData::CloseBufferFile()
{	
	if(!BufferFile)
	{
		BufferFile.Close();
	}
	return TRUE;
}

BOOL CWriteData::AddBufferData(char * buf,int len)
{
	if( BufferFile == NULL )
		return FALSE;

	if ( DataBufferWritePointer + len - DataBuffer 
			> 100000 )	//200K 缓冲
	{
		BufferFile.SeekToEnd();
		BufferFile.Write (DataBuffer, DataBufferWritePointer - DataBuffer);
		DataBufferWritePointer = DataBuffer;
		/*if(logfile.GetLength()>0x800000)	//当记录文件大于8M时,更换记录文件。
		{
			if(ChangLogFile()==FALSE)
				return FALSE;
		}*/
	}

	memcpy(DataBufferWritePointer, buf, len);
	DataBufferWritePointer += len;
	return TRUE;
}


⌨️ 快捷键说明

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