블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2809)
Unity3D (865)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday



오랜만에 시골갔다가 보이길래 반가워서 찍어왔다.

어릴땐 이 꽃 피면 따서 꽃 뒤를 쪽쪽~ 빨아 먹었었는데..

꿀이 들어있어서 학교 걸어다니면서 보이면 빨아먹고 했었던 기억이..

6월초니깐..찔레순도 많이 따먹었는데..

오랜세월이 지났지만 아직도 이 꽃 이름은 모르네.. 



[추가]

우연히 1박 2일을 보다가 꽃이름을 알게 됐다. [인동] 이란 꽃이름..
 
흰색과 노란색 두가지가 따로 피는 줄 알았는데..

흰 꽃이 노란색으로 변하는 거였다니.. -ㅅ-;;

인동 정보 백과사전 링크 : http://dbplus.naver.com/dbplus.naver?where=plant&pkgid=200912071&query=%EC%9D%B8%EB%8F%99%EC%B4%88&id=000000054476 
반응형

'Memories' 카테고리의 다른 글

잘피(말잘피)  (1) 2012.01.08
부산역 앞  (0) 2011.06.11
으름  (0) 2011.02.12
남해/금남호/창선-삼천포 대교  (0) 2011.02.12
삐비  (0) 2011.02.12
Posted by blueasa
, |

체인 라이트닝 참 재미있는 이펙트이다.

 

MMORPG 에서 사용되는 대부분의 이펙트는 공격자->발사체->피격자 의 형태에 맞아 들어가는데

 

체인라이트닝은 이러한 구조가 여러가 엮어져 있는 형태이다.

 

 

 

 

100% 코드로 하기도 애매하고,

 

그렇다고 디자이너가 만들기도 애매한데,

 

결국 코드와 디자인을 반씩 섞어서 만드는 대표적인 이펙트가 "체인 라이트닝" 이펙트이다.

 

워크래프트3 와 와우를 보고서는 체인라이트닝 집어넣자고 기획자가 하루가 멀다하고 징징거린다.

 

참으로 큰일이지만 다른게임에서 되는거 안된다고 하기에는 내가 너무 무능해 보인다.

 

 

1) 첫 시도 -> 코드로 100% 생성을 시도하다.

 

체인라이트닝의 저러한 연출을 디자이너가 하기는 힘들다고 생각하고

코드로 연동하는것이 좋다고 생각했다.

 

게임 엔티티와 연동하는 저런 부분을 3dsMAX 에서 처리하기는 매우 힘들다고 생각했기 때문이다.

 

그래서 체인라이트닝의 번개부분을 노이즈함수 코드를 분석하면서 만들었는데

 

결과는 처참했다.

 

그냥 습작으로는 쓸만했지만 게임상에서 쓸만한 퀄리티가 아니였다.

 

솔직하게 말해서 프로그래머가 3dsMAX 로 번개를 만들어도 퀄리티가 엉망일텐데,

 

코드로 SetPosition 하면서 만든 번개가 퀄리티가 좋을리 없었다.

 

결국 코드로 100% 생성한 체인 라이트닝인 폐기 되었다.

 

 

2) 2차 시도, 체인라이트닝을 생각해보자.

체인 라이트닝 이펙트 자체를 분석하면서

 

체인라이트닝에서 실질적으로 연동해야 하는 부분은

결국 A->B->C->D 로 개별 장거리공격이 연장되는 요소밖에 없다는것을 알게 되었다.

 

그렇다면 개별요소 A->B, B->C, C->D 로 가는 개별 이펙트 자체는

얼마든지 맥스에서 제작할수 있었다.

 

맥스에서 체인라이트닝의 한토막만 만들고 코드로는 연결시키는것이다.

 

 

 

체인라이트닝의 애니메이션은 3부분으로 구성된다.

 

팽창기 : 번개가 공격자에서 피격자로 팽창하는 부분.

지속시간 : 번개가 지글지글 거리는 부분

수축기 : 번개가 공격자부분에서 소멸하기 시작하여 소멸하는 부분.

 

 

문제는 지금까지의 이펙트 렌더링 모듈이 키프레임 애니메이션밖에 지원하지 않아서

번개의 표현하기 위해서는 VertexAnimation 과 텍스춰 애니메이션을 추가로 지원해야 했다.

 

다른게 아니라, 디자이너가 번개를 표현하기 위해서는 맥스에 있는

Noise Modifier 를 반드시 사용해야 하는데 이를 추출할 방법이 VertexAnimation 밖에 없었다.

 

 

 

몇가지 문제가 있었다.

 

맥스에서 만든것을 단지 단순하게 공격자->피격자 거리에 따라서

늘려주기만 할뿐이니 거리에 따라서 이펙트가 왜곡되는 문제도 있었다.

 

이를 해결하는 꽁수 비슷한 방법으로

거리에 따라서 아예 이펙트를 3벌 만들었다.

 

근거리/중거리/원거리 이렇게 미리 이펙트를 3벌 만들어서 거리에 따라서

가장 비슷한 형태의 이펙트를 공격자->피격자를 연결하는데 사용했다.

 

물론 이러한 문제는 이펙트를 "코딩" 으로 제작했다면 발생하지 않는 문제이다.

하지만 "코드" 로는 디자이너의 섬세한 디자인역시 기대할수 없다는 점이 문제이다.

 

결국 맥스로 만든 이펙트를 여러벌 들고 있는것으로 타협을 보았다.

 

체인 라이트닝 이펙트는 좀 "랜덤"스러운 맛이 있어야 하는데,

 

이 부분역시 그냥 이펙트를 여러벌 들고 있는것으로 해결했다.

실제로 체인 라이트닝 이펙트는 거리당 3개, 랜덤속성을 묘사하기 위해서 추가로 3벌씩

도합 3*3 = 9 개의 이펙트가 존재했다.

 

실제로 체인라이트닝이라는 이펙트 하나를 만들기 위해서 상당한양의 리소스가 소비되었지만

그만한 가치는 있다고 판단한다.

 

내가 과연 옳은 방향으로 해결한것일까?

 

이펙트 제작에 있어서 모범 해답은 없다.

결과를 만드는것 자체가 빠듯한 상황에서 모범해답까지 찾을 사치까지 누리고 싶지는 않다.

 

글로는 한방에 스윽하고 적었지만, 게임에서 쓸수 있는 상태의 "체인라이트닝" 을 만들기 위해서

"한달" 동안 디자이너와 삽질을 해야했다.

 

디자이너가 맥스파일을 넘기면 시험삼아서 적용해보고 수정요청하고 다시 코드수정하고

맥스파일 다시 수정요청하고, 이런식으로 10번정도 반복하면 되는데,

 

아무 체계도 없는 막막한 상황에서 삽질로 하나씩 하나씩 완성하는것이니.

디자이너 입장에서도 고역이다.

 

"체인라이트닝" 한번 만들더니 "이펙트 담당할사람 따로 뽑아라" 라고 파업선언을 하더니

더이상 이펙트작업을 하지 않았다.

애니메이터에게 이펙트작업을 시킨것부터가 약간은 무리수가 있었지만 빠듯한 상황에서는 어쩔수가 없다.

 

다른사람들은 어떻게 작업하는지 궁금하다.


출처 : http://blog.daum.net/gdocument/29

반응형
Posted by blueasa
, |



출처 : stnzone.com/gboard/blog/download.php?mb_id=neojzs&id=1135
반응형
Posted by blueasa
, |
1. download : http://code.google.com/p/syntaxhighlighter/

2. 설치 
 다운로드 받은 파일을 압축해제후 scripts, styles 폴더 안에 있는 파일들을 스킨-직접 올리기에서 모두 올린다.
 그런 후에 아래 내용을 스킨-html/css 에서 html 태그중 </body> 위에 아래 내용을 추가한다.
  1. <!-- Syntax Highlighter start -->  
  2. <link type="text/css" rel="stylesheet" href="./images/SyntaxHighlighter.css"></link>  
  3. <script language="javascript" src="./images/shCore.js"></script>  
  4. <script language="javascript" src="./images/shBrushCpp.js"></script>  
  5. <script language="javascript" src="./images/shBrushCSharp.js"></script>  
  6. <script language="javascript" src="./images/shBrushCss.js"></script>  
  7. <script language="javascript" src="./images/shBrushDelphi.js"></script>  
  8. <script language="javascript" src="./images/shBrushJava.js"></script>  
  9. <script language="javascript" src="./images/shBrushJScript.js"></script>  
  10. <script language="javascript" src="./images/shBrushPhp.js"></script>  
  11. <script language="javascript" src="./images/shBrushPython.js"></script>  
  12. <script language="javascript" src="./images/shBrushRuby.js"></script>  
  13. <script language="javascript" src="./images/shBrushSql.js"></script>  
  14. <script language="javascript" src="./images/shBrushVb.js"></script>  
  15. <script language="javascript" src="./images/shBrushXml.js"></script>  
  16. <script language="javascript">  
  17. dp.SyntaxHighlighter.ClipboardSwf = 'http://your_address/images/clipboard.swf';  
  18. dp.SyntaxHighlighter.HighlightAll('code');  
  19. </script>  
  20. <!-- Syntax Highlighter start -->  


3. 사용법

  1. tag중 pre와 textarea에 대한 : http://code.google.com/p/syntaxhighlighter/wiki/PreAndTextarea
  2. 사용법에 대한 : http://code.google.com/p/syntaxhighlighter/wiki/Usage
  3. 사용 가능한 언어 : http://code.google.com/p/syntaxhighlighter/wiki/Languages
  4. 설정 : http://code.google.com/p/syntaxhighlighter/wiki/Configuration



    출처 : 
    http://srand.tistory.com/8 



Usage

Placing the code

Place your code on the page and surround it with <pre> tag. Set name attribute to code and class attribute to one of the language aliases you wish to use.

<pre name="code" class="c-sharp">
... some code here ...
</pre>

NOTE: One important thing to watch out for is opening triangular bracket <. It must be replaced with an HTML equivalent of &lt; in all cases. Failure to do won't break the page, but might break the source code displayed.

An alternative to <pre> is to use <textarea> tag. There are no problems with < character in that case. The main problem is that it doesn't look as good as <pre> tag if for some reason JavaScript didn't work (in RSS feed for example).

<textarea name="code" class="c#" cols="60" rows="10">
... some code here ...
</textarea>

Extended configuration

There's a way to pass a few configuration options to the code block. It's done via colon separated arguments.

<pre name="code" class="html:collapse">
... some code here ...
</pre>

Making it work

Finally, to get the whole thing to render properly on the page, you have to add JavaScript to the page.

<link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter.css"></link>
<script language="javascript" src="js/shCore.js"></script>
<script language="javascript" src="js/shBrushCSharp.js"></script>
<script language="javascript" src="js/shBrushXml.js"></script>
<script language="javascript">
dp
.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
dp
.SyntaxHighlighter.HighlightAll('code');
</script>

For optimal result, place this code at the very end of your page. Check HighlightAll for more details about the function.

반응형
Posted by blueasa
, |
@err,hr

VS 로 디버깅할때 watch 창에 저렇게 적어주면 GetLastError() 값이 에러 문자열로 변경되어 화면에 출력됩니다. 
편하죠 ^^

반응형
Posted by blueasa
, |
링크 : http://forums.andromedarabbit.net/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EC%95%88%EC%A0%84%ED%95%9C_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

런타임 검사

[편집]개요

런타임 검사는 Runtime Check, RTC라고 한다. Visual Studio 2008을 기준으로 보면 [프로젝트 - 속성 - 구성 속성 - C/C++ - 코드 생성] 메뉴에 관련 옵션이 있다. 작은 형식 검사 (/RTCc), 기본 런타임 검사 (/RTC1, /RTCsu)가 런타임 검사에 속한다.

  • /RTCc

더 큰 데이터 형식의 값을 더 작은 데이터 형식에 할당할 때 데이터 손실이 발생할 수 있음을 결고한다. 예를 들어 INT64 변수 값을 INT32 변수에 할당하는 경우가 이에 해당한다. 물론 이러한 할당이 의도적이고 정확한 연산일 수도 있기 때문에 아무 때나 오류 메시지를 내보내진 않는다. 값 할당 시에 비트 연산자를 명시적으로 사용하면 RTCc 검사에 걸리지 않는다.

#include <crtdbg.h>
 
char get8bits(int value, int position) {
   _ASSERT(position < 32);
   return (char)(value >> position);
   // Try the following line instead:
   // return (char)((value >> position) && 0xff);
}
 
int main() {
   get8bits(12341235,3);
}
  • /RTCs

스택 프레임 런타임 오류 검사를 수행한다. MSDN 라이브러리 문서를 읽고 어떤 식으로 문제를 탐지해내는지 알아두면 커스텀 스택 메모리 할당자를 개발할 때 도움이 된다. Earlgrey 프로젝트의 StackAllocator는 이러한 사례 중 하나이다.

  • /RTCu

초기화되지 않은 변수가 사용될 때 보고한다.

  • /RTC1, /RTCsu

/RTC1은 /RTCsu를 뜻한다.


[편집]언제 쓰는가?

/RTC 옵션은 컴파일러가 탐지 기능을 삽입해 넣으므로 성능에 영향을 미친다. 더군다나 /RTC 옵션이 설정되면 최적화(optimize pragma, /O)도 되지 않는다. 그러므로 DEBUG 빌드 때에만 /RTC 옵션을 켜는 게 좋다.

[편집]boost::numeric_cast 와 /RTCc

/RTCc 옵션을 켠 상태로 boost::numeric_cast를 쓰다 보면 런타임 오류 메시지를 마주치게 된다.

TEST(EarlgreyMathTest, UIntToInt64)
{
	EARLGREY_STATIC_ASSERT(UINT_MAX < _I64_MAX);
 
	UINT src = 123;
	INT64 dst = EARLGREY_NUMERIC_CAST<INT64>(src);
	ASSERT_EQ(123, dst);
}

boost::numeric_cast 내부에서 비트 연산을 명시적으로 써서 컴파일러가 올바른 타입 변환임을 알게 해주었더라면 이런 문제가 없었을 것이다. 이 문제를 해결하려면 크게 두 가지 방법이 동원 가능하다.

  • boost::numeric_cast의 소스 코드를 고친다. 물론 써드파티 라이브러리를 손 대기 시작하면 이후에 최신 버전으로 업그레이드할 때 골이 아프다.
  • #pragma runtime_checks 지시자를 활용한다. 이 지시자를 사용하면 일부 함수에 한해 특정 런타임 검사를 무효화할 수 있다. 일반적으로 이 지시자로 문제 해결이 가능하지만 안타깝게도 boost::numeric_cast처럼 템플릿 함수일 때는 그렇게 상황이 단순하지 않다. 다양한 이슈가 있기 때문에 뒤에서 따로 이 문제를 다룬다. 여기선 /RTCc 옵션틀 끄는 편이 나을 수도 있다는 것만 언급한다.

[편집]/RTCc 와 #pragme runtime_checks

 
반응형
Posted by blueasa
, |


종종 프로젝트 설정을 잘 못 만지면 pre compiled header 에 대한 오류를 볼 수 있습니다. (나만 그런가?)
그냥 pre compiled header 를 사용안함으로 해버리면 해결 됩니다.

그러나 이건 근본적인 해결책은 되지 못하겠지요. 또한 pre compiled header 를 사용하는 이점을 모두 버려야 하구요 :-)


pre compiled header 옵션이 몇가지가 있는데 모두 어떻게 동작하는지 정확히는 알지 못하겠습니다. 
아무튼 난 기본 설정(미리 컴파일된 헤더 파일 사용)을 쓰고 싶단 말입니다 !!

자 ~ 원래 기본 설정(/Yu) 로 바꿔두고요..빌드를 해봅시다. 
당연히 미리 컴파일된 헤더를 찾을수 없다고 떠들어 대는 컴파일러 메세지를 볼 수 있을것입니다.


이는 "미리 컴파일된 헤더" 로 지정된 stdafx.h 때문에 그렇습니다. 
stdafx.cpp통해서 pch 파일을 생성하고, 나머지는 모두 만들어진 pch 를 통해서 컴파일이 됩니다. 
어디선가 pch 파일을 무턱대고 복사해놓고, 빌드를 하면 일치하지 않는다는 등의 또 다른 컴파일러의 불만을 보게 되겠지요. 


stdafx.cpp 의 속성을 위와 같이 미리 컴파일된 헤더 생성(/Yc) 로 두면 문제는 해결됩니다. 

stdafx.cpp 를 통해서 pch 를 만들고, 나머지 파일들은 pch 를 이용, 즉 설정 이름처럼 미리 컴파일된 헤더 사용이니까요. 결국 stdafx.cpp 는 미리 컴파일된 헤더를 만들어야 겠죠.. 

종종..이 문제때문에 프로젝트를 새로 생성했던 기억이 있어서.. 좀 뒤적거리다가 알아냈습니다. 


출처 :  
http://somma.egloos.com/2723641
반응형
Posted by blueasa
, |



참고 : 
http://cafe.naver.com/jzsdn/310  : 형변환 (float -> int)
http://cafe.naver.com/jzsdn/8571 : Fast sqrt 테스트..
http://cafe.naver.com/jzsdn/11236 : Intel FPU Rounding mode
 
 
참고내용을 토대로 정리를 조금 해보았습니다.
 
우선 형변환(float -> int)부터 적어 봅니다. 우선 결과입니다.

 

 

방법1) FPU를 이용한 인라인 어셈코드입니다.

 

int fastf2i_round(float f)
{
#ifdef _WIN32
 int i;
 __asm
 {
  fld  f
  fistp i
 }
 return i;
#else
 return (int)(f + 0.5f);
#endif 
}

 

장점 : 가장 빠릅니다.

단점 : 반올림이 됩니다. 따라서 int a = int(1234.56f) 와 같은 값이 안 나온다는 것입니다. 반올림되어서 1235가 나옵니다.

 

방법2) 역시 FPU를 이용한 인라인 어셈코드이지만 반올림을 안하도록 약간의 조정을 합니다.

 

int fastf2i(float fValue)
{
#ifdef _WIN32
 static const float round_to_nearest = -0.499999f;

    int iValue;
    __asm 
 {
  fld  fValue
  fadd round_to_nearest
  fistp iValue
 }
    return iValue;
#else
    return (int)fValue;
#endif
}


장점 : 역시 방법1과 흡사하게 빠릅니다.

단점 : 방법1에서 반올림이 안되도록 반올림값을 빼주고 있습니다만 0.9999999f식의 값이 들어오면 역시 반올림됩니다. 물론 round_to_nearest 를 약간 상황에 맞게 수정하면 되는 것입니다만 약간 찝찝한 것 사실입니다.

 

 

방법3) int변환을 그대로 인라인 어셈화 하였습니다.

 

int Float2Int( float a )
{
#ifdef _WIN32
 int CtrlwdHolder;
 int CtrlwdSetter;
 int RetVal;
 __asm 
 {
  fld    a     // push 'a' onto the FP stack
  fnstcw CtrlwdHolder   // store FPU control word
  movzx  eax, CtrlwdHolder // move and zero extend word into eax
  and    eax, 0xFFFFF3FF  // set all bits except rounding bits to 1
  or     eax, 0x00000C00  // set rounding mode bits to round down
  mov    CtrlwdSetter, eax // Prepare to set the rounding mode -- prepare to enter plaid!
  fldcw  CtrlwdSetter   // Entering plaid!
  fistp  RetVal    // Store and converted (to int) result
  fldcw  CtrlwdHolder   // Restore control word
 }
 return RetVal;
#else
 return (int)a;
#endif 
}

 

장점 : 일반 int형변환과 정확히 일치합니다.

단점 : 그다지 많이 빠르지 않네요.

 

방법4) Game Programming Gems2 chapter 2.1에 Yossarian King씨가 작성한 방법입니다.

 

typedef union
{
    int     i;          // as integer
    float   f;          // as float
    struct              // as bit fields
    {
        unsigned int    sign:1;
        unsigned int    biasedexponent:8;
        unsigned int    significand;
    } bits;
} INTORFLOAT;


INTORFLOAT  FTOIBIAS = {((23 - 0 + 127) << 23) + (1 << 22)};

 

int f2i(float f) 
{
 INTORFLOAT ftmp;
 ftmp.f = f;
 ftmp.f += FTOIBIAS.f;
 ftmp.i -= FTOIBIAS.i;
 return ftmp.i; 
}

 

장점 : FPU모드에 따라 일반적으로 일반 int형변환과 정확히 일치합니다.

단점 : float의 값이 2의 23승(8388608)보다 작아야 합니다. 또한, FPU모드가 Chopping이 아닌 경우. 예를 들면 위의 fastf2i_round나 fastf2i와 같이 사용하면 안됩니다. fastf2i_round나 fastf2i는 FPU모드를 반올림모드로 사용하는데, f2i함수는 FPU모드를 따로 설정하지 않기 때문에 현재 FPU모드 그대로 변환을 시도합니다. (FPU모드는 위의 참고를 보시기 바랍니다)

 

결론) 복잡하시죠? ^^

반올림이 상관없을 때는 fastf2i_round를 사용하세요.

일반 int형변환과 같이 같은 값이 나오기를 바라신다면 fastf2i나 Float2Int를 사용하세요.


출처 :  http://cafe.naver.com/jzsdn/11238

반응형
Posted by blueasa
, |

안녕하세요. 파코즌 원정상입니다.

금일 회사에 불법소프트웨어 단속이 들이 닥쳤습니다. ㅠㅠ

본의 아니게 사용하고 있는 불법 소프트웨어가 있을수도 있고, 자의에 의해서 사용하는 프로그램도 있을수 있습니다.

가끔 라이선스를 교묘하게 해놔, 기업의 개인사용자(?)들이 알게 모르게 불법을 사용하게끔 조장하는일이 있어(타의든 자의든) 오늘 이렇게 정리해 보았습니다.

(이 사이트에도 무료 프로그램 정리된것이 많은데, 개인과 기업 사용자들의 구분이 쉽지가 않아, 이렇게 기업용도 가능한 소프트웨어만 따로 모아봤습니다.)

아래 프로그램들은

개인뿐 아니라 기업에서까지 무료로 사용이 가능합니다.


오피스 프로그램

오픈오피스 : http://www.openoffice.org/

홈페이지 내용발췌 : OpenOffice.org uses the LGPL (GNU Lesser General Public License). For documentation and website content not intended to be included in the product, we use the Public Documentation License (PDL). Our License page provides more information on our licenses and on our policies regarding the application of those licenses. As well, our we have several FAQs dealing with licensing.

Telnet 프로그램


테라텀 : http://ttssh2.sourceforge.jp/

홈페이지 내용발췌 : TeraTerm Project would have been developed terminal emulator "Tera Term" and SSH module "TTSSH".

This software is open source software under BSD License.

PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/

홈페이지 내용발췌 : The PuTTY executables and source code are distributed under the MIT licence, which is similar in effect to the BSD licence.
 

압축 프로그램

빵집 : http://www.bkyang.com/

홈페이지 내용발췌 : 빵집은 개인, 기업, 학교, 피씨방, 관공서등 누구나 무료로 사용하실 수 있습니다.

7-zip : http://www.7-zip.org/

홈페이지 내용발췌 : 7-Zip is open source software. Most of the source code is under the GNU LGPL license.

밤톨이 : http://www.bamtory.com/new/main/main.asp
홈페이지 내용발췌 : 본 프로그램은 프리웨어로 개인/가정/사무/ 기업/관공서 등 어느곳에서나 아무런 제약없이 사용이 가능합니다.

다집 : http://datools.kr/

홈페이지 내용발췌 : 다씨(DaSee), 다집(DaZip), 다FTP(DaFTP)는 언제, 어디서, 누구나 기업체/관공서 상관없이 모든 사람이 무료로 사용할 수 있는 프리웨어입니다.
 

FTP 프로그램

파일질라 : http://filezilla-project.org/

오픈소스 진영에서 만들고 있는 강력하고, 빠르고, 좋은 프로그램~

다FTP : http://datools.kr/

홈페이지 내용발췌 : 다씨(DaSee), 다집(DaZip), 다FTP(DaFTP)는 언제, 어디서, 누구나 기업체/관공서 상관없이 모든 사람이 무료로 사용할 수 있는 프리웨어입니다.
 

에디트 프로그램

Notepad++ : http://notepad-plus.sourceforge.net/uk/site.htm
홈페이지 내용발췌 : Notepad++ is a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.

ACROEDIT : http://www.acrosoft.pe.kr

홈페이지 내용발췌 :

AcroEdit는 지금도 개발중이며 전문 텍스트 에디터를 표방하여 지속적으로 성능 향상을 위하여 노력하고 있습니다.

AcroEdit는 공개 프로그램이기 때문에 개인, 직장, 공공기관등 어디에서든 누구든지 사용하실 수 있습니다.

Desy Edit : http://www.desyedit.com/

홈페이지 내용발췌 :

DesyEdit를 'Funcware'라 제창합니다.

'Funcware'란 DesyEdit의 개발자가 직접 만든말로써, Freely Use No Complain의 첫머리글자만을 따서 만든 말 입니다.

말 그대로 누구나 사용할 수 있지만, 어떠한 불평도 하지 않는다는 뜻입니다.

그러나 사용자 여러분의 관심에서 나오는 질타는 달게 받겠습니다
 

CD버닝 프로그램

CDBurnerXP : http://www.cdburnerxp.se/

홈페이지 내용발췌 : Everyone, even companies, can use it for free.

InfraRecorder : http://sourceforge.net/projects/infrarecorder/

홈페이지 내용발췌 : License : GNU General Public License (GPL)


가상 드라이브 프로그램

Gizmo : http://arainia.com/software/gizmo/

프로그램 -> Help -> Documentation

: Gizmo is Freeware and is made avilable for commercial and personal use at absolutlely no cost whatsoever.
 

그래픽 툴 프로그램

GIMP : http://www.gimp.org

홈페이지 내용 발췌 : GIMP is an acronym for GNU Image Manipulation Program.

Paint.net : http://www.getpaint.net/

홈페이지 내용 발췌 :
Q: Can I use Paint.NET for business, commercial, or government use? Or is it only free for "personal" use?
A: Yes -- Paint.NET is free for all uses including personal, business, commercial, government, and school. There has been some confusion lately around the license and its seemingly hybrid MIT / Creative Commons status. Rest assured that you really only have to dive deeper into the legalities of the license if you are planning to do something such as distributing a modified version of Paint.NET. Usually this involves downloading the source code, or disassembling / decompiling stuff. If you're just installing and using Paint.NET, then there's really no need to worry about that.

사진편집 프로그램

포토스케이프 : http://photoscape.co.kr/ps/main/index.php

홈페이지 내용 발췌 : 포토스케이프는 집,회사,학교,학원에서 모두 무료입니다.


이미지 뷰어 프로그램

다씨 : http://datools.kr/

홈페이지 내용발췌 : 다씨(DaSee), 다집(DaZip), 다FTP(DaFTP)는 언제, 어디서, 누구나 기업체/관공서 상관없이 모든 사람이 무료로 사용할 수 있는 프리웨어입니다.

꿀뷰 : http://www.kipple.pe.kr/win/honeyview3
홈페이지 내용 발췌 : 꿀뷰3는 기업이나 관공서/법인/학교/게임방/무인도 등에서 맘대로 설치해서 사용 가능한 프로그램 입니다. (소프트웨어 불법 사용 단속에 걸리지 않는다는 의미)


아무쪼록 이 글 보시고, 회사 전산담당자와 상의하여 [소잃고 외양간 고치는일] 없이,

미리 미리 준비하여 주시기 바랍니다.

읽어주셔서 감사합니다.


출처 :  http://www.parkoz.com/zboard/view.php?id=my_tips&page=1&page_num=50&select_arrange=headnum&desc=asc&sn=off&ss=on&sc=off&divpage=3&keyword=&no=12886&category=&show=all

반응형
Posted by blueasa
, |

1. 개요

오브잭트 자원관리를 하다보면 오브잭트가 죽거나 더이상 어떤이유로 필요없어질 경우에 리스트에서 제거를 하려면 순회도중 죽었는지 검사해서 루프를 도는 도중 삭제를 해야한다.

 

2. 구현

it = list1.begin();
while(it != list1.end())
{
    if(*it == 죽었나?) list1.erase(it++);
    else ++it;	 	   
}
3.원리
원리는 먼저 it값이 erase()로 복사되어 넘어가고, 
it++가 실행되고, 마지막으로 erase()로 넘어간 복사된 it이 할 일을 마치고 무효화됨. 



[출처]
stl list 순회도중 삭제하기|작성자 도플광어
반응형
Posted by blueasa
, |