처음으로 QT를 시작을 했는데....
한것이 하필이면 DRM 이다. ㅎㄷㄷ
예전에 한 경험으로 LoadLibrary 로 debug 모드에서 정상적으로 동작을 했다.
하지만 release 에서 post-event 때문에 죽는 현상이 있었는데
그 부분이 Loadlibrary 였다.
내 자리 말고 다 되는데.... 왜 내자리만 안되는 걸까라는 생각이 들었다.
QT 에서 라이브러리 로드 하는 방법을 찾다보니 아래와 같이 하면
안되던 내자리도 되더라~~~
완전 감동 ㅠㅠ
------------------------------------------------------------------------------
typedef char * (*rProt)(void); int main(int, char **) { rProt rfunc; QLibrary *lib = NULL; while (1) { lib = new QLibrary("./test.so"); rProt rfunc = (rProt)lib->resolve("register_search"); if (rfunc) printf("called : %s\n", (*rfunc)()); else printf("error loading lib\n"); lib->unload(); } } LIBRARY FUNCTION ---------------- #include <stdlib.h> char * register_search() { char *name = (char*)malloc(16); strcpy(name, "called test library"); return name; }
------------------------------------------------------------------------------
역시 구글링은 짱인 듯 싶다.
이걸로 삽질을 한 시간이 어후~~~~~
출처
http://lists.trolltech.com/qt-interest/2003-02/msg00633.html