분류 전체보기
-
premake4 기본 사용 연습.툴 2012. 4. 4. 18:45
premake4 는 CMake와 같은 멀티 플랫폼 오픈소스 개발에 유용한 툴입니다. CMake는 몇번 사용법을 보긴 했지만 조금 복잡한 감이 있고.. 왠지 정이 안갔는데 premake4 를 보고나서는 친숙한 lua 를 통해 스크립트를 작성하고 간결한 편이어서 사용해보았음니다. (그리고 개인적으로 버전인 다른 IDE 간에 프로젝트 변환후 생기는 문제를 회피할 수 있어서 좋다고 생각함. 예를들면 작업을 위한 VS2008과 집에서 테스트 하기 위해 VS2010express 를 사용하는 경우라던지...)premake4 를 이용해서 만들 수 있는 프로젝트 환경은 아래와 같습니다.Microsoft Visual Studio 2002-2010, including the Express editionsGNU Make, i..
-
Windows API GetLastError 코드를 문자열로 출력하기프로그래밍/조각코드 2012. 4. 4. 14:22
다음과 같은 코드를 통해서 확인할 수 있다. void ErrorMessageBox(DWORD dwError) { LPVOID lpMsg = NULL; DWORD dwFormat = FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS; DWORD dwLanguage = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); if (!FormatMessage(dwFormat, NULL, dwError, dwLanguage, (LPTSTR)&lpMsg, 0, NULL)) { return; } MessageBox(NULL, (LPCTSTR)lpMsg, L"Error", MB_OK..
-
SQLite3 기본 사용법프로그래밍 2012. 3. 30. 12:54
SQLite3 다운로드 : http://sqlite.org/download.htmlSQLite3 라이센스 : Public Domain 기본적으로 다운로드 받은 소스에서 sqlite3.c / sqlite3.h / sqlite3ext.h 만 프로젝트에 포함시키면 SQLite3 를 사용할 수 있다. SQLite3 의 장점. 작고, 설정 필요 없이 사용가능하고, 단일 파일에 모든 내용이 저장되며, 여러 플랫폼에서 하나의 db 파일을 사용할 수 있다. SQLite3 를 통해 작업중인 맵에디터에 리소스 관리 부분을 붙여보기 위해서 사용법을 익히는중..(@_@b) #include #include #include "sqlite3/sqlite3.h" static int callback(void* notUse, int a..
-
(임시) 의존성 문제였나!? 그 결과와 얻은 내용 정리.프로그래밍 2012. 3. 21. 14:09
재배포 패키지 버전 문제 발생시 - '응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다. 이 문제를 해결하려면 응용 프로그램을 다시 설치하십시오.' 위와 같은 에러와 함께 실행이 되지 않습니다. - 기타 에러 혹은 Microsoft Virtual PC등에서 바로 죽어 버리는 문제 혹은 잘못된 주소를 참조 했다거나... 예외가 발생했다는 에러는 프로그램의 오류 가능성이 높다. 이때에는 release 빌드에 *.pdb 파일을 같은 폴더에 넣고 디버그 해보면 어느 함수에서 죽었는지 알 수 있다. ( 비주얼 스튜디오가 깔려 있다면... 없는 경우에는 콜스텍을 덤프해주도록 처리하면 문제가 없겠다. ) ---------------------------------------------..
-
스마트한 재배포를 위한 한수... 라기 보다는 메모 ㅠㅠ프로그래밍 2012. 3. 21. 01:02
비주얼 스튜디오를 통한 툴 혹은 게임등을 제작한뒤 개발자 컴퓨터에서 아무런 문제 없이 동작하던 프로그램이 테스트를 위해 복사 혹은 설치형태로 프로그램을 배포한뒤 만나게 되는 문제가 바로 재배포 문제인데요... 이전에 어렵사리 맞춰놓은 재배포 패키지로 작업하던 툴이 시간이 흐른뒤 수정작업을 하고나니 다른 컴퓨터에서 실행이 되지 않는다고하면.. 엄청난 스트래스가!! 아무튼 아직도 고민중인 내용이지만 일단 이전 내용과 지금 찾아서 테스트 하는 내용을 정리 해본다. 1. 외부 라이브러리의 경우 항상 같은 컴파일 옵션 유지. 2. 특정 버전(최신 현재 개발 컴퓨터에 깔린 최신 버전을 말함)의 재배포 프로그램을 사용하도록 강제하는 define 이 있다. #define _BIND_TO_CURRENT_CRT_VERSI..
-
[ecere] 요약...게임 프로그래밍/[엔진] 오픈소스 2012. 3. 13. 11:58
DevMaster.net 피드를 통해서 알게 된 엔진. 멀티 플랫폼 기반에 BSD 라이센스 적용. IDE, eC(객체지향 C 정도 된다고 함) eC 는 스크립트가 아니라 네이티브라고 함. IDE, SDK 를 eC 로 개발했고 c 와 링크도 된다고 함. eC sharp 라고 하는것도 언뜻 본것 같긴한데 일단 간략한 소스를 보니 너무 씸플해 보임. 소스를 구할 수 있는곳은 대부분 오픈소스 프로젝트를 호스팅 하는 곳에서는 다 구할 수 있는듯 너무 많음; 국민 예제.. class HelloApp : Application { void Main() { PrintLn("Hello, World!!"); } } gui 코드도 살짝 살펴보면.. // ecas -- By Joey Adams import "ecere" imp..
-
빌드 버전 생성 임시코드프로그래밍/조각코드 2012. 2. 29. 21:30
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include char szComputerName[17] = {0,}; char szUserName[17] = {0,}; void main() { const char* dat_file = "prebuild.dat"; const char* build_file = "build.h"; FILE* fp = NULL; fp = fopen( dat_file, "rb" ); if ( NULL == fp ) { int init_build = 0; fp = fopen( dat_file, "wb" ); fwrite(&init_build, sizeof(int), 1, fp); fclose( fp ); fp = fope..