본문 바로가기

C#24

VS2010 프로젝트속성 디렉토리 한방에추가하기 %appdata% 가서local\microsoft\msbuild 여기 가서v4.0 인가 있을거그 안에 props 파일 있는데32비트 64비트각각 설정해주면 됨 $(ExecutablePath) $(IncludePath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;C:\Program Files\boost\boost_1_53_0_x86; $(ReferencePath) $(LibraryPath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86;C:\Program Files\boost\boost_1_53_0_x86\lib; $(SourcePath) $(ExcludePath).. 2013. 6. 18.
C# DllImport 사용하기 Dll 파일을 Import하기 위해서는 아래와 같은 사항을 참조해야한다. using System.Runtime.InteropServices; 이를 참조하면 아래와 같이 DllImport를 사용하는 것이 가능해진다. [DllImport("DllTest.dll")]public static extern int TestFunc(int a, int b); 위의 코드는 메서드선언(혹은 구현)과 같은 레벨에서 이루어져야 한다.이렇게 Dll을 import 하고 Dll의 메서드를 extern을 통해 선언한다. 이제 Dll에 있는 메서드를 사용할 준비가 됐다. 하지만 VS2010에서는 이 상태에서 빌드를 할 경우 런타임에서 다음과 같은 오류가 발생한다. "Managed Debugging Assistant 'LoaderLo.. 2013. 6. 5.
C# 시간을 Tick으로 변환 또는 Tick을 시간형태로 변환 System.TimeSpan tspan = System.TimeSpan.FromTicks(DateTime.Now.Ticks); long curTime = (long)tspan.TotalSeconds; string time = curTime.ToString(); MessageBox.Show(time); DateTime dt; TimeSpan tSpan; long curTimes; long.TryParse(time, out curTimes); tSpan = TimeSpan.FromSeconds(curTimes); dt = new DateTime(tSpan.Ticks); MessageBox.Show(dt.ToString()); 2013. 6. 3.
C# DateTime.Parse DateTime.Parse supports many formats. It is versatile. It can provoke a FormatException. We see examples of parsing formatted date and time strings, with examples from databases and Internet sources.DateTimeExampleFirst we see that DateTime.Parse is a static method that you can call without using a DateTime instance. It returns a new DateTime instance, which is represented as a struct. If you pr.. 2013. 6. 1.
C# Tick Count사용해서 성능테스트하기 VS2008에서 제공해주는 분석 ->성능마법사는 뭔가 어려워서... 원리는 System함수인 TickCount를 호출 하여 해당 함수를 수행하는데 걸린 시간을 알아봐서 어느 곳이 잘못 되었는지 알아내는 함수 public class TestElapsedTime { [DllImport("kernel32.dll")] public static extern uint GetTickCount(); uint uStartTick; uint uStopTick; public void SetStart() { uStartTick = GetTickCount(); } public void SetEnd(string strName) { uStopTick = GetTickCount(); string elapsedTime = Conver.. 2013. 5. 28.
C# Time 실제시간->현재 리얼타임 시간을 받아와서 뿌림타이머시간->처음에만 리얼타임시간을 받고 1초마다 초를 증가시켜줌 컴퓨터성능에따라, 멀티프로그래밍갯수(시스템이 바쁨에따라)에 따라 타이머시간이 누락될수도있다.처음엔 실제시간과 타이머시간이 같지만 시간의 지남에 따라실제시간과 타이머시간이 차이나게된다. 시스템이 굉장히 바쁠 때는 타이머가 정확한 주기대로 발생하지 않으므로 이렇게 만들면 시계가 금방 느려진다.타이머 이벤트는 작업을 해야 할 적당한 시점을 대충 알려줄 뿐이다. --소스--using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.. 2013. 5. 28.
SQRT의 최적화 속도가 느린 sqrt를 다양한 알고리즘으로 구현하여 테스트해 보았습니다. 1) ASMsqrt : FPU를 이용한 어셈코드__forceinline float ASMsqrt(float src) // FPU { float t; _asm { fld src; fsqrt; fstp t; } return t; } 2) fSQRT : GPG 책에 나오는 알고르즘#define SQRTTABLESIZE 256 /* Note: code below assumes this is 256. */ unsigned int ZSQRTTABLE[SQRTTABLESIZE] = { 531980127, 532026288, 532072271, 532118079, 532163712, 532209174, 532254465, 532299589, 53.. 2013. 5. 21.
보간 안녕하세요오늘은 선형보간법에 대해 알아보도록 하겠습니다.선형 보간법이란 위와 같이 시작 점과 끝 점이 있을때시작점을 0 으로 놓고 끝점을 1로 놓아 그 사이의 점들을 실수값으로 보간처리 하는것을 말합니다. 이렇게 2개의 점을 보간 처리 하면 0부터 1사이에는 셀수 없는 점들이 존재 하게 됩니다. 이러한 것을 수식으로 나타내면g(t) = y0 * (1.0 - t)+ y1*t;와 같으며 여기서 t는 시간을 나타내고y0 은 시작점 ,y1 은 끝점 g(t) 는 시간에 따른 위치 값이 되겠습니다.이러한 공식을 사용해서 원하는 보간된 결과값 = 시작값* (1.0 - 알고자하는 상대값) + 끝값 * 알고자하는 상대값;을 해주면 됩니다 이제 이러한 수식을 이용해서 게임에 적용시키는 예제를 들어보도록 하겠습니다.게임에서.. 2013. 5. 14.
C# 가비지컬렉터와 가비지컬렉션 흔히 닷넷기반의 환경을 관리되는(Managed) 환경으로 부르곤 한다. 그렇다면 도대체 무엇이 관리가 된다는 것인가? 그 관리의 주체는 바로 메모리이다. 이전 Native 시대에는 메모리를 할당하고 해제하는 부분을 개발자가 직접 처리하였지만 닷넷은 그 부분을 자동으로 관리해주는 것이다. 닷넷이 관리되는 환경의 수행이 가능할 수 있는 것은 바로 “가비지 컬렉터(Garbage Collector)”가 닷넷에 존재하기 때문이다. 관리환경의 장점을 최대한 활용하고 사용하기 위해서는 가비지 컬렉터에 대해서 잘 알아 두어야 하고 동작원리를 파악하고 있어야 한다. 필자는 가비지 컬렉터의 원리에 대한 내용을 2002년도 “Chappell의 .NET 여행”이라는 책에서 처음 접했었고, 이 내용은 닷넷의 메모리 관리를 이해.. 2013. 5. 14.