Тема: ObjectDBX
В ObjectDBX проекте, созданным визардом, создал класс унаследованный от AcDbLine.
В перегруженном методе subGetOsnapPoints мне нужно получить координаты мыши в чертеже. Нашёл тут на форуме метод:
BOOL TransScreenCoordinatesToAcGePoint3d(CPoint point, AcGePoint3d &pt3d)
{
CView *pView = acedGetAcadDwgView();
if(!pView)return FALSE;
int windnum = acedGetWinNum(point.x,point.y);
CRect r;
pView->GetClientRect(&r);
pView->ClientToScreen(&r);
acedDwgPoint ptOut;
AcGePoint3d p3d;
point.x -=r.left;
point.y -=r.top;
BOOL res = acedCoordFromPixelToWorld(windnum,point,ptOut);
if (res)
p3d = AcGePoint3d(ptOut[0],ptOut[1],ptOut[2]);
return res;
}
При компиляции линковщик ругается:
Error 1 error LNK2019: unresolved external symbol "class CView * __cdecl acedGetAcadDwgView(void)" (?acedGetAcadDwgView@@YAPAVCView@@XZ) referenced in function "protected: virtual enum Acad::ErrorStatus __thiscall CMyLine::subGetOsnapPoints(enum AcDb::OsnapMode,int,class AcGePoint3d const &,class AcGePoint3d const &,class AcGeMatrix3d const &,class AcArray<class AcGePoint3d,class AcArrayMemCopyReallocator<class AcGePoint3d> > &,class AcArray<int,class AcArrayMemCopyReallocator<int> > &,class AcGeMatrix3d const &)" (?subGetOsnapPoints@CMyLine@@MAE?AW4ErrorStatus@Acad@@W4OsnapMode@AcDb@@HABVAcGePoint3d@@1ABVAcGeMatrix3d@@AAV?$AcArray@VAcGePoint3d@@V?$AcArrayMemCopyReallocator@VAcGePoint3d@@@@@@AAV?$AcArray@HV?$AcArrayMemCopyReallocator@H@@@@2@Z) MyLine.obj ArxLineDBX
Error 2 error LNK2019: unresolved external symbol "int __cdecl acedCoordFromPixelToWorld(int,class CPoint,double * const)" (?acedCoordFromPixelToWorld@@YAHHVCPoint@@QAN@Z) referenced in function "int __cdecl TransScreenCoordinatesToAcGePoint3d(class CPoint,class AcGePoint3d &)" (?TransScreenCoordinatesToAcGePoint3d@@YAHVCPoint@@AAVAcGePoint3d@@@Z) MyLine.obj ArxLineDBX
Error 3 error LNK2019: unresolved external symbol "int __cdecl acedGetWinNum(int,int)" (?acedGetWinNum@@YAHHH@Z) referenced in function "int __cdecl TransScreenCoordinatesToAcGePoint3d(class CPoint,class AcGePoint3d &)" (?TransScreenCoordinatesToAcGePoint3d@@YAHVCPoint@@AAVAcGePoint3d@@@Z) MyLine.obj ArxLineDBX
Error 4 fatal error LNK1120: 3 unresolved externals E:\Work\Project\ObjectARX\ArxLine\Win32\Debug/ArxLineDBX.dbx ArxLineDBX
Если этот метод использовать ObjectARX проекте то все нормально компилируется. Как можно получить координаты мыши?