Verts& readResult(cstring rpath){
  FILE* fp;
  //auto rpath = "C:\\Users\\master8\\Downloads\\solid-3.5.7\\result";
  let err=fopen_s(&fp, rpath, "rb");
  Verts& v = *(new std::vector<float>);
  if (!err){
    int* len=new int;
    fread_s(len, sizeof len, 4, 1, fp);
    int l = *len;
    float* cenext=new float[6*l];
    auto fl = sizeof(float);
    for (size_t i = 0; i < l; i+=6)
    {
      fread_s(&cenext[i], fl*6, fl*6, 1, fp); //l countロードすれば一気に
      v.push_back(cenext[i]);
      v.push_back(cenext[i+1]);
      v.push_back(cenext[i+2]);
      v.push_back(cenext[i+3]);
      v.push_back(cenext[i+4]);
      v.push_back(cenext[i+5]);
    }
    fclose(fp);
    delete len;
    delete cenext;
  }
  return v;
}
CSFAPI int CSFile_load(CSFile** outcsf, const char* filename, CSFileMemoryPTR mem)
{
  FILE* file;
  if (fopen_s(&file,filename,"rb")){
    *outcsf = 0;
    return CADSCENEFILE_ERROR_NOFILE;
  }

  CSFile header;
  size_t sizeshould = 0;
  if (!fread_s(&header,sizeof(header),sizeof(header),1,file) ||
      !(sizeshould=CSFile_getRawSize(&header)))
  {
    fclose(file);
    *outcsf = 0;
    return CADSCENEFILE_ERROR_VERSION;
  }
  
  // load the full file to memory
  xfseek(file, 0, SEEK_END);
  size_t size = (size_t)xftell(file);
  xfseek(file, 0, SEEK_SET);

  if (sizeshould != size){
    fclose(file);
    *outcsf = 0;
    return CADSCENEFILE_ERROR_VERSION;
  }
  
  char* data  = (char*)mem->alloc(size);
  fread_s(data,size,size,1,file);
  fclose(file);

  return CSFile_loadRaw(outcsf,size,data);
}
Beispiel #3
0
bool tdnMesh::LoadTDNM(FILE* file, const char* fileName)
{
	unsigned int vertexSize( sizeof( MESHVERTEX2 ) );

	// 頂点読み込み
	numVertexes = 0;
	fread_s( &numVertexes, sizeof( numVertexes ), sizeof( numVertexes ), 1, file );
	delete[] vertexArray;
	vertexArray = new MESHVERTEX2[numVertexes];
	fread_s( vertexArray, vertexSize * numVertexes, vertexSize * numVertexes, 1, file );

	if ( !CreateVertex( numVertexes, sizeof( MESHVERTEX2 ), vertexArray ) )
		return false;

	// インデックス設定
	DWORD* indexArray = new DWORD[numVertexes];
	for ( unsigned int i = 0; i < numVertexes; i++ )
	{
		indexArray[i] = i;
	}
	CreateIndexes( numVertexes, indexArray );
	delete[]indexArray;

	// 面数
	numFaces = numVertexes / 3;

	// 頂点情報
	D3DVERTEXELEMENT9 declAry[] = {
		{ 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, // 位置
		{ 0, sizeof( float ) * 3, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 }, // 法線
		{ 0, sizeof( float ) * 6, D3DDECLTYPE_UBYTE4N, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 }, // 頂点色
		{ 0, sizeof( float ) * 6 + sizeof( COLOR ), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, // UV座標
		D3DDECL_END()
	};
	CreateDeclaration( sizeof( MESHVERTEX2 ), declAry );

	// テクスチャ読み込み
	std::string workFileName = fileName;
	unsigned int filePathLength = workFileName.find_last_of('/');
	if (filePathLength == std::string::npos)
		filePathLength = workFileName.find_last_of('\\');
	workFileName = workFileName.substr(0, filePathLength + 1);
	size_t textureNameLen( 0 );
	fread_s( &textureNameLen, sizeof( size_t ), sizeof( size_t ), 1, file );
	delete[] textureName;
	textureName = new char[textureNameLen + 1];
	fread_s( textureName, textureNameLen + 1, textureNameLen, 1, file );
	textureName[textureNameLen] = '\0';
	workFileName += textureName;
	texture = tdnTexture::Load(workFileName.c_str());

	return true;
}
	HRESULT STDMETHODCALLTYPE  D3DIncludeCallback::Open(THIS_ D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes)
	{
		String strPath = ".\\shader\\";
		strPath.append( pFileName );
		FILE* pFile = NULL;
		if( 0 != fopen_s( &pFile , strPath.c_str() , "rb" ) )
		{
			return S_FALSE;
		}
		ZP_ASSERT( pFile != NULL );

		fseek( pFile , 0 , SEEK_END );
		int iFileLen = ftell( pFile );


		void* pBuf = new char[iFileLen+1];
		ZP_ASSERT( NULL != pBuf );
		memset( pBuf , 0 , iFileLen+1);

		fseek( pFile , 0 , SEEK_SET );
		*pBytes = fread_s( pBuf , iFileLen+1 , 1 , iFileLen , pFile );
		*ppData = pBuf;

		fclose( pFile );
		pFile = NULL;
		return S_OK;
	}
Beispiel #5
0
    /// @brief 构造函数
    /// @param[in] pFilePath 文件路径
    explicit CMNISTLabelFile(IN const char* pFilePath)
    {
        m_pFile = 0;

        if (pFilePath == 0)
            return;

        fopen_s(&m_pFile, pFilePath, "rb");
        if (m_pFile == 0)
            return;

        unsigned char fileHeaderBuffer[LABEL_FILE_HEADER_SIZE] = { 0 };
        size_t count = fread_s(fileHeaderBuffer, LABEL_FILE_HEADER_SIZE, LABEL_FILE_HEADER_SIZE, 1, m_pFile);
        if (count != 1)
            return;

        // 将大端模式转换为小端模式
        for (unsigned int i = 0; i < LABEL_FILE_HEADER_SIZE; i += 4)
        {
            unsigned char temp = fileHeaderBuffer[i];
            fileHeaderBuffer[i] = fileHeaderBuffer[i + 3];
            fileHeaderBuffer[i + 3] = temp;

            temp = fileHeaderBuffer[i + 1];;
            fileHeaderBuffer[i + 1] = fileHeaderBuffer[i + 2];
            fileHeaderBuffer[i + 2] = temp;
        }

        m_labelNum = *(unsigned int*)(fileHeaderBuffer + 4);
    }
PLAY * Play_Perst_FetchByID(int ID)
{
	FILE *fp;
	errno_t err;
	PLAY *play_temp;
	if ((err = fopen_s(&fp, "Play.dat", "rb") != 0))
	{
		return nullptr;
	}
	else
	{
		fseek(fp, 0, SEEK_END);
		if (ftell(fp) == 0)
		{
			fclose(fp);
			return nullptr;
		}
		fseek(fp, 0, SEEK_SET);
		while (!feof(fp))
		{
			play_temp = static_cast<PLAY *>(malloc(sizeof(PLAY)));
			fread_s(play_temp, sizeof(PLAY), sizeof(PLAY), 1, fp);
			if (play_temp->data.id == ID)
			{
				fclose(fp);
				return play_temp;
			}
		}
	}
	fclose(fp);
	return nullptr;
}
int SaleData_Perst_FentchByUser(char UserAccount[])
{
	FILE *fp;
	errno_t err;
	SALE *SaleData_temp;
	auto Count = 0;
	if (err = fopen_s(&fp, "Sale.dat", "rb") != 0)
	{
		return 0;
	}
	else
	{
		fseek(fp, 0, SEEK_END);
		if (ftell(fp) == 0)
		{
			fclose(fp);
			return 0;
		}
		fseek(fp, 0, SEEK_SET);
		while (!feof(fp))
		{
			SaleData_temp = static_cast<SALE *>(malloc(sizeof(SALE)));
			fread_s(SaleData_temp, sizeof(SALE), sizeof(SALE), 1, fp);
			if (strcmp(SaleData_temp->data.UserAcc,UserAccount) == 0)
			{
				fclose(fp);
				return SaleData_temp->data.id;
			}
		}
	}
	fclose(fp);
	return Count;
}
Beispiel #8
0
/*
char GracePeriodStore[GRACE_PERIOD_STORE_SIZE] = "RoundBrownFoxJumpedTheFence";
int LoadCurrectGracePeriodDataDLL(GraceStatusResourceStore *StaticDLLResourceDataInFile, long *StaticDataStoredAt)
{
	//make sure we do not return uninitialized values
	memset(StaticDLLResourceDataInFile, 0, sizeof(GraceStatusResourceStore));

	//open self DLL
	FILE *f;
	errno_t er = fopen_s(&f, "LicenseDLL.dll", "rb");
	if (er != NO_ERROR)
		return er;

	if (f == NULL)
		return ERROR_FILE_INVALID;

	GraceStatusResourceStore *StaticDLLResourceDataInMemory = (GraceStatusResourceStore *)GracePeriodStore;

	//search for our resource store header
#define FileReadBlockSize (10 * 1024 * 1024)		//our dll file should be about 150k
	int FileSize = GetFileSize("LicenseDLL.dll");
	if (FileSize <= 0)
		FileSize = FileReadBlockSize;
	unsigned char *FileContentBuffered = (unsigned char *)malloc(FileSize);
	size_t ReadCount = fread_s(FileContentBuffered, FileSize, 1, FileSize, f);
	*StaticDataStoredAt = 0;
	for (size_t i = 0; i < ReadCount; i++)
		if (memcmp(&FileContentBuffered[i], StaticDLLResourceDataInMemory->Header, sizeof(StaticDLLResourceDataInMemory->Header)) == 0)
		{
			if (StaticDLLResourceDataInFile != NULL)
				memcpy(StaticDLLResourceDataInFile, &FileContentBuffered[i], sizeof(GraceStatusResourceStore));
			*StaticDataStoredAt = i;
			break;
		}
	free(FileContentBuffered);
	fclose(f);

	//if data is encoded, decode it
	int erEncrypt = CODECGraceData(StaticDLLResourceDataInFile, 0);

	//pass through errors
	return erEncrypt;
}
*/
int LoadCurrectGracePeriodDataFile(const char *FileName,GraceStatusResourceStore *StaticDLLResourceDataInFile)
{
	//make sure we do not return uninitialized values
	memset(StaticDLLResourceDataInFile, 0, sizeof(GraceStatusResourceStore));
	FILE *f;
	errno_t er = fopen_s(&f, FileName, "rb");
	if (er != NO_ERROR)
		return er;

	if (f == NULL)
		return ERROR_FILE_INVALID;

	size_t ReadCount = fread_s(StaticDLLResourceDataInFile, sizeof(GraceStatusResourceStore), 1, sizeof(GraceStatusResourceStore), f);
	fclose(f);
	if (ReadCount != sizeof(GraceStatusResourceStore))
		return ERROR_COULD_NOT_LOAD_GRACE_DATA;

	//if data is encoded, decode it
	int erEncrypt = CODECGraceData(StaticDLLResourceDataInFile, 0);
	if (erEncrypt == 0)
	{
		if (StaticDLLResourceDataInFile->IsFileInitialized != 1 || StaticDLLResourceDataInFile->StoreVersion != GRACE_STORE_VERSION)
			return ERROR_STORE_VERSION_MISMATCH;
	}

	//pass through errors
	return erEncrypt;
}
int Ticket_Perst_FetchBySS(int ScheduleID, int SeatID)
{
	FILE *fp;
	errno_t err;
	TICKET *ticket_temp;
	if ((err = fopen_s(&fp, "Ticket.dat", "rb") != 0))
	{
		return 0;
	}
	else
	{
		fseek(fp, 0, SEEK_END);
		if (ftell(fp) == 0)
		{
			fclose(fp);
			return 0;
		}
		fseek(fp, 0, SEEK_SET);
		while (!feof(fp))
		{
			ticket_temp = static_cast<TICKET *>(malloc(sizeof(TICKET)));
			fread_s(ticket_temp, sizeof(TICKET), sizeof(TICKET), 1, fp);
			if (ticket_temp->data.schedule_id == ScheduleID && ticket_temp->data.seat_id == SeatID)
			{
			//	printf_s("%d  %d\n", ticket_temp->data.id, ticket_temp->data.seat_id);
				fclose(fp);
				return ticket_temp->data.id;
			}
		}
	}
	fclose(fp);
	return 0;
}
Beispiel #10
0
fragshader::fragshader(char * fragfile){
	FILE * f;
	fopen_s(&f, fragfile, "r");

	fseek(f, 0, SEEK_END);
	GLint size = ftell(f);
	fseek(f, 0, SEEK_SET);

	char * fbuf = new char[size + 1];
	memset(fbuf, 0, size + 1);

	fread_s(fbuf, size + 1, size, 1, f);

	_fragshader = glCreateShader(GL_FRAGMENT_SHADER);
	glShaderSource(_fragshader, 1, &fbuf, &size);
	glCompileShader(_fragshader);
	GLint cStatus = 0;
	glGetShaderiv(_fragshader, GL_COMPILE_STATUS, &cStatus);
	if (GL_FALSE == cStatus) {	
		GLint logLen;
		glGetShaderiv(_fragshader, GL_INFO_LOG_LENGTH, &logLen);
		char *log = (char *)malloc(logLen);
		glGetShaderInfoLog(_fragshader, GL_INFO_LOG_LENGTH, &logLen, log);
		std::cerr << "fragshader log : " << std::endl;
		std::cerr << log << std::endl;
	}
	fclose(f);
}
Beispiel #11
0
HRESULT WriteReadShader(ID3DBlob **ppSBlob, const wchar_t *const sTargetFileName)
{
	HRESULT hr;

	FILE *pFile;

#ifdef AUTSHADERS_SAVE_TO_FILE
	_wfopen_s(&pFile, sTargetFileName, L"wb");
	fwrite((*ppSBlob)->GetBufferPointer(), (*ppSBlob)->GetBufferSize(), 1, pFile);
	fclose(pFile);
#endif
	
	int nSize = 0;
	_wfopen_s(&pFile, sTargetFileName, L"rb");

	fseek(pFile, 0, SEEK_END);
	nSize = ftell(pFile);
	fseek(pFile, 0, SEEK_SET);
	
	*ppSBlob = NULL;
	V_RETURN(D3DCreateBlob(nSize, ppSBlob));

	fread_s((*ppSBlob)->GetBufferPointer(), nSize, nSize, 1, pFile);
	
	fclose(pFile);

	return S_OK;
}
// File format:
// name<newline>
// name<newline>
// etc...
bool InitDvarTable(const char *File)
{
	FILE *dvarList = nullptr;

	// Open file
	fopen_s(&dvarList, File, "r");

	// Check for file opening errors, if there were any, exit
	if (!dvarList)
		return false;

	// Get the input file size
	fseek(dvarList, 0, SEEK_END);
	long fileSize = ftell(dvarList);
	fseek(dvarList, 0, SEEK_SET);

	// Allocate memory
	DvarFileMemory = (char *)VirtualAlloc(nullptr, fileSize, MEM_COMMIT, PAGE_READWRITE);

	if (!DvarFileMemory)
		return false;

	// Read the file
	fread_s(DvarFileMemory, fileSize, 1, fileSize, dvarList);

	// Close it
	fclose(dvarList);

	return true;
}
Beispiel #13
0
int fileSendTcp(int socket, char *filename) {
	FILE *stream;																//fopen check
	for(int i = 0; i < strlen(filename); i++)
	{
		if(filename[i] == '\n')
			filename[i] = '\0';
	}
	if(fopen_s(&stream, adaptFileName(filename), "rb" )) {
		perror("fopen error");
		return -1;
	}
	else {
		char sendline[1024] = "/sendfile ";										//command to server for start receiving
		strcat_s(sendline, 1024, filename);
		send(socket, sendline, 1024, 0);
	}
	char buff[1024];
	int sizeCheck = 0, fileSize;
	fseek(stream,0,SEEK_END);
    fileSize = ftell(stream);													//filesize calc
	fseek(stream,0,SEEK_SET);
	printf("Filesize: %d\n", fileSize);
	char fsz[1024];
	_itoa_s(fileSize, fsz, 1024, 10);											//send file size to server
	send(socket, fsz, 1024, 0);
	recv(socket, fsz, 1024, 0);
	int servFileSize = atoi(fsz);
	printf("Server's file size: %d\n", servFileSize);
	if(servFileSize == fileSize) {
		puts("File already exist on server");
		fclose(stream);
		return 0;
	}
	if(servFileSize != 0) {
		sizeCheck = servFileSize;
		fseek(stream, servFileSize, SEEK_SET);
	}

	while(sizeCheck < fileSize - 1) {
		//_getch();
		/*if(_kbhit()) {
			_getch();
			_itoa_s(sizeCheck, fsz, 1024, 10);		
			send(socket, fsz, 1024, MSG_OOB);									//send OOB
			printf("OOB sent\n");
		}*/
		printf(".");
		int read = fread_s(buff, 1024, sizeof(bool), 1024, stream);				//sending file
		int sent = send(socket, buff, read, 0);
		if(sent == SOCKET_ERROR) {
			puts("Connection lost");
			return 0;
		}
		sizeCheck += sent;							
	}
	fclose(stream);
	printf("done\n");
	return 0;
}
Beispiel #14
0
t_kernel*	load_kernel(char *src)
{
	FILE*		file;
	char*		line;
	char**		tab;
	int			width;
	int			height;
	t_kernel*	k;
	int			i;

	fopen_s(&file, src, "r");

	if (!file)
	{
		printf("can't open file\n");
		return (0);
	}
	height = 0;
	width = 0;
	k = malloc(sizeof(t_kernel));
	k->ddata = malloc(sizeof(double) * MAX_KERNEL_SIZE);

	while (!feof(file)) {
		i = -1;
		char c;
		line = malloc(255);
		while (fread_s(&c, 1, sizeof(char), 1, file) && c != '\n')
			if (c != '\r')
				line[++i] = c;
		line[++i] = '\0';
		if (!strlen(line))
			break;
		tab = tmp_strsplit(line, ' ');
		i = -1;
		while (tab[++i])
		{
			k->ddata[height * width + i] = atof(tab[i]);
		}
		if (tab[0])
		{
			free(tab[0]);
			tab[0] = 0;
		}
		if (tab)
		{
		//	free(tab); // TODO
			tab = 0;
		}
		free(line);
		if (i)
			++height;
		if (!width)
			width = i;
	}
	k->width = width;
	k->height = height;
	fclose(file);
	return (k);
}
Beispiel #15
0
std::wstring SHA1_File(const std::wstring& a_filePath)
{
	HCRYPTPROV hProv;
	std::wstring l_result;

	if(::CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET))
	{
		HCRYPTHASH hHash;

		if(::CryptCreateHash(hProv, CALG_SHA1, NULL, 0, &hHash))
		{
			FILE *fInput = NULL;

			if(_wfopen_s(&fInput, a_filePath.c_str(), L"rb") == 0)
			{
				char pbBuf[4096] = {0};

				while(!feof(fInput))
				{
					DWORD dwRead = static_cast<DWORD>(
						fread_s(pbBuf, 4096, sizeof(char), 4096, fInput));

					::CryptHashData(hHash, (BYTE*)pbBuf, dwRead, 0);
				}

				fclose(fInput);

				DWORD dwHashLen = 0;
				DWORD dwHashLenSize = sizeof(DWORD);

				if(::CryptGetHashParam(hHash, HP_HASHSIZE, (BYTE*)&dwHashLen, &dwHashLenSize, 0))
				{
					BYTE *pbHashBuf = new BYTE[dwHashLen];
					memset(pbHashBuf, 0, dwHashLen);

					if(::CryptGetHashParam(hHash, HP_HASHVAL, pbHashBuf, &dwHashLen, 0))
					{
						wchar_t wbHex[3] = {0};

						for(DWORD i = 0; i < dwHashLen; i++)
						{
							swprintf_s(wbHex, 3, L"%02x", pbHashBuf[i]);
							l_result += wbHex;
						}
					}

					delete[] pbHashBuf;
				}
			}

			::CryptDestroyHash(hHash);
		}

		::CryptReleaseContext(hProv, 0);
	}

	return l_result;
}
size_t
HostFileHandle::read(uint8_t *data,
                     size_t size,
                     size_t count)
{
   decaf_check(mHandle);
   decaf_check((mMode & File::Read) || (mMode & File::Update));
   return fread_s(data, size * count, size, count, mHandle);
}
Beispiel #17
0
ReturnCode FileUtil::LowLevelFileRead(FILE* fFile, char* pcBuffer, size_t uiBufferSize, size_t uiBytesToRead, size_t &uiBytesRead)
{
	//Read file content into buffer
	if(uiBytesToRead > (uiBytesRead = fread_s(pcBuffer, uiBufferSize, sizeof(char), uiBytesToRead, fFile)))
		return RC_ERR_GENERAL;

	//Success!
	return RC_OK;
}
Beispiel #18
0
int Sys_FileRead(int handle, void* dest, int count) {
	if (handle < 0 || handle > MAX_HANDLES || dest == 0) {
		return 0;
	}

	// This cast assumes not more than 32GB read at once
	int bytesRead = (int)fread_s(dest, count, 1, count, FileHandles[handle]);

	return bytesRead;
}
Beispiel #19
0
//SHA-1 hash function
bool __fastcall SHA1_Hash(
	FILE *Input)
{
//Parameters check
	if (HashFamilyID != HASH_ID_SHA1 || Input == nullptr)
	{
		fwprintf_s(stderr, L"Parameters error.\n");
		return false;
	}

//Initialization
	std::shared_ptr<char> Buffer(new char[FILE_BUFFER_SIZE]()), StringBuffer(new char[FILE_BUFFER_SIZE]());
	auto HashInstance = std::make_shared<SHA1_State>();
	memset(Buffer.get(), 0, FILE_BUFFER_SIZE);
	memset(StringBuffer.get(), 0, FILE_BUFFER_SIZE);
	memset(HashInstance.get(), 0, sizeof(SHA1_State));
	size_t ReadLength = 0;

//SHA-1 initialization
	SHA1_Init(HashInstance.get());

//Hash process
	while (!feof(Input))
	{
		memset(Buffer.get(), 0, FILE_BUFFER_SIZE);
		ReadLength = fread_s(Buffer.get(), FILE_BUFFER_SIZE, sizeof(char), FILE_BUFFER_SIZE, Input);
		if (ReadLength == 0 && errno == EINVAL)
		{
			fwprintf_s(stderr, L"Hash process error.\n");
			return false;
		}
		else {
			SHA1_Process(HashInstance.get(), (uint8_t *)Buffer.get(), (unsigned long)ReadLength);
		}
	}

//Binary to hex
	memset(Buffer.get(), 0, FILE_BUFFER_SIZE);
	SHA1_Done(HashInstance.get(), (uint8_t *)Buffer.get());
	if (sodium_bin2hex(StringBuffer.get(), FILE_BUFFER_SIZE, (const unsigned char *)Buffer.get(), SHA1_SIZE_DIGEST) == nullptr)
	{
		fwprintf_s(stderr, L"Convert binary to hex error.\n");
		return false;
	}
	else {
	//Print to screen.
		std::string HashResult = StringBuffer.get();
		CaseConvert(true, HashResult);
		for (size_t Index = 0;Index < HashResult.length();++Index)
			fwprintf_s(stderr, L"%c", HashResult.c_str()[Index]);
		fwprintf_s(stderr, L"\n");
	}

	return true;
}
	//! Reads an amount of bytes from the file.
	virtual int read(void* buffer, unsigned sizeToRead)
	{
		if (!File)
			return 0;

#ifdef _WIN32 // dest buf, dest size, element size, count, file
		return (int)fread_s(buffer, sizeToRead+1, 1, sizeToRead, File);
#else
		return (int)fread(buffer, 1, sizeToRead, File);
#endif
	}
Beispiel #21
0
void NtFile::ReadBuffer( ntSize length /*= READ_BUF_SIZE*/ )
{
	if (length >= READ_BUF_SIZE)
	{
		return;
	}

	Crt::MemSet(m_readBuffer, sizeof(m_readBuffer));

	fread_s(m_readBuffer, sizeof(m_readBuffer), sizeof(ntWchar) * length, 1, m_fp);
}
Beispiel #22
0
int _tmain(int argc, _TCHAR* argv[])
{
	FILE* pFile=NULL;
	PBYTE PEImage=NULL;
	PBYTE pCodeData=NULL;
	DWORD baseAddress=0;
	unsigned int CodeDatSize=0;
	BYTE MajorLinkerVersion=0;
	PCHAR PEFileNam="..\\test.exe";
	CHAR  LogFileNam[MAX_PATH];

#pragma region 加载PE文件 
	fopen_s(&pFile,PEFileNam,"rb");
	if(!pFile)
	{
		printf("Error:Can't open %s",PEFileNam);
		return 0;
	}
	const unsigned int fileLen=_filelength(_fileno(pFile));
	PEImage=new BYTE[fileLen];
	fread_s(PEImage,fileLen,fileLen,1,pFile);
	fclose(pFile);
#pragma endregion 
	
#pragma region 解析PE文件
	CPEInfo PEInfo;
	if(!PEInfo.Parse(PEImage))
		return 0;
	pCodeData=PEInfo.GetCodeData();
	CodeDatSize=PEInfo.GetCodeDataSize();
	MajorLinkerVersion=PEInfo.GetMajorLinkerVersion();
	baseAddress=PEInfo.GetBaseAddress();
#pragma endregion 
	//初始化LibScanner,其中加载对于的flb文件
	if(!InitLibScanner(MajorLinkerVersion))
		return 0;
	
#pragma region 调用反汇编引擎
	strcpy_s(LogFileNam,MAX_PATH,PEFileNam);
	ModifySuffix(LogFileNam,".log");
	fopen_s(&pLogFile,LogFileNam,"wb");
	if(!pFile)
	{
		printf("Error:Can't open %s\n",PEFileNam);
		return 0;
	}
	PVDasm(pCodeData,CodeDatSize,baseAddress,pLogFile);
	fclose(pLogFile);
#pragma endregion 
	
	printf("PEFile %s Analysis Succeed!\n",PEFileNam);
	delete[] PEImage;
	return 0;
}
void load_buffer(const char * filename, void * buffer, size_t size, size_t count) {
    FILE * file;

    if (fopen_s(&file, filename, "r") == 0) {
        fread_s(buffer, size * count, size, count, file);
    }
    else {
        std::cout << "Problem loading buffer\n";
    }

    fclose(file);
}
Beispiel #24
0
uint32_t MidiParser::_parseHeader(FILE* fp)
{
    // Get ticksPerQuarterNote from Midi Header
    uint16_t ticksPerQuarterNote;
    fseek(fp, 12, SEEK_CUR);
    fread_s(&ticksPerQuarterNote, 2, 2, 1, fp);
    ticksPerQuarterNote = _byteswap_ushort(ticksPerQuarterNote);

    // Get length of header track
    uint32_t trackLen;
    fseek(fp, 4, SEEK_CUR);
    fread_s(&trackLen, 4, 4, 1, fp);
    trackLen = _byteswap_ulong(trackLen);

    // Parse header track to get tempo
    uint32_t microsPerQuarterNote;
    long endPos = ftell(fp) + trackLen;
    while (ftell(fp) < endPos)
    {
        // Skip "00 FF"
        fseek(fp, 2, SEEK_CUR);

        // Get header command byte
        uint8_t cmd;
        fread_s(&cmd, 1, 1, 1, fp);
        uint32_t len = _readVariableLen(fp);

        if (cmd == 0x51)
        {
            // Tempo
            uint8_t tmp[4] = { 0, 0, 0, 0 };
            fread_s(&tmp[1], 3, 3, 1, fp);
            microsPerQuarterNote = _byteswap_ulong(*(uint32_t *)tmp);
        }
        else // Skip any other commands
            fseek(fp, len, SEEK_CUR);
    }

    return microsPerQuarterNote / ticksPerQuarterNote;
}
Beispiel #25
0
    /// @brief 获取标签数据
    bool GetLabel(IN unsigned int startIndex, IN unsigned int labelNum, OUT unsigned char* pBuffer) const
    {
        if (0 == m_pFile || 0 == m_labelNum)
            return false;

        unsigned int offset = LABEL_FILE_HEADER_SIZE + startIndex;
        fseek(m_pFile, offset, SEEK_SET);
        size_t count = fread_s(pBuffer, labelNum, 1, labelNum, m_pFile);
        if (count != labelNum)
            return false;

        return true;
    }
Beispiel #26
0
int Sys_FileRead(int handle, void* dest, int count)
{
	if (handle < 0 || handle >= MAX_HANDLES) return -1;

	FILE* file = FileHandles[handle];

	if (file)
	{
		return (int) fread_s(dest, count, 1, count, file);
	}
	
	return -1;
}
Beispiel #27
0
void HttpTrans::recvData(const int& code, FILE* fp, const int& id, const int& reDirectCount)
{
	//std::unique_lock<std::mutex> lock(lock_);
	std::wstring rsp;
	if ( fp )
	{
		fseek(fp, 0L, SEEK_END);
		long length = ftell(fp);
		fseek(fp, 0, SEEK_SET);
		if ( length > 0 )
		{
			char* szBuf = new char[length+1];
			memset(szBuf, 0, length + 1);
			if (fread_s(szBuf, length + 1, 1, length, fp) > 0){
				rsp = cyjh::UTF8ToUnicode(szBuf);
				delete[]szBuf;
			}
		}
	}
	std::shared_ptr<resp_context_> parm(new resp_context_);
	parm->id_ = id;
	parm->errcode_ = code;
	parm->head_ = " ";
	parm->body_ = " ";

	int i = 0;
	int pos = 0;
	while (i < reDirectCount)
	{
		pos = rsp.find(L"\r\n\r\n");
		if ( pos > 0 )
		{
			rsp.erase(0, pos + 4);
		}
		++i;
	}

	pos = rsp.find(L"\r\n\r\n");
	if ( pos > 0 )
	{
		std::wstring whead = rsp.substr(0, pos);
		int size = rsp.size() - pos - 4;
		if ( size > 0 )
		{
			std::wstring wbody = rsp.substr(pos + 4, size);
			parm->body_ = cyjh::UnicodeToUTF8(wbody);
		}
		parm->head_ = cyjh::UnicodeToUTF8(whead);
	}
	CefPostTask(TID_UI, base::Bind(&ackData, parm));
}
//--------------------------------------------------------------------------------------------
//	チャンクがOggかどうかを調べる
//--------------------------------------------------------------------------------------------
bool ovIsOgg(const std::string& filename)
{
	FILE* fp = NULL;
	char c[3];

	fopen_s(&fp, filename.c_str(), "rb");
	if(fp == NULL) return false;
	fread_s(c, sizeof(c), 3, 1, fp);
	fclose(fp);

	return  (c[0] == 'O') &&
			(c[1] == 'g') &&
			(c[2] == 'g');
}
Beispiel #29
0
    /// @brief 获取图像数据
    bool GetImage(IN unsigned int startIndex, IN unsigned int imageNum, OUT unsigned char* pBuffer) const
    {
        if (0 == m_pFile || 0 == m_imageNum || 0 == m_imageRow || 0 == m_imageCol)
            return false;

        unsigned int imageSize = m_imageRow * m_imageCol;
        unsigned int offset = IMAGE_FILE_HEADER_SIZE + startIndex * imageSize;
        fseek(m_pFile, offset, SEEK_SET);
        size_t count = fread_s(pBuffer, imageSize * imageNum, imageSize, imageNum, m_pFile);
        if (count != imageNum)
            return false;

        return true;
    }
Beispiel #30
0
// Crée la liste chainée de shifts (1er lancement du programme)
Erreur initListeShift(Shift * * pPDebShift)
{
	FILE *fichierShifts;

	fopen_s(&fichierShifts, FICHIER_SHIFTS, "rb");

	if (fichierShifts == NULL)
	{
		return FICHIER_SHIFTS_INTROUVABLE;
	}
	else
	{
		ShiftFichier shiftLu;
		Shift *pShiftSauve = NULL;
		Erreur codeErreur;

		fread_s(&shiftLu, sizeof(ShiftFichier), sizeof(ShiftFichier), 1, fichierShifts);

		while (!feof(fichierShifts))
		{
			// from gestion.c
			codeErreur = ajoutShift(pPDebShift, &pShiftSauve, shiftLu.date, shiftLu.heure, 0, NULL);
			if (codeErreur == PAS_D_ERREUR)
			{
				fread_s(&shiftLu, sizeof(ShiftFichier), sizeof(ShiftFichier), 1, fichierShifts);
			}
			else
			{
				return codeErreur;
			}
		}

		fclose(fichierShifts);
		return PAS_D_ERREUR;
	}
}