이전에 DllMain이 왜 안되었을까...살펴보니 그이유가.. DllMain안에다가 전역변수를 그대로 카피n페이스트하다가 int g_nWindowSize = 10;을 그대로 복사해버렸던 것이다-_-;; DllMain은 제대로 되는건데 내 실수가 잠시 DllMain을 회피하게 만들었다;;그럼 초기화와 해제를 하기 위해 DllMain에 대해 한번 알아보자.. 먼저 MSDN에 있는 내용..이것만 읽어도 충분히 활용할 수 있다. DllMain The DllMain function is an optional entry point into a dynamic-link library (DLL). If the function is used, it is called by the system when processes an..
뭐, 대단한 거에 대한 생각은 아니고 그냥 어떻게 하면 좀 더 DLL을 편하게 쓸까... 이 고민을 조금 해봤다.. 일단 확장형DLL은 클래스가 지원이 되지만 일반 DLL은 안된다는 점에서 DLL내에서 값을 유지하려면 전역변수를 쓰는 고통을 남겨야할 듯 하다... 일단은 눈물을 머금고 전역변수를 쓰지만, 대안이 있을 듯 하다..나중에 찾아보자.. 뭐, 전역 변수도 될지는 아직 모르겠다...한번 테스트 해보자.. std::vector g_vecData; int g_nWindowSize; int g_nDataSize; extern "C" __declspec(dllexport) int AddDataToPreprocessor(float* inputData , int dataSize); int AddDataToP..
이번엔 명시적 호출을 해보자... 역시 위키피디아 페이지에 있는 내용 중... C and C++#include #include // DLL function signature typedef double (*importFunction)(double, double); int main(int argc, char **argv) { importFunction addNumbers; double result; // Load DLL file HINSTANCE hinstLib = LoadLibrary("Example.dll"); if (hinstLib == NULL) { printf("ERROR: unable to load DLL\n"); return 1; } // Get function pointer addNumbers..
이전에 개요에서 읽어보면 묵시적 링크와 명시적 링크가 되어있는데.. 나의 성격상 명시적 링크로 라이브러리를 제공해줘야 속시원하다-_- 여튼 LoadLibrary를 통해서 직접 해보록 해야겠다.. 테스트는 SensorMonitoring에서 하는 부분 중.. OnInitDialog에 때려 넣는 걸로 테스트 해보고자 한다.. 그럼 일단 다시 위키피디아 페이지에서 import하는 부분... C and C++ Make sure you include Example.lib file(assuming that Example.dll is generated) in the project (Add Existing Item option for Project!)before static linking. The file Example..
뭐부터 할까... dll을 만들기 전에 가장 막막했던게 수 많은 프로젝트 중에서 어떤걸 만들어야할까.. dll도 MFC dll activex dll 등 참 많기도 하다... 그런데 dll 생성하는건 프로젝트 설정에서도 해줄 수 있으니 고민하지 말고 디버깅하기 편한, 익숙한 win32 console application으로 만들자.. 그리고 일단 사용하려고하는 함수를 정의해야겠다.. 데이터 smoothing을 위한 함수... int Smoothing(float* inputData , int dataSize , float* &smoothingData , int& resultSize , int smoothingType) 로 일단 간단하게 정의해보자... 그럼 DLL로 만드는 소스 안에서는 어떻게 해야하나.....
여기저기서 활용할 수 있는 전처리 모듈을 만들어야한다길래 lib 을 할가 dll을 할까 하다가 이번 기회에 dll의 사용법을 익혀보고자~ dll을 해보기로 했다.. dll에 대한 개요는 간단하게 살펴 봤고 이제는 실제적으로 어떠한 식으로 만들 수 있는지 살펴봐야할 것이다.. 위키 피디아에 있는 내용들 만으로도 충분히 참고할만한것 같다.. http://en.wikipedia.org/wiki/Dynamic-link_library 그 외에는 LoadLibrary 라던가 함수 포인터 가져오는 부분은 차츰 알아가면 될 것 같다.
DLL용 함수 선언 __declspec(속성) 선언 이 키워드는 Microsoft의 Visual C++에서 함수나 변수의 선언에 별도의 정보를 제공하기 위해 사용하는 것이다. 다음과 같은 속성이 사용될 수 있다. thread: Thread Local Storage 데이터를 말하며, 이 지정자가 붙은 함수는 해당 스레드에서만 사용할 수 있다. naked: 함수에서 접두어 접미어를 생성하지 않는다. dllimport: DLL에 있는 데이터, 오브젝트, 함수를 임포트 한다. dllexport: DLL에 있는 데이터, 오브젝트, 함수를 익스포트 한다. 함수를 선언할 때 dllexport로 선언하면, DEF 파일의 Exports란에 이 함수를 명시하지 않아도 되며, __export 키워드를 대신한다. extern..
- Total
- Today
- Yesterday
- gre
- ny-school
- 안드로이드 앱 개발 기초
- 탐론 17-50
- 뽐뿌
- php
- mini project
- GX-10
- gae
- K100D
- 안드로이드
- Writing
- Javascript
- Android
- 샷
- HTML5
- 팁
- lecture
- 강좌
- TIP
- google app engine
- c++
- Python
- 속깊은 자바스크립트 강좌
- 사진
- 서울
- 자바스크립트
- 삼식이
- java
- HTML5 튜토리얼
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |