블로그 이미지
fiadot_old

칼퇴근을 위한 게임 서버 개발 방법론에 대한 심도있는 고찰 및 성찰을 위한 블로그!

Rss feed Tistory
Technical Article/펌 2005. 9. 12. 10:15

C++ 문자형에 대한 총정리

C++ 문자형에 대한 총정리

http://www.codeproject.com/string/CPPStringGuide2.asp
,
Technical Article/펌 2005. 9. 12. 10:13

자바 퍼포먼스 튜닝

JavaTM Performance Tuning and Java Optimization Tips
http://www.glenmccl.com/jperf/


http://www.azillionmonkeys.com/qed/optimize.html

http://www.ezdoum.com/stories.php?topic=10&page=3


http://www.codeproject.com/cpp/C___Code_Optimization.asp
,
Technical Article/펌 2005. 9. 12. 10:13

이클립스 리펙토링

이클립스 리펙토링
http://www-128.ibm.com/developerworks/kr/library/os-ecref/index.html

http://www.jlab.net/jboard/JBoard.jsp?action=writeform&index=187&tale=0&page=1&tablename=jboard&way=2&maxrow=20
,
Technical Article/펌 2005. 9. 12. 10:08

통계서버 정보

과금 테스트는 어떻게 하지요?

Contents
(2004-12-10 오후 12:51:15 | The Doors(jimbo73)| Hits:26)

> 테스트 HOSS로 과금 테스트는 어떻게 하지요?
>
> 확인할 수 있는 페이지나 머 그런거 없나요??
>
> 문서에 나와있는 곳은 가보니 암것두 없더만용...
>
> 테스트 호스에서 지금 과금 확인하는 곳도 자세히 알려주세요..
>
> 그럼,감사합니다.

http://203.236.40.205:8080 에서 확인 가능합니다.











- 온라인서비스통계로그 : http://203.236.40.205:8080/LOG/
- 온라인서비스과금로그 : http://203.236.40.205:8080/ELOG/
- HOSS TRACE 로그 : http://203.236.40.205:8080/HST/


통계페이지 주소
http://203.236.40.27


/** Service Note
1. CID는 서비스시에 등록된 넘을 써준다.
2. makeInitPacket()의 JID는 적절하게 바뀌어야 한다. --> 등록된 첫번째 놈을 써주자.
3. makeInitPacket()의 "ID", "PWD"의 의미를 모르겠다. --> 비워두면 된다.
4. makeChargePacket()의 FREE/PAY는 서비스시에 PAY로 설정해야 한다.
5. muMIN의 값은 서비스시에(폰시험 포함) m.MIN의 값으로 바꿔준다.
6. 상용서버 IP/Port는 203.236.40.219/6200이다.

** HOSS rule
1. Application Server로 한번에 보낼수 있는 바이트수는 4096이다.
2. 아무런 패킷 교환 없이 3분 이상 지속되면 HOSS에서 연결이 끊긴다.
3. 단말기마다의 버퍼에 차이가 있을수 있으며, 이로 인하여 InValidPacketLength ERROR가 발생할 수 있다.
--> 이런상황을 대비하여 HOSS에서는 initPacket이 전송되면 10초간 대기한다.
4. 과금 패킷을 전송할 때 연달아 날리면 에로할 수 있다.
*/



skvm으로 개발하신다면 포트번호를 6200으로 해보시기 바랍니다.

아이피 203.236.40.205 에

각 포트번호들..
gvm : 6100
skvm : 6200
XingQ : 6300
PDA : 6400
폰 나비 전용 : 6500
WIPI : 6600
MLB : 6700
무제한 게임정액제, Graphic SMS : 6800
증권칩 : 6900


> 다른 분들은 지금 HOSS 테스트 서버가 되나여?
> 궁금해여 전.. 어제 오후 부터 안되던데..
>
> 테스트 서버 URL
> socket://203.236.40.205:6100 이거 맞져?^^
>
> 답변 부탁해효 ㅠㅠ
,
Technical Article/펌 2005. 8. 30. 15:30

패스명(path)과 관련된 스트링(string) 처리

패스명과 관련된 스트링 처리

#include "Shlwapi.h"
#pragma comment(lib, "shlwapi.lib")

void PathRemoveExtension(char*)
확장자만 삭제한다.

char* PathFindFileName(char*)
파일명만 반환한다.

void PathRemoveFileSpec(char*)
패스만 반환한다.

http://msdn2.microsoft.com/en-us/library/bb773559.aspx
,
Technical Article/펌 2005. 8. 30. 14:47

res파일의 어플정보(원본파일명 얻어오기 소스)

msdn : mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN\2001JUL\1033\winui.chm::/hh/winui/finstlib_4bad.htm

http://www.codeguru.com/Cpp/W-P/win32/versioning/article.php/c4539/

[CODE] #pragma comment(lib, "Version.lib") #include <windows.h> //#include <winver.h> BOOL CFiaUpdateDlg::GetFileInfo(char *szFile) { DWORD dwLen, dwUseless; LPTSTR lpVI; // std::string companyName; CString companyName; UINT verMajor; dwLen = GetFileVersionInfoSize((LPTSTR)szFile, &dwUseless); if (dwLen==0) return 0; lpVI = (LPTSTR) GlobalAlloc(GPTR, dwLen); if (lpVI) { DWORD dwBufSize; VS_FIXEDFILEINFO* lpFFI; BOOL bRet = FALSE; WORD* langInfo; UINT cbLang; TCHAR tszVerStrName[128]; LPVOID lpt; UINT cbBufSize; GetFileVersionInfo((LPTSTR)szFile, NULL, dwLen, lpVI); if (VerQueryValue(lpVI, _T("\\"), (LPVOID *) &lpFFI, (UINT *) &dwBufSize)) { //We now have the VS_FIXEDFILEINFO in lpFFI verMajor = HIWORD(lpFFI->dwFileVersionMS); } //Get the Company Name. //First, to get string information, we need to get //language information. VerQueryValue(lpVI, _T("\\VarFileInfo\\Translation"), (LPVOID*)&langInfo, &cbLang); //Prepare the label -- default lang is bytes 0 & 1 //of langInfo wsprintf(tszVerStrName, _T("\\StringFileInfo\\%04x%04x\\%s"), langInfo[0], langInfo[1], _T("OriginalFilename")); //Get the string from the resource data if ( VerQueryValue(lpVI, tszVerStrName, &lpt, &cbBufSize) ) // companyName.assign((LPTSTR)lpt); //*must* save this companyName.Format("%s", lpt); //Cleanup GlobalFree((HGLOBAL)lpVI); } return 1; }[/CODE]

스트링들
Comments
InternalName
ProductName
CompanyName
LegalCopyright
ProductVersion
FileDescription
LegalTrademarks
PrivateBuild
FileVersion
OriginalFilename
SpecialBuild
,
Technical Article/펌 2005. 8. 30. 11:19

바이너리 파일 분석 dumpbin

D:\Project\[프로젝트]2005년\[XX] 개인\FiaAppDLL\Library>dumpbin /exports FiaAppDlld.dll
Microsoft (R) COFF Binary File Dumper Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file FiaAppDlld.dll

File Type: DLL

Section contains the following exports for FiaAppDLLd.dll

0 characteristics
4313BB53 time date stamp Tue Aug 30 10:50:11 2005
0.00 version
1 ordinal base
5 number of functions
5 number of names

ordinal hint RVA name

4 0 00001122 ?ShowFiaAboutDlg@@YAXPAD0@Z
5 1 00001046 ?ShowFiaPathDlg@@YAXPADVCString@@@Z
1 2 00001078 GetFileVersion
2 3 000010A5 IsConnectedInternet
3 4 00001091 IsLatestVer

Summary

2000 .data
2000 .idata
2000 .rdata
1000 .reloc
1000 .rsrc
18000 .text

D:\Project\[프로젝트]2005년\[XX] 개인\FiaAppDLL\Library>
,
Technical Article/펌 2005. 8. 29. 16:22

이클립스에서 작업단위 중요도 체크 관리

이클립스에서 작업단위 중요도 체크 관리

프로그래밍을 하다보면 모듈이나 클래스 크게 파일단위로
작업할 부분에 대한 리스트를 작성하거나
작성중인 부분의 추가및 수정사항을 코드에 적어두게 된다.

그냥 적어뒀을때는 나중에 가면 잊어버려도 모르기때문에
나같은 경우에는

* [!!!] - 버그 or 수정해야 할 부분!
* [@@@] - 정리 된 부분!
* [###] - 크게 중요치 않지만 봐야할 부분

(ex) // [!!!] 런칭전에 화면 Clipping 처리해서 뿌려라~

이렇게 남긴다.

이클립스에서는 이런부분을 Task Tags로 만들어 놓았는데
일단 Task Tag를 확인하는 방법은
Windows - Preference - Java - Task Tags 에 보면
기본적으로 FIXM, TODO, XXX 등이 있다.
여기에 프로그래머의 취향에 맞게 수정해주면 될겠다.

그리고 Task Tag를 한번에 확인하는 방법은
Windows - Show View - Other - Basic - Tasks 라는 항목을
선택하면 하단에 뜨게 된다.
,
Technical Article/펌 2005. 8. 25. 15:49

Linker Tools Warning LNK4070 발생시

Linker Tools Warning LNK4070
/OUT:filename directive in .EXP differs from output filename "filename"; ignoring directive

The filename specified in the NAME or LIBRARY statement when the .EXP file was created differs from the output filename that was either assumed by default or specified with the /OUT option.

A client program that uses the resulting DLL might encounter problems.


--------------------------------------------------------------------------------
Send feedback to MSDN.Look here for MSDN Online resources.


DLL을 생성할때 release 모드와 debug모드일때 생성되는 DLL파일명을 다르게 하면 위와같은 경고가 발생한다.

단순 경고라고 무시하면 다른 프로젝트에서 import했을때 에러난다 ㅡㅡ;..

이에 대한 해결방법은

.def파일에 LIBRARY "DLL프로젝트명" 부분을 고쳐줘야 한다.

즉 def파일이 release모드일때와 debug모드일때 2개 있어야만 한다는 얘기...

예를 들여 LIBRARY "FiaAppDLL" 이고
디버그 모드일때는 FiaAppDLLd로 하고싶다면
LIBRARY "FiaAppDLLd" 로 수정하고

프로젝트 셋팅에서 링크탭에 /def:".\FiaAppDLLd.def" 로 수정하면

빌드해도 이상없이 작동한다.

흐흐흐....

아~ 그리고 dll만 바꿀게 아니라 output library명도

/implib:"Library/FiaAppDLLr.lib"

이렇게 바꿔줘야 한다.
,
Technical Article/펌 2005. 8. 25. 13:51

MFC에서 argc, argv 인자 받는방법

MFC내부 매크로
__argc
__argv
사용
,
TOTAL TODAY