forked from LosaDev/ls-2019-source
LosaDev source snapshot 2019
This commit is contained in:
commit
c198676e97
20588 files changed
+8812878
No files matched your search
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testCode", "testCode\testCode.vcxproj", "{8A358B43-91AE-442E-BDE8-2AECF0DCDBAA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8A358B43-91AE-442E-BDE8-2AECF0DCDBAA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8A358B43-91AE-442E-BDE8-2AECF0DCDBAA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8A358B43-91AE-442E-BDE8-2AECF0DCDBAA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8A358B43-91AE-442E-BDE8-2AECF0DCDBAA}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,38 @@
|
||||
========================================================================
|
||||
콘솔 응용 프로그램 : testCode 프로젝트 개요
|
||||
========================================================================
|
||||
|
||||
응용 프로그램 마법사에서 이 testCode 응용 프로그램을 만들었습니다.
|
||||
|
||||
testCode 응용 프로그램을 구성하는 각 파일에 대한
|
||||
요약 설명이 포함되어 있습니다.
|
||||
|
||||
|
||||
testCode.vcxproj
|
||||
응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다.
|
||||
파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한 플랫폼,
|
||||
구성 및 프로젝트 기능에 대한 정보가 포함되어 있습니다.
|
||||
|
||||
testCode.vcxproj.filters
|
||||
응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 필터 파일입니다.
|
||||
이 파일에는 프로젝트의 파일과 필터 간의 연결 정보가 들어 있습니다.
|
||||
이러한 연결은 특정 노드에서 유사한 확장명으로 그룹화된 파일을 표시하기 위해 IDE에서
|
||||
사용됩니다. 예를 들어 ".cpp" 파일은 "소스 파일" 필터와 연결되어 있습니다.
|
||||
|
||||
testCode.cpp
|
||||
기본 응용 프로그램 소스 파일입니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
기타 표준 파일:
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
이 파일은 미리 컴파일된 헤더(PCH) 파일 testCode.pch와
|
||||
미리 컴파일된 형식(PCT) 파일 StdAfx.obj를 빌드하는 데 사용됩니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
기타 참고:
|
||||
|
||||
응용 프로그램 마법사에서 사용하는 "TODO:" 주석은 사용자가 추가하거나 사용자 지정해야 하는
|
||||
소스 코드 부분을 나타냅니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@@ -0,0 +1,91 @@
|
||||
// cBaseThread.cpp: implementation of the cBaseThread class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "cBaseThread.h"
|
||||
#include <process.h>
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
cBaseThread::cBaseThread()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
cBaseThread::~cBaseThread()
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
void cBaseThread::Init()
|
||||
{
|
||||
m_threadId = 0;
|
||||
m_thread = 0;
|
||||
|
||||
m_terminated = FALSE;
|
||||
}
|
||||
|
||||
void cBaseThread::Destroy()
|
||||
{
|
||||
// if still alive, terminate thread
|
||||
if( !IsTerminated() )
|
||||
{
|
||||
Terminate();
|
||||
}
|
||||
|
||||
// close thread handle
|
||||
if( m_thread )
|
||||
{
|
||||
CloseHandle( m_thread );
|
||||
m_thread = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// operation
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Thread시작
|
||||
BOOL cBaseThread::StartThread()
|
||||
{
|
||||
if( IsRunning() ) return FALSE;
|
||||
|
||||
m_thread = reinterpret_cast<HANDLE>(_beginthreadex( NULL,
|
||||
0,
|
||||
&ThreadProc,
|
||||
this,
|
||||
0,
|
||||
reinterpret_cast<UINT*>(&m_threadId) ) );
|
||||
if( m_thread == 0 )
|
||||
{
|
||||
m_threadId = 0;
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
unsigned __stdcall cBaseThread::ThreadProc( void* handle )
|
||||
{
|
||||
unsigned retCode = 0;
|
||||
|
||||
cBaseThread* thread = static_cast<cBaseThread*>(handle);
|
||||
|
||||
while( !thread->IsRunning() )
|
||||
{
|
||||
// 스레드 핸들을 제대로 넘겨받지 못했을 경우 기다린다.
|
||||
Sleep( 1 );
|
||||
}
|
||||
|
||||
// thread loop
|
||||
thread->Process();
|
||||
|
||||
_endthreadex( retCode );
|
||||
return retCode;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Thread 기본 클래스, 쓰레드 생성 및 가상함수 호출
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
class cBaseThread
|
||||
{
|
||||
public:
|
||||
cBaseThread();
|
||||
virtual ~cBaseThread();
|
||||
|
||||
void Init();
|
||||
void Destroy();
|
||||
|
||||
public:
|
||||
BOOL IsRunning() { return m_thread ? TRUE : FALSE; }
|
||||
BOOL IsTerminated() { return m_terminated; }
|
||||
UINT GetThreadID() { return m_threadId; }
|
||||
void Terminate() { m_terminated = TRUE; }
|
||||
|
||||
BOOL StartThread(); // Thread 시작
|
||||
|
||||
protected:
|
||||
virtual void Process() = 0;
|
||||
static unsigned __stdcall ThreadProc( void* handle );
|
||||
|
||||
protected:
|
||||
UINT m_threadId;
|
||||
HANDLE m_thread;
|
||||
|
||||
BOOL m_terminated;
|
||||
};
|
||||
@@ -0,0 +1,84 @@
|
||||
#include "stdafx.h"
|
||||
#include "cTestThread.h"
|
||||
#include "MemPooler.h"
|
||||
#include <algorithm>
|
||||
#include "../../LS_NXSoap/LS_NXSoap/cNEXON.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
extern MemPooler<cNEXON> G_NEXON;
|
||||
|
||||
|
||||
BOOL NexonInitialize(cNEXON& soap, char* IP, int& error);
|
||||
BOOL NexonIsBillingUser(cNEXON& soap, char* ID, char* IP);
|
||||
BOOL NexonGetPurse(cNEXON& soap, char* ID, char* IP);
|
||||
BOOL NexonPurchase(cNEXON& soap, char* ID, char* IP, int amount, int& UsageSN);
|
||||
BOOL NexonPresent(cNEXON& soap, char* ID, char* friendID, int age, int amount, char* IP, int& UsageSN);
|
||||
BOOL NexonUsageCancelByUsageSN(cNEXON& soap, char* ID, int usageSN, int refundAmount);
|
||||
|
||||
|
||||
cTestThread::cTestThread(void)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
cTestThread::~cTestThread(void)
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
void cTestThread::Init()
|
||||
{
|
||||
}
|
||||
|
||||
void cTestThread::Destroy()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BOOL cTestThread::InitializeSoap(DWORD& time)
|
||||
{
|
||||
DWORD begin = GetTickCount();
|
||||
|
||||
char IP[64] = "127.0.0.1";
|
||||
char ID[64] = "lostsg002", friendID[64] = "lostsg003";
|
||||
int usageSN = 0;
|
||||
int amount = 300;
|
||||
int error = 0;
|
||||
|
||||
cNEXON* test = G_NEXON.Pop();
|
||||
if(test)
|
||||
{
|
||||
if(NexonInitialize( *test, IP, error ))
|
||||
{
|
||||
NexonGetPurse( *test, ID, IP );
|
||||
}
|
||||
G_NEXON.Push( test );
|
||||
time = GetTickCount() - begin;
|
||||
return TRUE;
|
||||
}
|
||||
time = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void cTestThread::Process()
|
||||
{
|
||||
DWORD total = 0, count = 0;
|
||||
while(TRUE)
|
||||
{
|
||||
DWORD time = 0;
|
||||
if(InitializeSoap(time))
|
||||
{
|
||||
++count;
|
||||
total += time;
|
||||
|
||||
if(total >= 1000)
|
||||
{
|
||||
printf("------------------ time : %lu, count : %lu\n", total, count);
|
||||
count = 0;
|
||||
total = 0;
|
||||
}
|
||||
}
|
||||
//Sleep(1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "cBaseThread.h"
|
||||
|
||||
class cTestThread : public cBaseThread
|
||||
{
|
||||
public:
|
||||
cTestThread(void);
|
||||
~cTestThread(void);
|
||||
|
||||
void Init();
|
||||
void Destroy();
|
||||
|
||||
protected:
|
||||
BOOL InitializeSoap(DWORD& time);
|
||||
|
||||
protected:
|
||||
virtual void Process();
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
|
||||
// testCode.pch는 미리 컴파일된 헤더가 됩니다.
|
||||
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: 필요한 추가 헤더는
|
||||
// 이 파일이 아닌 STDAFX.H에서 참조합니다.
|
||||
@@ -0,0 +1,16 @@
|
||||
// stdafx.h : 자주 사용하지만 자주 변경되지는 않는
|
||||
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
|
||||
// 들어 있는 포함 파일입니다.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#include <afx.h>
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
|
||||
|
||||
// TODO: 프로그램에 필요한 추가 헤더는 여기에서 참조합니다.
|
||||
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
// SDKDDKVer.h를 포함하면 최고 수준의 가용성을 가진 Windows 플랫폼이 정의됩니다.
|
||||
|
||||
// 이전 Windows 플랫폼에 대해 응용 프로그램을 빌드하려는 경우에는 SDKDDKVer.h를 포함하기 전에
|
||||
// WinSDKVer.h를 포함하고 _WIN32_WINNT 매크로를 지원하려는 플랫폼으로 설정하십시오.
|
||||
|
||||
#include <SDKDDKVer.h>
|
||||
@@ -0,0 +1,206 @@
|
||||
#include "stdafx.h"
|
||||
#include "cTestThread.h"
|
||||
#include "MemPooler.h"
|
||||
#include <stdio.h>
|
||||
#include <list>
|
||||
#include <algorithm>
|
||||
#include "../../LS_NXSoap/LS_NXSoap/cNEXON.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
SYSTEMTIME systime;
|
||||
|
||||
void PrintError(cNEXON& soap, const char* file)
|
||||
{
|
||||
char buffer[4096];
|
||||
soap.GetError(buffer, 2048);
|
||||
|
||||
FILE * fp;
|
||||
fp = fopen(file, "w+");
|
||||
if(fp)
|
||||
{
|
||||
fprintf(fp, "%s", buffer);
|
||||
fclose(fp);
|
||||
}
|
||||
}
|
||||
|
||||
BOOL NexonInitialize(cNEXON& soap, char* IP, int& error)
|
||||
{
|
||||
GetLocalTime(&systime);
|
||||
|
||||
char TS[64];
|
||||
char hash[512] = "{82CFDDC1-E25F-41DD-8E2E-E93A4BF2C576}";
|
||||
|
||||
sprintf_s(TS, sizeof(TS), "%04d%02d%02d%02d%02d%02d", systime.wYear, systime.wMonth, systime.wDay, systime.wHour, systime.wMinute, systime.wSecond);
|
||||
|
||||
BOOL ret = soap.InitializeSoap(TS, IP, hash, error);
|
||||
if(ret == FALSE)
|
||||
{
|
||||
printf("-초기화 실패\n");
|
||||
PrintError( soap, "initializesoap.txt" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//printf("-초기화 성공\n");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL NexonIsBillingUser(cNEXON& soap, char* ID, char* IP)
|
||||
{
|
||||
int error = 0;
|
||||
|
||||
time_t lastDate;
|
||||
BOOL ret = soap.IsBillingUser(ID, 1, IP, error, lastDate);
|
||||
if(ret == FALSE)
|
||||
{
|
||||
printf("-빌링유저 실패\n");
|
||||
PrintError( soap, "IsBilling.txt" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
printf("-빌링유저 성공 : %s, %I64d\n", ID, lastDate);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL NexonGetPurse(cNEXON& soap, char* ID, char* IP)
|
||||
{
|
||||
INT64 balance;
|
||||
int error = 0;
|
||||
BOOL ret = soap.GetPurse(ID, 1, IP, error, balance);
|
||||
if(ret == FALSE)
|
||||
{
|
||||
printf("-잔액조회 실패\n");
|
||||
PrintError( soap, "getpurse.txt" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//printf("-잔액조회 성공 : %s, %I64d\n", ID, balance);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL NexonPurchase(cNEXON& soap, char* ID, char* IP, int amount, int& UsageSN)
|
||||
{
|
||||
char transactionID[512] = {};
|
||||
int productType = 112;
|
||||
char productCode[64] = "100020067";
|
||||
char serverID[64] = "1-게임서버1";
|
||||
char amountsz[64];
|
||||
|
||||
sprintf_s(amountsz, sizeof(amountsz), "%d", amount);
|
||||
|
||||
int error=0, result=0;
|
||||
|
||||
GetLocalTime(&systime);
|
||||
sprintf_s(transactionID, sizeof(transactionID), "%04d%02d%02d%02d%02d%02d", systime.wYear, systime.wMonth, systime.wDay, systime.wHour, systime.wMinute, systime.wSecond);
|
||||
|
||||
BOOL ret = soap.Purchase(ID, transactionID, productType, productCode, amountsz, ID, serverID, transactionID, 1, IP, error, result);
|
||||
if(ret == FALSE)
|
||||
{
|
||||
PrintError( soap, "purchase.txt" );
|
||||
printf("-구매 실패\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
UsageSN = error;
|
||||
printf("-구매 성공 : %s - %s, %d\n", productCode, ID, result);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL NexonPresent(cNEXON& soap, char* ID, char* friendID, int age, int amount, char* IP, int& UsageSN)
|
||||
{
|
||||
char transactionID[512] = {};
|
||||
int productType = 112;
|
||||
char productCode[64] = "100020067";
|
||||
char serverID[64] = "1-게임서버1";
|
||||
char amountsz[64];
|
||||
|
||||
sprintf_s(amountsz, sizeof(amountsz), "%d", amount);
|
||||
|
||||
int error=0, result=0;
|
||||
|
||||
GetLocalTime(&systime);
|
||||
sprintf_s(transactionID, sizeof(transactionID), "%04d%02d%02d%02d%02d%02d", systime.wYear, systime.wMonth, systime.wDay, systime.wHour, systime.wMinute, systime.wSecond);
|
||||
|
||||
BOOL ret = soap.Present(ID, transactionID, productType, productCode, amountsz, ID, friendID, age, serverID, transactionID, 1, IP, error, result);
|
||||
if(ret == FALSE)
|
||||
{
|
||||
PrintError( soap, "purchase.txt" );
|
||||
printf("- 선물 실패\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
UsageSN = error;
|
||||
printf("- 선물 성공 : %s - %s(to %s), %d\n", productCode, ID, friendID, result);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL NexonUsageCancelByUsageSN(cNEXON& soap, char* ID, int usageSN, int refundAmount)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
BOOL ret = soap.UsageCancelByUsageSN(ID, usageSN, refundAmount, result);
|
||||
if(ret == FALSE)
|
||||
{
|
||||
PrintError( soap, "usagecancel.txt" );
|
||||
printf("-청약철회 실패\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
printf("-청약철회 성공 : %s - %d(%d), %d\n", ID, usageSN, refundAmount, result);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
const int G_COUNT = 1;
|
||||
cTestThread G_THREAD[G_COUNT];
|
||||
MemPooler<cNEXON> G_NEXON;
|
||||
|
||||
int main()
|
||||
{
|
||||
G_NEXON.CreatePool(G_COUNT, G_COUNT, TRUE);
|
||||
|
||||
char IP[64] = "127.0.0.1";
|
||||
char ID[64] = "lostsg002", friendID[64] = "lostsg003";
|
||||
int usageSN = 0;
|
||||
int amount = 300;
|
||||
int error = 0;
|
||||
|
||||
for(int i = 0; i < G_COUNT ; i++)
|
||||
{
|
||||
G_THREAD[i].StartThread();
|
||||
}
|
||||
|
||||
//cNEXON test;
|
||||
////for(int i = 0 ; i < 1000 ; i++)
|
||||
//{
|
||||
// NexonInitialize( test, IP, error );
|
||||
// NexonGetPurse( test, ID, IP );
|
||||
|
||||
// //NexonInitialize( test, IP );
|
||||
// //NexonPurchase( test, ID, IP, amount, usageSN);
|
||||
// //NexonInitialize( test, IP );
|
||||
// //NexonGetPurse( test, ID, IP );
|
||||
|
||||
// NexonInitialize( test, IP, error );
|
||||
// NexonPresent( test, ID, friendID, 20, amount, IP, usageSN );
|
||||
|
||||
// NexonInitialize( test, IP, error );
|
||||
// NexonGetPurse( test, ID, IP );
|
||||
|
||||
// NexonInitialize( test, IP, error );
|
||||
// NexonUsageCancelByUsageSN( test, ID, usageSN, amount);
|
||||
|
||||
// NexonInitialize( test, IP, error );
|
||||
// NexonGetPurse( test, ID, IP );
|
||||
// //NexonInitialize( test, IP );
|
||||
// //NexonIsBillingUser( test, ID, IP );
|
||||
// //NexonPurchase( test, ID, IP );
|
||||
|
||||
//}
|
||||
|
||||
printf("-완료\n");
|
||||
char c = getchar();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{8A358B43-91AE-442E-BDE8-2AECF0DCDBAA}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>testCode</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WITH_OPENSSL;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>../../lib/ssleay32MT.lib;../../lib/libeay32MT.lib;../../lib/LS_NXSoapD.lib;pdh.lib;perfmonD.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>../../../lib</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>
|
||||
</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalLibraryDirectories>../../../lib</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>../../lib/ssleay32MT.lib;../../lib/libeay32MT.lib;../../lib/LS_NXSoap.lib;pdh.lib;perfmonD.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="cBaseThread.h" />
|
||||
<ClInclude Include="cTestThread.h" />
|
||||
<ClInclude Include="MemPooler.h" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="cBaseThread.cpp" />
|
||||
<ClCompile Include="cTestThread.cpp" />
|
||||
<ClCompile Include="stdafx.cpp" />
|
||||
<ClCompile Include="testCode.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="소스 파일">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="헤더 파일">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="리소스 파일">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cBaseThread.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cTestThread.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="MemPooler.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="testCode.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cBaseThread.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cTestThread.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in new issue
Block a user