dll 만들기
dll 만들기 공부하던 중 다음과 같은 코드를 봤습니다. (코드는 제식대로 줄여서 올렸습니다.)
struct test
{
virtual void func1()=0;
virtual void func2()=0;
};
typedef test* lpTest;
extern "C" __declspec(dllexport) lpTest __stdcall generator();
extern "C" __declspec(dllexport) void __stdcall release();
class test1 : public test
{
public:
test1();
~test1();
void func1();
void func2();
void func3();
... ...
};
extern "C" __declspec(dllexport) lpTest __stdcall generator()
{
return (new test1);
}
... ...
난생 처음 보는 형식인데 가만 살펴보니 일반dll로 클라스를 처리하는 방법인것 같아서 흥미삼아 해봤습니다.
VS2008에서 일반dll로 작성했습니다.
빌드해보니 Debug로는 빌드되는데 Release로는 빌드되지 않습니다. 그리구 Debug모드에서도 실행은 제바로 안되더군요.
혹시 제가 dll만들때 옵션을 잘못 준건 아닌지 모르겠습니다. 이런 식으로 클라스를 확장dll이 아닌 일반dll에서 접근할수 있기는 한건지...?
dll쪽은 이제 금방 공부를 시작한터라 갈피를 잡을수 없군요.
고수님들 의견 바랍니다.
댓글 달기