Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
4
Tools/GCMDSTools/Data.ini
Normal file
4
Tools/GCMDSTools/Data.ini
Normal file
@@ -0,0 +1,4 @@
|
||||
[GCMDS]
|
||||
Key=1
|
||||
InputFolder=F:\RYLOnline\Part2\Client\Executable\Debug\CHARACTER\DATA
|
||||
OutFolder=F:\RYLOnline\Part2\Client\Executable\Debug\CHARACTER
|
||||
76
Tools/GCMDSTools/GCMDSTools.cpp
Normal file
76
Tools/GCMDSTools/GCMDSTools.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
// GCMDSTools.cpp : 응용 프로그램에 대한 클래스 동작을 정의합니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GCMDSTools.h"
|
||||
#include "GCMDSToolsDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CGCMDSToolsApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CGCMDSToolsApp, CWinApp)
|
||||
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CGCMDSToolsApp 생성
|
||||
|
||||
CGCMDSToolsApp::CGCMDSToolsApp()
|
||||
{
|
||||
// TODO: 여기에 생성 코드를 추가합니다.
|
||||
// InitInstance에 모든 중요한 초기화 작업을 배치합니다.
|
||||
}
|
||||
|
||||
|
||||
// 유일한 CGCMDSToolsApp 개체입니다.
|
||||
|
||||
CGCMDSToolsApp theApp;
|
||||
|
||||
|
||||
// CGCMDSToolsApp 초기화
|
||||
|
||||
BOOL CGCMDSToolsApp::InitInstance()
|
||||
{
|
||||
// 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을
|
||||
// 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다.
|
||||
// InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다.
|
||||
INITCOMMONCONTROLSEX InitCtrls;
|
||||
InitCtrls.dwSize = sizeof(InitCtrls);
|
||||
// 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록
|
||||
// 이 항목을 설정하십시오.
|
||||
InitCtrls.dwICC = ICC_WIN95_CLASSES;
|
||||
InitCommonControlsEx(&InitCtrls);
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
// 표준 초기화
|
||||
// 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면
|
||||
// 아래에서 필요 없는 특정 초기화
|
||||
// 루틴을 제거해야 합니다.
|
||||
// 해당 설정이 저장된 레지스트리 키를 변경하십시오.
|
||||
// TODO: 이 문자열을 회사 또는 조직의 이름과 같은
|
||||
// 적절한 내용으로 수정해야 합니다.
|
||||
SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성된 응용 프로그램"));
|
||||
|
||||
CGCMDSToolsDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: 여기에 [확인]을 클릭하여 대화 상자가 없어질 때 처리할
|
||||
// 코드를 배치합니다.
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: 여기에 [취소]를 클릭하여 대화 상자가 없어질 때 처리할
|
||||
// 코드를 배치합니다.
|
||||
}
|
||||
|
||||
// 대화 상자가 닫혔으므로 응용 프로그램의 메시지 펌프를 시작하지 않고 응용 프로그램을 끝낼 수 있도록 FALSE를
|
||||
// 반환합니다.
|
||||
return FALSE;
|
||||
}
|
||||
31
Tools/GCMDSTools/GCMDSTools.h
Normal file
31
Tools/GCMDSTools/GCMDSTools.h
Normal file
@@ -0,0 +1,31 @@
|
||||
// GCMDSTools.h : PROJECT_NAME 응용 프로그램에 대한 주 헤더 파일입니다.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error "PCH에 대해 이 파일을 포함하기 전에 'stdafx.h'를 포함합니다."
|
||||
#endif
|
||||
|
||||
#include "resource.h" // 주 기호입니다.
|
||||
|
||||
|
||||
// CGCMDSToolsApp:
|
||||
// 이 클래스의 구현에 대해서는 GCMDSTools.cpp을 참조하십시오.
|
||||
//
|
||||
|
||||
class CGCMDSToolsApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CGCMDSToolsApp();
|
||||
|
||||
// 재정의입니다.
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// 구현입니다.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern CGCMDSToolsApp theApp;
|
||||
207
Tools/GCMDSTools/GCMDSTools.rc
Normal file
207
Tools/GCMDSTools/GCMDSTools.rc
Normal file
@@ -0,0 +1,207 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 한국어 resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#include ""res\\GCMDSTools.rc2"" // Microsoft Visual C++ 이외의 다른 도구에서 편집한 리소스입니다.\r\n"
|
||||
"#include ""afxres.rc"" // 표준 구성 요소입니다.\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\GCMDSTools.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "GCMDSTools 정보"
|
||||
FONT 9, "MS 셸 대화 상자", 0, 0, 0x1
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
|
||||
LTEXT "GCMDSTools 버전 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
|
||||
LTEXT "Copyright (C) 2008",IDC_STATIC,40,25,119,8
|
||||
DEFPUSHBUTTON "확인",IDOK,178,7,50,16,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_GCMDSTOOLS_DIALOG DIALOGEX 0, 0, 151, 116
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "GCMDSTools"
|
||||
FONT 9, "굴림", 400, 0, 0x81
|
||||
BEGIN
|
||||
EDITTEXT IDC_INPUT,28,40,101,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "...",ID_INURL,130,39,14,16
|
||||
EDITTEXT IDC_OUTPUT,28,56,101,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "...",ID_OUTURL,130,54,14,16
|
||||
PUSHBUTTON "원본->출력",ID_START,7,74,68,16
|
||||
PUSHBUTTON "닫기",IDOK,7,93,137,16
|
||||
LTEXT "Key :",IDC_STATIC,7,10,18,8
|
||||
LTEXT "원본: ",IDC_STATIC,7,44,19,8
|
||||
LTEXT "출력: ",IDC_STATIC,7,60,19,8
|
||||
COMBOBOX IDC_KEY,28,7,65,84,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_FILE,96,7,48,69,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "출력->원본",ID_START2,76,74,68,16
|
||||
CONTROL "2중 암호화 사용",IDC_CHECKMASK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,28,25,116,10
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "041203b5"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "TODO: <회사 이름>"
|
||||
VALUE "FileDescription", "TODO: <파일 설명>"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "GCMDSTools.exe"
|
||||
VALUE "LegalCopyright", "TODO: (c) <회사 이름>. All rights reserved."
|
||||
VALUE "OriginalFilename", "GCMDSTools.exe"
|
||||
VALUE "ProductName", "TODO: <제품 이름>"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x412, 949
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
|
||||
IDD_GCMDSTOOLS_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 144
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 109
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "GCMDSTools 정보(&A)..."
|
||||
END
|
||||
|
||||
#endif // 한국어 resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#include "res\GCMDSTools.rc2" // Microsoft Visual C++ 이외의 다른 도구에서 편집한 리소스입니다.
|
||||
#include "afxres.rc" // 표준 구성 요소입니다.
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
20
Tools/GCMDSTools/GCMDSTools.sln
Normal file
20
Tools/GCMDSTools/GCMDSTools.sln
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GCMDSTools", "GCMDSTools.vcproj", "{46AA820D-9493-4B67-80AF-129C96F02E95}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{46AA820D-9493-4B67-80AF-129C96F02E95}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{46AA820D-9493-4B67-80AF-129C96F02E95}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{46AA820D-9493-4B67-80AF-129C96F02E95}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{46AA820D-9493-4B67-80AF-129C96F02E95}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
280
Tools/GCMDSTools/GCMDSTools.vcproj
Normal file
280
Tools/GCMDSTools/GCMDSTools.vcproj
Normal file
@@ -0,0 +1,280 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="GCMDSTools"
|
||||
ProjectGUID="{46AA820D-9493-4B67-80AF-129C96F02E95}"
|
||||
RootNamespace="GCMDSTools"
|
||||
Keyword="MFCProj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
ValidateParameters="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1042"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
ValidateParameters="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
MinimalRebuild="false"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1042"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="소스 파일"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\GCMDSTools.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GCMDSToolsDlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\IniFile.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="헤더 파일"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\GCMDSTools.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GCMDSToolsDlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\IniFile.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="리소스 파일"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\res\GCMDSTools.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GCMDSTools.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\GCMDSTools.rc2"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="GCMDSTools.rc"
|
||||
/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
495
Tools/GCMDSTools/GCMDSToolsDlg.cpp
Normal file
495
Tools/GCMDSTools/GCMDSToolsDlg.cpp
Normal file
@@ -0,0 +1,495 @@
|
||||
// GCMDSToolsDlg.cpp : 구현 파일
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GCMDSTools.h"
|
||||
#include "GCMDSToolsDlg.h"
|
||||
|
||||
#include "IniFile.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
INT GetProgramDir(char* buf, INT len )
|
||||
{
|
||||
char* ProgDir;
|
||||
INT result;
|
||||
|
||||
result = GetModuleFileName( theApp.m_hInstance, buf, len - 1 );
|
||||
if( result == 0 )
|
||||
return 0;
|
||||
|
||||
char pgmPtr[1024];
|
||||
strcpy( pgmPtr, buf );
|
||||
|
||||
ProgDir = buf;
|
||||
ProgDir += strlen( pgmPtr ) - 1;
|
||||
while( *ProgDir != '\\' && ProgDir != pgmPtr )
|
||||
ProgDir--;
|
||||
|
||||
*ProgDir = 0;
|
||||
return (INT)strlen( buf );
|
||||
}
|
||||
|
||||
BOOL BrowserFolder(char* szFolder)
|
||||
{
|
||||
strcpy(szFolder, "");
|
||||
|
||||
BROWSEINFO bi;
|
||||
|
||||
bi.hwndOwner = ::GetActiveWindow();
|
||||
bi.pidlRoot = NULL;
|
||||
bi.pszDisplayName = NULL;
|
||||
bi.lpszTitle = "리스트에서 폴더를 선택하세요";
|
||||
bi.ulFlags = 0;
|
||||
bi.lpfn = NULL;
|
||||
bi.lParam = 0;
|
||||
|
||||
LPITEMIDLIST pidl = SHBrowseForFolder( &bi );
|
||||
|
||||
if( pidl == NULL )
|
||||
return FALSE;
|
||||
|
||||
SHGetPathFromIDList( pidl, szFolder);
|
||||
|
||||
LPMALLOC pMalloc;
|
||||
|
||||
if( SHGetMalloc( &pMalloc ) != NOERROR )
|
||||
return FALSE;
|
||||
|
||||
pMalloc->Free( pidl );
|
||||
pMalloc->Release();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// 응용 프로그램 정보에 사용되는 CAboutDlg 대화 상자입니다.
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// 대화 상자 데이터입니다.
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
|
||||
|
||||
// 구현입니다.
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CGCMDSToolsDlg 대화 상자
|
||||
|
||||
|
||||
|
||||
|
||||
CGCMDSToolsDlg::CGCMDSToolsDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CGCMDSToolsDlg::IDD, pParent)
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CGCMDSToolsDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_KEY, m_Key);
|
||||
DDX_Control(pDX, IDC_INPUT, m_InDir);
|
||||
DDX_Control(pDX, IDC_OUTPUT, m_OutDir);
|
||||
DDX_Control(pDX, IDC_FILE, m_File);
|
||||
DDX_Control(pDX, IDC_CHECKMASK, m_2TypeMask);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CGCMDSToolsDlg, CDialog)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(ID_INURL, &CGCMDSToolsDlg::OnBnClickedInurl)
|
||||
ON_BN_CLICKED(ID_OUTURL, &CGCMDSToolsDlg::OnBnClickedOuturl)
|
||||
ON_BN_CLICKED(ID_START, &CGCMDSToolsDlg::OnBnClickedStart)
|
||||
ON_CBN_SELCHANGE(IDC_KEY, &CGCMDSToolsDlg::OnCbnSelchangeKey)
|
||||
ON_BN_CLICKED(ID_START2, &CGCMDSToolsDlg::OnBnClickedStart2)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CGCMDSToolsDlg 메시지 처리기
|
||||
|
||||
BOOL CGCMDSToolsDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// 시스템 메뉴에 "정보..." 메뉴 항목을 추가합니다.
|
||||
|
||||
// IDM_ABOUTBOX는 시스템 명령 범위에 있어야 합니다.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는
|
||||
// 프레임워크가 이 작업을 자동으로 수행합니다.
|
||||
SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다.
|
||||
SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다.
|
||||
|
||||
// TODO: 여기에 추가 초기화 작업을 추가합니다.
|
||||
m_Key.AddString("아무거나");
|
||||
m_Key.AddString("ROWGlobalKey");
|
||||
m_Key.AddString("Z_all_A_3D");
|
||||
m_Key.SetCurSel(0);
|
||||
|
||||
m_File.AddString("GCMDS");
|
||||
m_File.AddString("skey");
|
||||
m_File.AddString("EDS");
|
||||
m_File.SetCurSel(0);
|
||||
|
||||
|
||||
LoadIni();
|
||||
|
||||
return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다.
|
||||
}
|
||||
|
||||
VOID CGCMDSToolsDlg::LoadIni()
|
||||
{
|
||||
char strBuff[512];
|
||||
GetProgramDir(strBuff, 512);
|
||||
|
||||
strcat(strBuff, "\\Data.ini");
|
||||
|
||||
CIniFile ini;
|
||||
if(!ini.Open(strBuff))
|
||||
{
|
||||
SaveIni();
|
||||
return;
|
||||
}
|
||||
|
||||
DWORD lLen = 0;
|
||||
DWORD dwID = -1;
|
||||
char Data[512];
|
||||
ZeroMemory(Data, 512);
|
||||
if(ini.GetValue("GCMDS", "Key", &dwID))
|
||||
m_Key.SetCurSel(dwID);
|
||||
|
||||
lLen = 0;
|
||||
ZeroMemory(Data, 512);
|
||||
if(ini.GetValue("GCMDS", "InputFolder", Data, &lLen) && lLen > 0)
|
||||
m_InDir.SetWindowText(Data);
|
||||
|
||||
lLen = 0;
|
||||
ZeroMemory(Data, 512);
|
||||
if(ini.GetValue("GCMDS", "OutFolder", Data, &lLen) && lLen > 0)
|
||||
m_OutDir.SetWindowText(Data);
|
||||
|
||||
ini.Close();
|
||||
}
|
||||
|
||||
VOID CGCMDSToolsDlg::SaveIni()
|
||||
{
|
||||
char strBuff[512];
|
||||
GetProgramDir(strBuff, 512);
|
||||
|
||||
strcat(strBuff, "\\Data.ini");
|
||||
|
||||
CIniFile ini;
|
||||
ini.Open(strBuff);
|
||||
|
||||
char Data[512];
|
||||
DWORD dwID = m_Key.GetCurSel();
|
||||
ini.SetValue("GCMDS", "Key", dwID);
|
||||
|
||||
m_InDir.GetWindowText(Data, 512);
|
||||
ini.SetValue("GCMDS", "InputFolder", Data);
|
||||
|
||||
m_OutDir.GetWindowText(Data, 512);
|
||||
ini.SetValue("GCMDS", "OutFolder", Data);
|
||||
|
||||
ini.Close();
|
||||
}
|
||||
|
||||
void CGCMDSToolsDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면
|
||||
// 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 응용 프로그램의 경우에는
|
||||
// 프레임워크에서 이 작업을 자동으로 수행합니다.
|
||||
|
||||
void CGCMDSToolsDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다.
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// 아이콘을 그립니다.
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서
|
||||
// 이 함수를 호출합니다.
|
||||
HCURSOR CGCMDSToolsDlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
|
||||
void CGCMDSToolsDlg::OnBnClickedInurl()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
// 입력 경로 지정
|
||||
char strBuff[512];
|
||||
BrowserFolder(strBuff);
|
||||
|
||||
m_InDir.SetWindowText(strBuff);
|
||||
|
||||
SaveIni();
|
||||
}
|
||||
|
||||
void CGCMDSToolsDlg::OnBnClickedOuturl()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
// 출력 경로 지정
|
||||
char strBuff[512];
|
||||
BrowserFolder(strBuff);
|
||||
|
||||
m_OutDir.SetWindowText(strBuff);
|
||||
|
||||
SaveIni();
|
||||
}
|
||||
|
||||
|
||||
void CGCMDSToolsDlg::OnCbnSelchangeKey()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
SaveIni();
|
||||
}
|
||||
|
||||
void CGCMDSToolsDlg::Recurse( CString perfolder )
|
||||
{
|
||||
CString str;
|
||||
CString folder = perfolder;
|
||||
|
||||
char strKey[64];
|
||||
m_File.GetWindowText(strKey, 64);
|
||||
|
||||
folder += "\\*.";
|
||||
folder += strKey;
|
||||
|
||||
CFileFind finder;
|
||||
BOOL bWorking = finder.FindFile( folder );
|
||||
|
||||
while( bWorking )
|
||||
{
|
||||
bWorking = finder.FindNextFile();
|
||||
|
||||
if( finder.IsDots() )
|
||||
continue;
|
||||
|
||||
CString path = finder.GetFilePath();
|
||||
if( finder.IsDirectory() )
|
||||
Recurse( path );
|
||||
else
|
||||
{
|
||||
m_FileList.push_back(path.GetBuffer());
|
||||
}
|
||||
|
||||
Sleep( 1 );
|
||||
}
|
||||
}
|
||||
|
||||
void CGCMDSToolsDlg::OnBnClickedStart()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
SaveIni();
|
||||
|
||||
char strKey[32];
|
||||
m_Key.GetWindowText(strKey, 32);
|
||||
|
||||
if(m_2TypeMask.GetCheck())
|
||||
{
|
||||
int iLen = strlen(strKey);
|
||||
for(int k = 0; k < iLen; ++k)
|
||||
{
|
||||
strKey[k] = strKey[k]^0xc8;
|
||||
}
|
||||
}
|
||||
|
||||
m_FileList.clear();
|
||||
|
||||
char strInDir[512];
|
||||
m_InDir.GetWindowText(strInDir, 512);
|
||||
|
||||
Recurse(strInDir);
|
||||
|
||||
char strInput[512];
|
||||
m_InDir.GetWindowText(strInput, 512);
|
||||
int iInputLen = (int)strlen(strInput);
|
||||
|
||||
char strOut[512];
|
||||
m_OutDir.GetWindowText(strOut, 512);
|
||||
|
||||
char strTemp[512];
|
||||
|
||||
CString strCmdLine;
|
||||
|
||||
char strExec[512];
|
||||
GetProgramDir(strExec, 512);
|
||||
strcat(strExec, "\\XORenc.exe");
|
||||
|
||||
|
||||
// 변환 시작
|
||||
int iSize = (int)m_FileList.size();
|
||||
for(int i = 0; i < iSize; ++i)
|
||||
{
|
||||
CString sIn = m_FileList[i];
|
||||
strcpy(strTemp, sIn);
|
||||
|
||||
CString sOut = strOut;
|
||||
sOut += &strTemp[iInputLen];
|
||||
|
||||
strCmdLine = '"'+sIn+'"'+" "+'"'+strKey+'"'+" "+'"'+sOut+'"';
|
||||
|
||||
HINSTANCE nResult = ShellExecute(
|
||||
NULL,
|
||||
NULL, // do not request elevation unless needed
|
||||
strExec,
|
||||
strCmdLine, // params
|
||||
NULL, // directory
|
||||
SW_HIDE);
|
||||
/*
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
ZeroMemory( &si, sizeof(si) );
|
||||
si.cb = sizeof(si);
|
||||
ZeroMemory( &pi, sizeof(pi) );
|
||||
CreateProcess( "XORenc.exe", (LPSTR)strCmdLine.GetString(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void CGCMDSToolsDlg::OnBnClickedStart2()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
SaveIni();
|
||||
|
||||
char strKey[32];
|
||||
m_Key.GetWindowText(strKey, 32);
|
||||
|
||||
if(m_2TypeMask.GetCheck())
|
||||
{
|
||||
int iLen = strlen(strKey);
|
||||
for(int k = 0; k < iLen; ++k)
|
||||
{
|
||||
strKey[k] = strKey[k]^0xc8;
|
||||
}
|
||||
}
|
||||
|
||||
m_FileList.clear();
|
||||
|
||||
char strInDir[512];
|
||||
m_OutDir.GetWindowText(strInDir, 512);
|
||||
|
||||
Recurse(strInDir);
|
||||
|
||||
char strInput[512];
|
||||
m_OutDir.GetWindowText(strInput, 512);
|
||||
int iInputLen = (int)strlen(strInput);
|
||||
|
||||
char strOut[512];
|
||||
m_InDir.GetWindowText(strOut, 512);
|
||||
|
||||
char strTemp[512];
|
||||
|
||||
CString strCmdLine;
|
||||
|
||||
char strExec[512];
|
||||
GetProgramDir(strExec, 512);
|
||||
strcat(strExec, "\\XORenc.exe");
|
||||
|
||||
|
||||
// 변환 시작
|
||||
int iSize = (int)m_FileList.size();
|
||||
for(int i = 0; i < iSize; ++i)
|
||||
{
|
||||
CString sIn = m_FileList[i];
|
||||
strcpy(strTemp, sIn);
|
||||
|
||||
CString sOut = strOut;
|
||||
sOut += &strTemp[iInputLen];
|
||||
|
||||
strCmdLine = '"'+sIn+'"'+" "+'"'+strKey+'"'+" "+'"'+sOut+'"';
|
||||
|
||||
HINSTANCE nResult = ShellExecute(
|
||||
NULL,
|
||||
NULL, // do not request elevation unless needed
|
||||
strExec,
|
||||
strCmdLine, // params
|
||||
NULL, // directory
|
||||
SW_HIDE);
|
||||
/*
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
ZeroMemory( &si, sizeof(si) );
|
||||
si.cb = sizeof(si);
|
||||
ZeroMemory( &pi, sizeof(pi) );
|
||||
CreateProcess( "XORenc.exe", (LPSTR)strCmdLine.GetString(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
50
Tools/GCMDSTools/GCMDSToolsDlg.h
Normal file
50
Tools/GCMDSTools/GCMDSToolsDlg.h
Normal file
@@ -0,0 +1,50 @@
|
||||
// GCMDSToolsDlg.h : 헤더 파일
|
||||
//
|
||||
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
// CGCMDSToolsDlg 대화 상자
|
||||
class CGCMDSToolsDlg : public CDialog
|
||||
{
|
||||
// 생성입니다.
|
||||
public:
|
||||
CGCMDSToolsDlg(CWnd* pParent = NULL); // 표준 생성자입니다.
|
||||
|
||||
// 대화 상자 데이터입니다.
|
||||
enum { IDD = IDD_GCMDSTOOLS_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
|
||||
|
||||
void Recurse( CString perfolder );
|
||||
|
||||
std::vector<CString> m_FileList;
|
||||
|
||||
VOID LoadIni();
|
||||
VOID SaveIni();
|
||||
|
||||
// 구현입니다.
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// 생성된 메시지 맵 함수
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
CComboBox m_Key;
|
||||
CEdit m_InDir;
|
||||
CEdit m_OutDir;
|
||||
afx_msg void OnBnClickedInurl();
|
||||
afx_msg void OnBnClickedOuturl();
|
||||
afx_msg void OnBnClickedStart();
|
||||
afx_msg void OnCbnSelchangeKey();
|
||||
CComboBox m_File;
|
||||
afx_msg void OnBnClickedStart2();
|
||||
CButton m_2TypeMask;
|
||||
};
|
||||
105
Tools/GCMDSTools/IniFile.cpp
Normal file
105
Tools/GCMDSTools/IniFile.cpp
Normal file
@@ -0,0 +1,105 @@
|
||||
#include "stdafx.h"
|
||||
#include "IniFile.h"
|
||||
|
||||
CIniFile::CIniFile(VOID)
|
||||
{
|
||||
ZeroMemory(mFileName, sizeof(mFileName));
|
||||
}
|
||||
|
||||
CIniFile::~CIniFile(VOID)
|
||||
{
|
||||
}
|
||||
|
||||
BOOL CIniFile::Open(char* fileName)
|
||||
{
|
||||
if (!fileName)
|
||||
return FALSE;
|
||||
|
||||
strncpy(mFileName, fileName, MAX_PATH);
|
||||
|
||||
FILE* fp = fopen(fileName, "r");
|
||||
if(fp == NULL)
|
||||
return FALSE;
|
||||
|
||||
fclose(fp);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::Close(VOID)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::GetValue(char* keyName, char* valueName, LPDWORD value)
|
||||
{
|
||||
if (!keyName || !valueName || !value)
|
||||
return FALSE;
|
||||
|
||||
char Value[16] = {0,};
|
||||
GetPrivateProfileString(keyName, valueName, "", Value, 16, mFileName);
|
||||
|
||||
*value = (DWORD) atoi(Value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::GetValue(char* keyName, char* valueName, FLOAT *value)
|
||||
{
|
||||
if (!keyName || !valueName || !value)
|
||||
return FALSE;
|
||||
|
||||
char Value[16] = {0,};
|
||||
|
||||
GetPrivateProfileString(keyName, valueName, "", Value, 16, mFileName);
|
||||
|
||||
*value = (FLOAT) atof(Value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::GetValue(char* keyName, char* valueName, char* value, LPDWORD bufferLength)
|
||||
{
|
||||
if (!keyName || !valueName || !value || !bufferLength)
|
||||
return FALSE;
|
||||
|
||||
*bufferLength = GetPrivateProfileString(keyName, valueName, "", value, 512, mFileName);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::SetValue(char* keyName, char* valueName, DWORD value)
|
||||
{
|
||||
if (!keyName || !valueName)
|
||||
return FALSE;
|
||||
|
||||
char Value[16];
|
||||
sprintf(Value, "%d", value);
|
||||
|
||||
WritePrivateProfileString(keyName, valueName, Value, mFileName);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::SetValue(char* keyName, char* valueName, char* value)
|
||||
{
|
||||
if (!keyName || !valueName || !value)
|
||||
return FALSE;
|
||||
|
||||
WritePrivateProfileString(keyName, valueName, value, mFileName);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CIniFile::SetValue(char* keyName, char* valueName, FLOAT value)
|
||||
{
|
||||
if (!keyName || !valueName)
|
||||
return FALSE;
|
||||
|
||||
char Value[16] = {0,};
|
||||
sprintf(Value, "%f", value);
|
||||
|
||||
WritePrivateProfileString(keyName, valueName, Value, mFileName);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
24
Tools/GCMDSTools/IniFile.h
Normal file
24
Tools/GCMDSTools/IniFile.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
class CIniFile
|
||||
{
|
||||
public:
|
||||
CIniFile(VOID);
|
||||
virtual ~CIniFile(VOID);
|
||||
|
||||
private:
|
||||
TCHAR mFileName[MAX_PATH];
|
||||
|
||||
public:
|
||||
BOOL Open(char* fileName);
|
||||
BOOL Close(VOID);
|
||||
|
||||
BOOL SetValue(char* keyName, char* valueName, char* value);
|
||||
BOOL SetValue(char* keyName, char* valueName, DWORD value);
|
||||
BOOL SetValue(char* keyName, char* valueName, FLOAT value);
|
||||
|
||||
BOOL GetValue(char* keyName, char* valueName, char* value, LPDWORD bufferLength);
|
||||
BOOL GetValue(char* keyName, char* valueName, LPDWORD value);
|
||||
BOOL GetValue(char* keyName, char* valueName, FLOAT *value);
|
||||
};
|
||||
85
Tools/GCMDSTools/ReadMe.txt
Normal file
85
Tools/GCMDSTools/ReadMe.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
================================================================================
|
||||
MFC 라이브러리 : GCMDSTools 프로젝트 개요
|
||||
===============================================================================
|
||||
|
||||
응용 프로그램 마법사에서 이 GCMDSTools 응용 프로그램을
|
||||
만들었습니다. 이 응용 프로그램은 MFC의 기본 사용법을 보여 줄 뿐만 아니라 응용 프로그램
|
||||
작성을 위한 기본 구조를 제공합니다.
|
||||
|
||||
이 파일에는 GCMDSTools 응용 프로그램을 구성하는 각 파일에 대한
|
||||
요약 설명이 포함되어 있습니다.
|
||||
|
||||
GCMDSTools.vcproj
|
||||
응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 주 프로젝트 파일입니다.
|
||||
파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한
|
||||
플랫폼, 구성 및 프로젝트 기능에 대한 정보가 들어 있습니다.
|
||||
|
||||
GCMDSTools.h
|
||||
응용 프로그램의 기본 헤더 파일입니다. 여기에는 다른 프로젝트 관련
|
||||
헤더(Resource.h 포함)가 들어 있고 CGCMDSToolsApp 응용 프로그램
|
||||
클래스를 선언합니다.
|
||||
|
||||
GCMDSTools.cpp
|
||||
응용 프로그램 클래스 CGCMDSToolsApp이(가) 들어 있는 기본 응용 프로그램
|
||||
소스 파일입니다.
|
||||
|
||||
GCMDSTools.rc
|
||||
프로그램에서 사용하는 모든 Microsoft Windows 리소스의 목록입니다.
|
||||
여기에는 RES 하위 디렉터리에 저장된 아이콘, 비트맵 및 커서가
|
||||
포함됩니다. 이 파일은 Microsoft Visual C++에서 직접
|
||||
편집할 수 있습니다. 프로젝트 리소스는 1042에 있습니다.
|
||||
|
||||
res\GCMDSTools.ico
|
||||
응용 프로그램의 아이콘으로 사용되는 아이콘 파일입니다. 이 아이콘은
|
||||
주 리소스 파일인 GCMDSTools.rc에 의해 포함됩니다.
|
||||
|
||||
res\GCMDSTools.rc2
|
||||
이 파일에는 Microsoft Visual C++ 이외의 다른 도구에서 편집한 리소스가
|
||||
들어 있습니다. 리소스 편집기로 편집할 수 없는 모든 리소스는
|
||||
이 파일에 넣어야 합니다.
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
응용 프로그램 마법사에서 하나의 대화 상자 클래스가 만들어집니다.
|
||||
|
||||
GCMDSToolsDlg.h, GCMDSToolsDlg.cpp ? 대화 상자
|
||||
이 파일에는 CGCMDSToolsDlg 클래스가 들어 있습니다. 이 클래스는
|
||||
응용 프로그램의 주 대화 상자 동작을 정의합니다. 대화 상자의 템플릿은
|
||||
Microsoft Visual C++에서 편집할 수 있는 GCMDSTools.rc에 있습니다.
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 표준 파일:
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
이 파일은 미리 컴파일된 헤더 파일(PCH)인 GCMDSTools.pch와
|
||||
미리 컴파일된 형식 파일인 StdAfx.obj를 빌드하는 데 사용됩니다.
|
||||
|
||||
Resource.h
|
||||
새 리소스 ID를 정의하는 표준 헤더 파일입니다.
|
||||
Microsoft Visual C++에서 이 파일을 읽고 업데이트합니다.
|
||||
|
||||
GCMDSTools.manifest
|
||||
응용 프로그램 매니페스트 파일은 Windows XP에서 특정 버전의 Side-by-Side
|
||||
어셈블리에 대한 응용 프로그램 종속성을 설명하는 데 사용됩니다. 로더는 이 정보를
|
||||
사용하여 어셈블리 캐시에서 적절한 어셈블리를 로드하거나 응용 프로그램에서 전용
|
||||
어셈블리를 로드합니다. 응용 프로그램 매니페스트는 응용 프로그램 실행 파일과 같은
|
||||
폴더에 설치된 외부 .manifest 파일로 재배포를 위해 포함되거나 리소스의 형태로
|
||||
실행 파일에 포함될 수 있습니다.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 참고:
|
||||
|
||||
응용 프로그램 마법사는 "TODO:"를 사용하여 추가하거나 사용자 지정해야 하는
|
||||
소스 코드 부분을 나타냅니다.
|
||||
|
||||
응용 프로그램이 공유 DLL에서 MFC를 사용하는 경우 해당 MFC DLL을
|
||||
재배포해야 합니다. 그리고 응용 프로그램이 운영 체제의 로캘과
|
||||
다른 언어를 사용하는 경우 해당 지역화된 리소스인 MFC80XXX.DLL을
|
||||
재배포해야 합니다. 이 두가지 항목에 대한 자세한 내용은
|
||||
MSDN 설명서의 Visual C++ 응용 프로그램 재배포 항목을
|
||||
참조하십시오.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
14
Tools/GCMDSTools/XORenc.txt
Normal file
14
Tools/GCMDSTools/XORenc.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
XOR Encoder
|
||||
===========
|
||||
|
||||
- GCMDS 스크립트 또는 Skey 파일을 XOR 로직으로 인코딩, 디코딩 할 때 사용되는 툴입니다.
|
||||
|
||||
- 도스 명령 창에서 사용하십시오.
|
||||
|
||||
- 문법 : XORenc [source file name] Z_all_A_3D [destination file name]
|
||||
|
||||
- 예 : c:\folder>XORenc MON_Seaman.txt Z_all_A_3D MON_Seaman.GCMDS
|
||||
|
||||
|
||||
이상. 끝.
|
||||
BIN
Tools/GCMDSTools/res/GCMDSTools.ico
Normal file
BIN
Tools/GCMDSTools/res/GCMDSTools.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
13
Tools/GCMDSTools/res/GCMDSTools.rc2
Normal file
13
Tools/GCMDSTools/res/GCMDSTools.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// GCMDSTools.RC2 - Microsoft Visual C++에서 직접 편집하지 않는 리소스
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error 이 파일은 Microsoft Visual C++에서 편집할 수 없습니다.
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 여기에 수동으로 편집한 리소스를 추가합니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
30
Tools/GCMDSTools/resource.h
Normal file
30
Tools/GCMDSTools/resource.h
Normal file
@@ -0,0 +1,30 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by GCMDSTools.rc
|
||||
//
|
||||
#define ID_START 2
|
||||
#define ID_INURL 3
|
||||
#define ID_OUTURL 4
|
||||
#define ID_START2 5
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_GCMDSTOOLS_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_INPUT 1001
|
||||
#define IDC_OUTPUT 1002
|
||||
#define IDC_KEY 1003
|
||||
#define IDC_FILE 1004
|
||||
#define IDC_CHECK1 1005
|
||||
#define IDC_CHECKMASK 1005
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1006
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
7
Tools/GCMDSTools/stdafx.cpp
Normal file
7
Tools/GCMDSTools/stdafx.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
|
||||
// GCMDSTools.pch는 미리 컴파일된 헤더가 됩니다.
|
||||
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
72
Tools/GCMDSTools/stdafx.h
Normal file
72
Tools/GCMDSTools/stdafx.h
Normal file
@@ -0,0 +1,72 @@
|
||||
// stdafx.h : 자주 사용하지만 자주 변경되지는 않는
|
||||
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
|
||||
// 들어 있는 포함 파일입니다.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _SECURE_ATL
|
||||
#define _SECURE_ATL 1
|
||||
#endif
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다.
|
||||
#endif
|
||||
|
||||
// 아래 지정된 플랫폼에 우선하는 플랫폼을 대상으로 하는 경우 다음 정의를 수정하십시오.
|
||||
// 다른 플랫폼에 사용되는 해당 값의 최신 정보는 MSDN을 참조하십시오.
|
||||
#ifndef WINVER // Windows XP 이상에서만 기능을 사용할 수 있습니다.
|
||||
#define WINVER 0x0501 // 다른 버전의 Windows에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // Windows XP 이상에서만 기능을 사용할 수 있습니다.
|
||||
#define _WIN32_WINNT 0x0501 // 다른 버전의 Windows에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINDOWS // Windows 98 이상에서만 기능을 사용할 수 있습니다.
|
||||
#define _WIN32_WINDOWS 0x0410 // Windows Me 이상에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_IE // IE 6.0 이상에서만 기능을 사용할 수 있습니다.
|
||||
#define _WIN32_IE 0x0600 // 다른 버전의 IE에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다.
|
||||
|
||||
// MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다.
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC 핵심 및 표준 구성 요소입니다.
|
||||
#include <afxext.h> // MFC 확장입니다.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef _AFX_NO_OLE_SUPPORT
|
||||
#include <afxdtctl.h> // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원입니다.
|
||||
#endif
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // Windows 공용 컨트롤에 대한 MFC 지원입니다.
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef _UNICODE
|
||||
#if defined _M_IX86
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_IA64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_X64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#else
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user