본문 바로가기

지식

응용 프로그램 구성이 올바르지 않기 때문에 이 응용프로그램을 시작하지 못했습니다. 이 문제를 해결하려면 응용 프로그램을 다시 설치하십시오 응용 프로그램 구성이 올바르지 않기 때문에 이 응용프로그램을 시작하지 못했습니다. 이 문제를 해결하려면 응용 프로그램을 다시 설치하십시오 윈도우 데모용 DB서비스 프로그램을 개발중이었다. 데모를 시연해야하는 상황이 발생하여 개발중에 다른 시스템에 데모용 프로그램을 복사하여 실행하였다. 데모용 시스템은 4년된 노트북으로써 내손으로 xp pro버젼을 설치하였다. 물론 sp2가 적용된 상태로.. 이전글에서도 같은 상황에 대한 답으로 vs2005부터 적용된 side-by-side configuration에 대한 에러로써 가장 손쉬운 방법은 vcredist_x86.exe 를 설치하는것이고 아니면 manifest 파일을 같이 복사해주는 정도인것이다. 관련글보기 그래서 콧방귀를 뀌며 룰루랄라 하였다. 허나 그것은 악.. 더보기
_T 란? 유니코드에서는 L로 처리하게끔 만든 매크로이다.. 가령 CString = "abcde" 에서 SBCS나 MBCS일 경우 CString = "abced"이나 유니코드의 경우는 CString = L"abced"로 처리될것이다 MSDN참조 These data-type mappings are defined in TCHAR.H and depend on whether the constant _UNICODE or _MBCS has been defined in your program. For related information, see Using TCHAR.H Data Types with _MBCS Code. Generic-Text Data Type Mappings Generic-text data type name S.. 더보기
플리커 openapi [flickr] 플리커 openAPI + 매쉬업 문헌정보 study 2006/08/21 14:37 http://blog.naver.com/etwas0227/60027723352 이 포스트를 보낸곳 () http://www.flickr.com/explore/ http://flickr.com/photos/tags Compare that to what you get with a Free Account: 20 MB monthly upload limit 1. 매달 20메가 무료 업로드~ 2. 태그가 잘 달려있음~ 3. openAPI 제공으로 다른 사이트와 연동하는 매쉬업기능 구현에 장점이 있음 4. '플릭커' 또는 '플리알' 이라고 읽음 5. 키워드: 태그(tag), 태깅(tagging), 폭소노미(Folkson.. 더보기
char 문자열을 utf8로 변환하기 C로 구현하려니 완전 삽질이 된듯하다. 어디서 소스를 하나 주워왔다. 물론 안에서는 구현되있기는 하지만 나는 utf8형식으로 URL을 날려줘야하기때문에 utf8형식의 텍스트 데이터가 필요해서 약간 수정해봤다. 위에 소스중에 아래 부분이 내가 수정한 부분이다. static char *make_utf8_string(const wchar_t *unicode) { int out_size = 0,size = 0, index = 0, out_index = 0; unsigned char *out; char *out_txt; unsigned short c; char buf[512]; /* first calculate the size of the target string */ c = unicode[index++]; wh.. 더보기
다중의 메모리 맵파일 사용시 주의 사항 용량이 큰 binary data를 핸들링하는데 있어서 메모리 맵파일 만큼 편리한것도 없을 것같다. 현재 이 메모리 맵파일을 이용하여 대용량 DB를 설계하고 구현중이다. 메모리 맵파일을 사용함에 있어서 몇가지 주의 사항을 남기고자 한다. ex) extern "C"__declspec(dllexport) int EXSIDB_CreateDB(char *filename, int classification, int sub_class,int db_id, unsigned int data_num = EXSIDB_DEFAULT_DATANUM) { if(data_num EXSIDB_MAXDATA) return EXSIDB_DATANUM_ERROR; FILE *fp; fp = fopen(filename,"w+b"); if(f.. 더보기
함수의 인자로 포인터 사용시 주의사항 함수의 인자로 포인터를 사용시 주의 할 사항을 몇 개 적어본다. 함수의 인자로 포인터가 사용되는 경우는 주로 메모리 관련이거자 직접 인자값을 수정할 경우인데 후자의 경우는 대부분 알고 있을터? 가령 void change_value(int value) { value = 1; } void main() { int a = 0 change_value(a); printf("a = %d",a); } 하면 필시 a는 0이다. 이럴 경우엔 void change_value(int *value) void main() { int a = 0 change_value(&a); printf("a = %d",a); } 로 해줘야 a값이 변하는것을 알 수 있다. 이런경우야 항시 배우고 쓰고있다지만 다음과 같은 경우를 생각해보자 void.. 더보기
LibEvent For Windows Bug.. 아래 예제 코드는 간단한 에코 서버다. 스트레스 툴을 만들어서 십여개의 connexction을 생성한 후 일괄 close하면 메모리에러가 발생하면서 프로그램이 종료된다. 원인은 이벤트 구조체가 잘못된듯한다.. free부분을 제거하면 이러한 에러가 사라지기는 하지만 어떻게 그럴수가 있는가 -_-;; 결국 일주일간의 노력은 모두 물거품이 되어버렸다. 일단 멀티 스레드 서버로 프로젝트는 후다닥 진행해야겠다.. struct client { struct event ev_read; struct event ev_write; int id; }; int main(int argc, char **argv) { nametag = 0; timer = 0; Initialize(); Initialize_Net(); event_in.. 더보기
libevent 윈도우 예제 #include #include //#include // for unix #include //#include // for unix #include #include #include //#include // for unix #include #include #include #define SERV_PORT 8888 struct client { struct event ev_read; }; int setnonblock(int fd) { /* // for unix int flags; flags = fcntl(fd, F_GETFL); if(flags < 0) { return flags; } flags |= O_NONBLOCK; if(fcntl(fd, F_SETFL, flags) < 0) { return -1; } */.. 더보기
LibEvent for Windows 수많은 서버 입출력 모델중에 LibEvent란걸 선택하였다. 단지 누가 알려줘서!! 장점은 unix계열의 입출력 모델인 epoll 을 windows에서 사용할 수 있게 해준것이며 이것은 windows 와 linux 두 os에서 모두 동작하는 서버를 만들어야하는 나로써는 하나의 일을 줄일 수 있는 선택인것이다. 자 먼저 소스를 다운받아보자 http://www.monkey.org/~provos/libevent/ 요기 가면 소스를 다운받을 수 있다. 하지만 windows 사용자라면 소스를 다운받아서는 안된다. 열라 다운받아서 VS2005로 열라 돌렸는대 컴파일도 안되더라... 도통 개발 환경을 알 수 가 없다더라... 메인 화면 좌측 소스 list 맨아래 화면에 보면 Libevent has been relea.. 더보기
응용 프로그램 구성이 올바르지 않기 때문에...또는 msvcr80.dll 을 찾을 수 없다 == 원인 설명 === Windows XP에서는 DLL Hell[각주]새로운 프로그램을 설치할때 다른 프로그램이 사용하는 DLL을 덮어 쓰거나 혹은 버전의 불일치로 오는 문제로 기존의 프로그램들이 제대로 동작하지 않는 경우가 있다.[/각주]을 빠져나가려고 Side-by-Side Assembly라는 개념을 만들었다. 이건 여러 버전의 DLL을 동시에 시스템에 존재할 수 있게 해주고, DLL을 사용하는 응용프로그램이 원하는 DLL 버전을 골라서 쓸 수 있도록 해주는 방법이다. SideBySideAssembly 의 강력한 점은 응용프로그램에서 직,간접적으로 로드하는 모든 DLL이 이 설정의 영향을 받는다는 것이다. 이전에는 응용프로그램이 로드한 DLL에 의해서 간접적으로 로드되는 DLL을 제어할 수 있는 방법.. 더보기