- 论坛徽章:
- 0
|
我在动态库里用ACE定义类如下:
class CHandler : public ACE_Task<ACE_MT_SYNCH>;
{
public:
CHandler(LPAFTERSEND lpaftersend, LPAFTERRECEIVED lpafterrecv, LPERRORHANDLE lperr, void* lpparam)
{ ...}
virtual int handle_error(...) = 0;
...
};
class CChild : public CHandler
{
public:
CChild(LPAFTERSEND lpaftersend, LPAFTERRECEIVED lpafterrecv, LPERRORHANDLE lperr, void* lpparam) : CHandler(lpaftersend, lpafterrecv, lperr, lpparam)
{...}
...
};
接口函数:
extern "C" unsigned long create(LPAFTERSEND lpaftersend, LPAFTERRECEIVED lpafterrecv, LPERRORHANDLE lperr, void *lpparam)
{
CChild * pchild = new CChild(lpaftersend, lpafterrecv, lperr, lpparam);
return (unsigned long) pchild;
}
我在外部调用时接口函数create,到CChild * pchild = new CChild(lpaftersend, lpafterrecv, lperr, lpparam);一步就出现下面错误:
./smtest: relocation error: ../smlib.so: undefined symbol:..... |
|