본문 바로가기

C15

MySQL C++ Connection Pool MySQL Connector C++ Database Connection PoolAim The aim of this bit of code is to implement a MySQL connector C++ Database Pool in Windows. A Database pool is normally used by applications to speed up the process of getting a Connection. For an introduction to using MySQL Connector C++ see MySQL Connector C++ Example - Windows cl.exe (VC++). If you'd like to see this in DBPool implemented for Or.. 2014. 10. 8.
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++ 에서 ini 파일 사용하기 1. INI 파일이란... 간단히 말하면 응용 프로그램이 실행될 때 필요한 초기화 정보를 담고있는 파일 (INItialization file) 이다. 16 bit 윈도우즈 응용 프로그램들은 대부분 실행파일명과 동일한 이름을 가진 INI 파일을 가지고 있으며 윈도우즈 자신도 win.ini 라는 초기화 파일을 가지고 있다. 아스키 파일이므로 일반 텍스트 편집기로 쉽게 내용을 확인할 수 있고 그 속에 담긴 정보의 의미를 정확히 이해할 수 있는 경우라면 간단히 수정할 수도 있다. 보통 윈도우즈 디렉토리나 응용 프로그램이 설치된 디렉토리에 존재한다. 2. INI 파일에는 무엇을 기록하는가? 꼭 무엇을 기록해야 하는가는 중요치 않다. 프로그래머가 필요하다고 생각되는 정보는 무엇이든 기록할 수 있다. 일반적으로는 최.. 2013. 6. 5.
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.
unresolved external symbol이 생기는 이유 http://blog.naver.com/sainthkh/140074257990 프로그래밍 하다가 제일 난감한 경우 중에 하나가 unresolved external symbol이라는 메세지를 만났을 때입니다. 다른 에러들은 F4나 더블 클릭으로 해당 위치로 이동을 해 주는 친절함을 보여주는 반면, 도대체 이 에러는 찾아 주지도 않는 매우 불성실함을 보이기 때문입니다. 그러면 이 메세지가 어떤 때 등장하는지 알아보겠습니다. 이 메세지가 생기는 근본적인 이유는 선언을 하고 정의를 하지 않았기 때문입니다. 세가지 경우를 보겠습니다. 1. 전역 함수 선언을 하고 정의하지 않은 경우. foo.h--------------------------------------------------------------------.. 2013. 5. 14.
C 파일입출력 http://blog.naver.com/ree31206/46429116파일 입.출력 파일 입.출력은 앞으로도 매우 중요하게 쓰이는 부분이다.어떤 파일로부터 데이터를 읽어들이고 또 데이터를 어떤 파일에 저장하는 것을 말한다. 데이터 저장과 불러오기 기능을 구현한것읽기 / 쓰기 전용 , 읽기 / 쓰기 혼합 모드 기능파일을 열고 닫는 작업이 쌍으로 존재한다. [파일 오픈] * FILE *fopen(const char *filename, const char *mode) ; // 성공시 해당파일의 포인터. 실패시 NULL 포인터 리턴 - filename : 문자형 포인터로 사용할 파일 이름을 지정- mode : 파일에 대한 접근 방식- 리턴값 : open 한 파일을 가리키는 파일 포인터 mode 에는 기본적으로 .. 2013. 5. 14.
C++ 클래스에서 사용되는 static 멤버 변수및 함수 http://cafe.naver.com/pplus/187static 멤버 변수를 이해하기 위해서 먼저 알아야 하는 개념은 일반 static 변수이다.다음 코드는 함수 내에서 static을 선언하는 경우이다. 이 것이 우선 이해가 되어야 클래스에서 사용되는static을 이해할 수 있을 것이다. // 첫 번째 예제#include void func1( void ) { static int count = 0; printf( "%d \\n", ++count ); } void main( void ) { func1(); // count = 9; , 컴파일 에러, func1()의 지역 변수에 접근이 불가능 func1(); } 위 코드를 실행하면 결과는 다음과 같다. count = 1 count = 2 위 코드를 설명하자.. 2013. 5. 14.
스마트 포인터 http://process3.blog.me/20026509730 오늘은 블로그를 오래간만에 블로그를 씁니다. 솔직하게는 귀차니즘에 빠져서 블로그 업데이트를 하지 못했습니다.(변명이지만... 날씨가 너무 떠와서^^;;;) 그리고 KBS 독립영화관이라는 사이트에서 신카이 마코토 감독의 '별의 목소리'를 1주일동안 무료 상영합니다. 기회 되시는 분들은 꼭 보세요. 이 애니메이션은 SF 애니메이션을 감수성있게 각색하는 감독의 능력을 볼수가 있습니다. [ 스마트 포인터 ] 1) 일반적으로 우리가 사용하는 포인터는 아래와 같다. char *a = new char[10]...//Do Something...delete a;a = NULL; 메모리 생성후 삭제를 꼭 코드로 직접 해주어야 한다. 2) COM 기반으로 참조.. 2013. 5. 14.
WSAAsyncSelect 사용하기 WSAAsyncSelect 모델WSAAsyncSelect() 함수가 핵심적인 역할을 한다는 뜻에서 붙인 이름이 모델을 사용하면 윈도우 메시지 형태로 소켓과 관련된 네트워크 이벤트를 처리할 수 있다. 모든 소켓과 관련 메시지는 하나의 윈도우, 즉 하나의 윈도우 프로시저로 전달되므로 멀티스레드를 사용하지 않고도여러 소켓을 처리 할 수 있다.입출력 절차1) WSAAsyncSelect() 함수를 이용하여 소켓을 위한 윈도우 메시지와 처리할 네트워크 이벤트를 등록한다. ex) 소켓을 통해 데이터를 보내거나 받을 수 있는 상황이 되면 특정 윈도우 메시지로 알려달라는 내용을 등록한다.2) 등록한 네트워크 이벤트가 발생하면 윈도우 메시지가 발생하고 윈도우 프로시저가 호출된다.3) 윈도우 프로시저에서는 받은 메시지의 종.. 2013. 5. 14.