📄 pak_e.cpp
字号:
// pak_e.cpp : Defines the entry point for the console application.
//
#pragma once
#include "stdafx.h"
#include "IExecutive.h"
#include "ifilestorage.h"
#include "global.h"
#include "Strclass.h"
I4DyuchiGXExecutive* g_pExecutive = NULL;
HMODULE g_hExecutiveHandle = NULL;
BOOL SelectGFunc();
BOOL InitEngine();
BOOL IsSupportSSE();
CStrClass returnpaknema();
char *pakname = "npc.pak";
int main(int argc, char* argv[])
{
InitEngine();
I4DyuchiFileStorage* pFS;
g_pExecutive->GetFileStorage(&pFS);
void* pPakFile = pFS->MapPackFile(pakname);
if(pPakFile == NULL)
return FALSE;
BOOL rt = pFS->LockPackFile(pPakFile,0);
if(rt == FALSE)
return FALSE;
pFS->ExtractAllFilesFromPackFile(pPakFile);
BOOL unlock = pFS->UnlockPackFile(pPakFile,NULL);
if(unlock == FALSE)
return FALSE;
pFS->UnmapPackFile(pPakFile);
pFS->Release();
printf("Hello World!\n");
return 0;
}
BOOL InitEngine()
{
SelectGFunc();
HRESULT hr;
g_hExecutiveHandle = LoadLibrary("SS3DExecutiveForMuk.dll");
if( g_hExecutiveHandle == NULL )
return FALSE;
CREATE_INSTANCE_FUNC pFunc;
pFunc = (CREATE_INSTANCE_FUNC)GetProcAddress(g_hExecutiveHandle,"DllCreateInstance");
hr = pFunc((void**)&g_pExecutive);
if (hr != S_OK)
{
printf("Failed To Create Executive\n");
return FALSE;
}
// geometry DLL狼 捞抚, renderer DLL狼 捞抚阑 持绢林搁 executive啊 舅酒辑 积己,檬扁拳秦霖促.
if(g_pExecutive->InitializeFileStorageWithoutRegistry("SS3DFileStorage.dll",
12000,4096,128,FILE_ACCESS_METHOD_ONLY_FILE,NULL,0) == FALSE)
return FALSE;
return TRUE;
}
BOOL SelectGFunc()
{
if (IsSupportSSE())
CopyFile("SS3DGFuncSSE.dll","SS3DGFunc.dll",FALSE);
else
CopyFile("SS3DGFuncN.dll","SS3DGFunc.dll",FALSE);
return TRUE;
}
BOOL IsSupportSSE()
{
BOOL bResult = TRUE;
__try
{
// xorps xmm0,xmm0
__asm _emit 0x0f
__asm _emit 0x57
__asm _emit 0xc0
}
__except ( EXCEPTION_EXECUTE_HANDLER)
{
bResult = FALSE;
}
return bResult;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -