분류 전체보기
-
C# 에서는 순환 참조 문제를 어떻게 해결할까프로그래밍/잡지식 2017. 9. 1. 00:29
순환참조에 의한 메모리 릭이란?shared_ptr과 같은 레퍼런스 카운팅 방식의 메모리 핸들링에서 발생. 서로다른 객체 a,b가 서로 참조하고 있을 때 각각 서로에 대한 reference count가 1이라 자동으로 지워지지 않은 상황. c++에서는 한쪽을 weak_ptr을 사용해 방지. C#의 Garbage Collection 참조 : https://www.red-gate.com/simple-talk/dotnet/.net-framework/understanding-garbage-collection-in-.net/c#에서는 일정한 크기의 메모리(Managed memory)를 미리 잡아 놓고, 그 안에서 객체가 생성 될 때마다 차례로 메모리를 할당한다. 할당하다가 Managed memory가 꽉찬 경우 G..
-
Google Play Login 구현 과정프로그래밍/잡지식 2016. 11. 21. 21:09
Google Play Login 구현 과정및 문서 보완 기본적으로 다음 문서를 따라간다.https://github.com/playgameservices/play-games-plugin-for-unity구글 개발자 콘솔에 게임 등록.SHA1 인증서 지문 파일을 만드는 곳에서 cmd명령어가 무슨의미인지 몰라 막힘.https://developers.google.com/places/android-api/signup?hl=ko 를 참고함.리소스 코드를 얻는 부분이 achivement나 leaderboard를 만들지 않은 경우에는 하지않아도 되는 것 처럼 보이나, app_id를 얻기 위해 반드시 만들어야 한다.리소스 코드에는 app_id, package_name, achivement 정보가 들어있는데, 이중 app..
-
visual studio에서 동적, 정적 라이브러리 만들기프로그래밍/잡지식 2016. 4. 30. 19:57
동적, 정적 라이브러리를 만드는 기본적인 방식을 설명하고, 외부에서 사용하기 쉽게 프로젝트를 정리하는 법에 대해 말하겠다. 1. 동적 라이브러리 동적 라이브러리 생성의 기본적인 것은 이분이 잘 정리를 해 놓으셨다.http://exportidea.blogspot.kr/2013/08/windows-dll.html 2. 정적 라이브러리 동적 라이브러리와 달리 정적 라이브러리는 할일이 거의 없다. 헤더파일과 cpp파일만 있으면 충분하다.간단하게 짜면 다음과같다. //BasicOperation.h namespace Math { class BasicOperation {public:inline static int Plus(int n1, int n2) { return n1 + n2; };inline static int..
-
visual studio에서 동적, 정적 라이브러리 사용프로그래밍/잡지식 2016. 4. 30. 19:35
1. DLL dll을 사용하려면 헤더파일, lib파일, dll파일 세가지가 필요하다. 먼저 다운받은 라이브러리의 include 폴더의 경로를 다음과같이 포함(include) 디렉터리에 넣는다.*이것을 하지 않으면 라이브러리의 헤더를 include할 수가 없다. 그 다음 lib 파일이 들어있는 경로를 링커 -> 일반의 추가 라이브러리 디렉터리에 지정한다.*lib 파일은 우리가 DLL 내부에서 선언/정의된 심볼을 사용하여 다른 바이너리를 빌드할 수 있도록 해주는 일종의 심볼 사전이다. 링커 -> 입력 -> 추가종속성 에 쓸 lib파일을 기입한다. 이때 디버그, 릴리즈는 각각 지정해주어야하므로 유의 하자. 마지막으로 dll파일을 프로젝트 폴더에 복사해서 붙여넣는다. dll은 크기가 작은 대신, 빌드시 동적으로..
-
1. 비주얼 스튜디오에 DirectX 11 세팅하기.Graphics/DirectX 2016. 4. 15. 00:43
이 글은 http://www.rastertek.com/dx11s2tut01.html의 글을 번역한 것입니다. 그래픽스 코딩을 시작하기에 앞서, 툴들이 필요합니다. 첫번째는 좋은 컴파일러인데, 제가 사용하고, 프로젝트 파일들을 제공하는 것은 Visual Studio 2015입니다. 이 외에도 좋은 것들은 많으니 원하는 것을 선택하시기 바랍니다. Visual Studio 2015를 설치할 대는 반드시 커스텀 옵션을 선택하여, Visual C++ 컴포넌트들이 모두 설치되도록 하기바랍니다. 그렇지 않으면 C# 개발용으로 설치될테니까요. 두번째는 Windows 10 SDK입니다. Windows 10 SDK는 DirectX 11 응용프로그램을 만들기 위해 필요한 모든 DirectX 11 헤더, 라이브러리, DLL ..
-
GeoJSON데이터로 지도 그리기(1)프로그래밍/D3.js 2016. 4. 14. 22:18
1. d3로 지도를 그리기 위해서는 다음 형식중 하나를 사용해야한다. TopoJSONShapelyColorBrewer PostGIS 이중 여기서는 GeoJSON을 쓸것이다. GeoJSON이란 JSON포맷 중 지형 데이터를 저장하기에 적합한 형식이다.https://geojson-maps.kyd.com.au/ 와 같은 곳에서 데이터를 얻을 수 있다. 2. 데이터를 얻었다면 다음과같은 코드로 간단히 흑백 지도를 그릴 수 있다. d3.json("./custom.geo.json", function(json){ var w = 1000; var h = 500; var projection = d3.geo.azimuthalEqualArea().translate([w/2,h/2]); var path = d3.geo.pat..
-
항목 3. decltype의 작동 방식을 숙지하라.프로그래밍/Modern Effective c++ 2016. 3. 28. 15:14
decltype는 주어진 이름이나 표현식의 형식을 알려준다.대부분 다음과같이 예측한 대로 형식을 말해준다. const int i = 0; // decltype(i) : const intbool f(const Widget& w); // decltype(w) : const Widget& // decltype(f) : bool(const Widget&) struct Point { // decltype(Point::x) : int int x, y; // decltype(Point::y) : int}; Widget w; // decltype(w) : Widget if(f(w)); // decltype(f(w)) : bool templateclass vector {public: ... T& operator[] (s..