当前位置: 首页>>代码示例>>C++>>正文


C++ VirtualDrive类代码示例

本文整理汇总了C++中VirtualDrive的典型用法代码示例。如果您正苦于以下问题:C++ VirtualDrive类的具体用法?C++ VirtualDrive怎么用?C++ VirtualDrive使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了VirtualDrive类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: LS_VirtualDrive_FileExtract

int LS_VirtualDrive_FileExtract(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	const char* srcFileName = luaL_checkstring(*state, 2);
	const char* destFileName = luaL_checkstring(*state, 3);
	VirtualDrive::FileEntry* entry = drive->FindFileEntry(srcFileName);
	if (!entry)
	{
		state->PushBoolean(false);
		return 1;
	}

	VirtualFile file;
    if (!file.Open(*drive, srcFileName))
	{
		state->PushBoolean(false);
		return 1;
	}

	bool ret = Copy(file, destFileName);

/*	FILETIME createTime;
	FILETIME accessTime;
	FILETIME writeTime;
	HANDLE handle = CreateFile(destFileName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	GetFileTime(handle, &createTime, &accessTime, &writeTime);
	writeTime.dwLowDateTime = args[ 2 ].GetInteger();
	writeTime.dwHighDateTime = args[ 3 ].GetInteger();
	SetFileTime(handle, &createTime, &accessTime, &writeTime);
	CloseHandle(handle);
*/
	state->PushBoolean(ret);
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:34,代码来源:vdrive.cpp

示例2: LS_VirtualDrive_FileOpen

int LS_VirtualDrive_FileOpen(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	const char* fileName = NULL;
	int entryIndex = -1;
	if (args[2].IsString())
		fileName = args[2].GetString();
	else if (args[2].IsNumber())
		entryIndex = args[2].GetInteger();
	else
		luaL_error(*state, "Argument 2 is not a string or integer.");

	VirtualFileHandle* file = PushVirtualFileHandleObj(state);
	if (fileName)
	{
		if (!drive->FileOpen(fileName, *file))
			return 0;
	}
	else
	{
		if (!drive->FileOpenIndex((size_t)entryIndex, *file))
			return 0;
	}

	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:26,代码来源:vdrive.cpp

示例3: LS_VirtualDrive_Pack

int LS_VirtualDrive_Pack(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
    VirtualDrive::FileOrderInfoArray fileOrder;
	if (args[2].IsTable())
	{
        VirtualDrive::FileOrderInfo info;
		LuaObject tableObj = args[2];
        int index = 1;
		while (true)
		{
			LuaObject entryNameObj = tableObj[index++];
			if (!entryNameObj.IsString())
				break;
			info.entryName = entryNameObj.GetString();

			LuaObject srcPathObj = tableObj[index++];
			if (srcPathObj.IsNil())
				break;
			info.srcPath = srcPathObj.GetString();

			info.compressionMethod = 8;
			LuaObject compressionMethodObj = tableObj[index];
			if (compressionMethodObj.IsNumber())
			{
				info.compressionMethod = compressionMethodObj.GetInteger();
				index++;
			}

            fileOrder.Add(info);
		}
	}
	state->PushBoolean(drive->Pack(&fileOrder) != 0);
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:35,代码来源:vdrive.cpp

示例4: ASSERT

BOOL VirtualFile::Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* /*pError*/)
{
	// Open() only works if a VirtualDriveManager is present.
	VirtualDriveManager* manager = VirtualDriveManager::GetInstance();
	if (!manager)
	{
		ASSERT(0);
		return FALSE;
	}

	m_strFileName = lpszFileName;

	// Parse the incoming filename.
	CString virtualDriveName;
	CString virtualFileName;
	manager->ParseFilename(lpszFileName, virtualDriveName, virtualFileName);

	VirtualDrive* drive = manager->Open(virtualDriveName, false);
	if (!drive)
		return FALSE;

	if (nOpenFlags & modeCreate)
	{
		if (drive->m_readOnly)
			return false;

		return drive->FileCreate(virtualFileName, *this);
	}

	return drive->FileOpen(virtualFileName, *this);
}
开发者ID:Luomu,项目名称:workspacewhiz,代码行数:31,代码来源:VirtualFile.cpp

示例5: LS_VirtualDrive_FileGetFileName

int LS_VirtualDrive_FileGetFileName(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* fileHandle = VirtualFileHandleHandleFromLua(state, args[2]);
	state->PushString(drive->FileGetFileName(*fileHandle));
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:8,代码来源:vdrive.cpp

示例6: LS_VirtualDrive_FileErase

int LS_VirtualDrive_FileErase(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	const char* fileName = luaL_checkstring(*state, 2);
	state->PushBoolean(drive->FileErase(fileName) != 0);
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:8,代码来源:vdrive.cpp

示例7: LS_VirtualDrive_Open

int LS_VirtualDrive_Open(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	const char* fileName = luaL_checkstring(*state, 2);
	const char* defaultPassword = luaL_optstring(*state, 3, NULL);
	state->PushBoolean(drive->Open(fileName, false, defaultPassword) != 0);
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:8,代码来源:vdrive.cpp

示例8: LS_VirtualDrive_FileGetLength

int LS_VirtualDrive_FileGetLength(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* fileHandle = VirtualFileHandleHandleFromLua(state, args[2]);
	state->PushNumber((lua_Number)drive->FileGetLength(*fileHandle));
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:8,代码来源:vdrive.cpp

示例9: LS_VirtualDrive_GetFileEntryIndex

int LS_VirtualDrive_GetFileEntryIndex(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);

	const char* fileName = luaL_checkstring(*state, 2);
	state->PushNumber(drive->FindFileEntryIndex(fileName));
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:8,代码来源:vdrive.cpp

示例10: LS_VirtualDrive_FileSetLength

int LS_VirtualDrive_FileSetLength(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* fileHandle = VirtualFileHandleHandleFromLua(state, args[2]);
	long len = luaL_checklong(*state, 3);
	drive->FileSetLength(*fileHandle, len);
	return 0;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:9,代码来源:vdrive.cpp

示例11: LS_VirtualDrive_FileCreate

int LS_VirtualDrive_FileCreate(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	const char* fileName = luaL_checkstring(*state, 2);
	UINT compressionLevel = (UINT)luaL_optnumber(*state, 3, 8);
	time_t fileTime = (UINT)luaL_optnumber(*state, 4, (lua_Number)time(NULL));
    VirtualFileHandle* fileHandle = PushVirtualFileHandleObj(state);
	if (!drive->FileCreate(fileName, *fileHandle, compressionLevel, &fileTime))
		return 0;
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:11,代码来源:vdrive.cpp

示例12: LS_VirtualDrive_FileWrite

int LS_VirtualDrive_FileWrite(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* file = VirtualFileHandleHandleFromLua(state, args[2]);
	size_t len;
    const char* buffer = luaL_checklstring(*state, 3, &len);
	len = luaL_optlong(*state, 4, len);
	drive->FileWrite(*file, buffer, len);
	return 0;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:11,代码来源:vdrive.cpp

示例13: LS_VirtualDrive_FindFileEntry

int LS_VirtualDrive_FindFileEntry(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);

	const char* fileName = luaL_checkstring(*state, 2);

	VirtualDrive::FileEntry* entry = drive->FindFileEntry(fileName);

	if (!entry)
		return 0;

	BuildFileEntry(state, entry);
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:14,代码来源:vdrive.cpp

示例14: LS_VirtualDrive_FileRead

int LS_VirtualDrive_FileRead(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* fileHandle = VirtualFileHandleHandleFromLua(state, args[2]);
	long len = luaL_optlong(*state, 3, -1);
	if (len == 0)
		len = (long)drive->FileGetLength(*fileHandle);

	char* buffer = new char[len];
	UINT nr = (UINT)drive->FileRead(*fileHandle, buffer, len);
	state->PushLString(buffer, nr);
	delete[] buffer;
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:15,代码来源:vdrive.cpp

示例15: LS_VirtualDrive_GetFileEntry

int LS_VirtualDrive_GetFileEntry(LuaState* state, LuaStackObject* args)
{
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);

	int entryIndex = (int)luaL_optlong(*state, 2, -1);

	VirtualDrive::FileEntry* entry;

	entry = drive->GetFileEntry(entryIndex - 1);

	if (!entry)
		return 0;

	BuildFileEntry(state, entry);
	return 1;
}
开发者ID:WeyrSDev,项目名称:gamecode3,代码行数:16,代码来源:vdrive.cpp


注:本文中的VirtualDrive类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。