当前位置: 代码迷 >> WinCE >> error LNK2019 !
  详细解决方案

error LNK2019 !

热度:103   发布时间:2016-04-28 12:25:11.0
error LNK2019 求救!!!!!
下面是我写的一个移动软键盘的程序:
void Move(int top,int bottom)
{
SIPINFO SipInfo;
memset(&SipInfo,0,sizeof(SipInfo));
SipInfo.cbSize=sizeof(SIPINFO);
BOOL bRes = SipGetInfo(&SipInfo);
if (bRes)
{
CRect rc(SipInfo.rcSipRect);
rc.top=top;
rc.bottom=bottom;
//rc.OffsetRect(0,+60);
SipSetDefaultRect(&rc);
CLSID clsid;
if (SipGetCurrentIM(&clsid))
{
SipSetCurrentIM(&clsid);
}
SipShowIM(SIPF_ON);
}
}
为什么在VS2005里面能编译生产成功 却不能执行
执行的时候报错误 4 error LNK2019: 无法解析的外部符号 "public: __cdecl CRect::CRect(struct tagRECT const &)" (??0CRect@@[email protected]@@@Z),该符号在函数 "void __cdecl Move(int,int)" (?Move@@[email protected]) 中被引用 system.obj
把CRect 换成RECT 程序能跑起来 但是函数就实现不了了  求高手指点我错在哪里了

------解决方案--------------------
这样试下?
CRect rc;
rc.top=top;
rc.bottom=bottom;
rc.left = SipInfo.rcSipRect.left;
rc.right = SipInfo.rcSipRect.right;
不知道有没用。。。
------解决方案--------------------
BOOL SipSetDefaultRect(
  RECT* pRect
);

这个函数的参数是RECT的,而你传一个CRect给他,可能是这个导致的。
------解决方案--------------------
函数为何不能实现了?  还有别的地方要用到CRect的吗?
------解决方案--------------------
你再试下下面的两种方法哦:
1. 包含头文件 #include <atltypes.h>
2. 打开Project -> Properties -> Configuration Properties -> General,在右边的Project Defaults中,Use of MFC 选为 Use MFC in a Static Library
  相关解决方案