MFC DLL에서 class에 vector를 담아서 Export 하려 시도 하였다. 처음에는 잘 되는 듯이 보였지만, class를 delete 하는 순간, 와장창 무너지기 시작했다. 계속해서 dbgheap.c의 _CrtIsValidHeapPointer(const void * pUserData) 안에 있는 HeapValidate( _crtheap, 0, pHdr(pUserData) ); 에서 FALSE을 리턴하여 ASSERT에 걸리게 되었다. 계속 디버깅을 해보니, vector의 소멸을 제대로 하지 못하고 있었다. vector의 소멸자를 따라가 보니 dbgheap.c의 _crtheap이 caller의 heap을 가리키고 있는 것이 보였다. 아니, 애당초 call stack의 소멸 지점이 callee 인 d..
우선 DLL만드는건 아래처럼 하면 됨. empty project에 체크하지 말것. 체크하지 말아야지 DllMain까지 자동으로 만들어준다. 그리고 이제 아무 것도 건들지 말고 그냥 예제 써보자면 calc.c랑 calc.h를 만들고 각각 이렇게 입력한다. //calc.h extern "C" __declspec(dllexport) int add(int lhs, int rhs); //calc.c #include "stdafx.h" //요건 상황에 따라 써야할때도 있고 안써도 될 때도 있음. #include "calc.h" extern "C" __declspec(dllexport) int add(int lhs, int rhs) { return lhs+rhs; } 그리고 컴파일 하면 DLL파일과 lib 파일이 나..
DLL이나 LIB 파일 추가 하는 방법! Visual Studio에서는 프로젝트 속성 들어가서 해야되는지 알았는데.. 알고보니 간단한게 있었다.. 헤더는 그냥 추가하면 되고 #pragma comment(lib, "라이브러리이름") 써주면 되더라.. 예를 들어 NetApi32.lib 파일을 라이브러리로 추가할려면 #include //NetApi32의 헤더 #pragma comment(lib, "NetApi32") //또는 #pragma comment(lib, "NetApi32.lib") 해주면 된다!!
- Total
- Today
- Yesterday
- java
- database
- MFC
- AWS
- android
- Quiz
- linux
- db
- 음악
- source
- 안드로이드
- Troubleshooting
- C++
- Visual C++
- driver
- 프로그래밍
- algorithm
- winapi
- gcc
- C
- Python
- 리눅스
- API
- jni
- 드라이버
- jni강좌
- kering
- Cloud
- it
- NDK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |