VC++ --->> WinCE 的问题(对大家应该不会很难)
在VC中用到了一个类CxImage,编译和链接都没有问题,(*.lib的调用也正常)。但是把程序移植到WinCE中,在链接的时候总是出现这样的错误信息,这是什么原因呢?
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::SetPalette(struct tagRGBQUAD *,unsigned long)" (?SetPalette@CxImage@@QAAXPAUtagRGBQUAD@@K@Z),该符号在函数 "public: void __cdecl CxImage::Copy(class CxImage const &,bool,bool,bool)" (?Copy@CxImage@@QAAXABV1@_N11@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: struct tagRGBQUAD * __cdecl CxImage::GetPalette(void)const " (?GetPalette@CxImage@@QBAPAUtagRGBQUAD@@XZ),该符号在函数 "public: void __cdecl CxImage::Copy(class CxImage const &,bool,bool,bool)" (?Copy@CxImage@@QAAXABV1@_N11@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::AlphaDelete(void)" (?AlphaDelete@CxImage@@QAAXXZ),该符号在函数 "public: void * __cdecl CxImage::Create(unsigned long,unsigned long,unsigned long,unsigned long)" (?Create@CxImage@@QAAPAXKKKK@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl CxImage::SelectionDelete(void)" (?SelectionDelete@CxImage@@QAA_NXZ),该符号在函数 "public: void * __cdecl CxImage::Create(unsigned long,unsigned long,unsigned long,unsigned long)" (?Create@CxImage@@QAAPAXKKKK@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: unsigned long __cdecl CxImage::GetPaletteSize(void)" (?GetPaletteSize@CxImage@@QAAKXZ),该符号在函数 "public: void * __cdecl CxImage::Create(unsigned long,unsigned long,unsigned long,unsigned long)" (?Create@CxImage@@QAAPAXKKKK@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::AlphaSet(long,long,unsigned char)" (?AlphaSet@CxImage@@QAAXJJE@Z),该符号在函数 "public: bool __cdecl CxImage::CreateFromArray(unsigned char *,unsigned long,unsigned long,unsigned long,unsigned long,bool)" (?CreateFromArray@CxImage@@QAA_NPAEKKKK_N@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::AlphaCreate(void)" (?AlphaCreate@CxImage@@QAAXXZ),该符号在函数 "public: bool __cdecl CxImage::CreateFromArray(unsigned char *,unsigned long,unsigned long,unsigned long,unsigned long,bool)" (?CreateFromArray@CxImage@@QAA_NPAEKKKK_N@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::SetGrayPalette(void)" (?SetGrayPalette@CxImage@@QAAXXZ),该符号在函数 "public: bool __cdecl CxImage::CreateFromArray(unsigned char *,unsigned long,unsigned long,unsigned long,unsigned long,bool)" (?CreateFromArray@CxImage@@QAA_NPAEKKKK_N@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: struct tagRGBQUAD __cdecl CxImage::GetPaletteColor(unsigned char)" (?GetPaletteColor@CxImage@@QAA?AUtagRGBQUAD@@E@Z),该符号在函数 "public: struct tagRGBQUAD __cdecl CxImage::GetTransColor(void)" (?GetTransColor@CxImage@@QAA?AUtagRGBQUAD@@XZ) 中被引用
====================================================================================================
Windows Mobile 6 Professional SDK (ARMV4I)\Debug\RY.exe : fatal error LNK1120: 9 个无法解析的外部命令
*.lib的版本是否正确?
LZ确认不是使用PC上的吧,呵呵~
我想原因就应该与lib文件有关,但不知道应该如何处理?
#include "ximage.h"
#pragma comment(lib, "cximagecrtd.lib")
#pragma comment(lib, "cximaged.lib")
#pragma comment(lib, "cximage.lib")
这几个文件我在 stdafx.h 中定义
这是我用到的3个lib文件,并且把它放到了我的工作目录中,没有移植WinCE中是没问题的,不知道是什么原因???
#include "ximage.h"
#pragma comment(lib, "cximagecrtd.lib")
#pragma comment(lib, "cximaged.lib")
#pragma comment(lib, "cximage.lib")
这3个库有问题,你要编译3个wince下对应的库出来
pc上的库ce上不能直接用的
那应该怎么编译成wince能用的库呢?麻烦能说得详细点吗?
首先,这三个库是LZ自己编译出来的,还是下载的?
如果是下载的,去找CE下的版本
如果是自己编译的,使用EVC或相应工具重新编译
这三个库是自己编译出来的,能告诉我怎么用EVC编译吗,因为这个以前从来没接触过,我就是想知道详细点的步骤。。。
再次麻烦各位了!
这个6楼已经说的很明确了啊,如果是您自己编译的那么你手上一定有源代码吧.那就在EVC上再编译一遍呗,如果您是下载的那么您手上只有LIB文件了,那么就请您去找到他CE的版本.PC上的或者说是用VC编译的东东是不能在CE上直接用的
好的,我先试试吧,要是有不明白的再向大家请教!
谢谢大家对我的问题的回应!
不行啊,我在EVC中重新编译了一回,然后把lib重新加到了工程中,但还是这样:
正在编译资源...
正在链接...
retwView.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl CxImage::Load(char const *,unsigned long)" (?Load@CxImage@@QAA_NPBDK@Z),该符号在函数 "public: virtual void __cdecl CretwView::OnDraw(class CDC *)" (?OnDraw@CretwView@@UAAXPAVCDC@@@Z) 中被引用
Windows Mobile 6 Professional SDK (ARMV4I)\Debug\retw.exe : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://c:\Documents and Settings\yud\桌面\VC++\retw\retw\Windows Mobile 6 Professional SDK (ARMV4I)\Debug\BuildLog.htm”
retw - 2 个错误,0 个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过 ==========
都正确导出了,而且在Win32下运行是没问题的,但如果在WinCE中就是这样:
正在链接...
retwView.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl CxImage::Load(wchar_t const *,unsigned long)" (?Load@CxImage@@QAA_NPB_WK@Z),该符号在函数 "public: virtual void __cdecl CretwView::OnDraw(class CDC *)" (?OnDraw@CretwView@@UAAXPAVCDC@@@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::SetPalette(struct tagRGBQUAD *,unsigned long)" (?SetPalette@CxImage@@QAAXPAUtagRGBQUAD@@K@Z),该符号在函数 "public: void __cdecl CxImage::Copy(class CxImage const &,bool,bool,bool)" (?Copy@CxImage@@QAAXABV1@_N11@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: struct tagRGBQUAD * __cdecl CxImage::GetPalette(void)const " (?GetPalette@CxImage@@QBAPAUtagRGBQUAD@@XZ),该符号在函数 "public: void __cdecl CxImage::Copy(class CxImage const &,bool,bool,bool)" (?Copy@CxImage@@QAAXABV1@_N11@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::AlphaDelete(void)" (?AlphaDelete@CxImage@@QAAXXZ),该符号在函数 "public: void * __cdecl CxImage::Create(unsigned long,unsigned long,unsigned long,unsigned long)" (?Create@CxImage@@QAAPAXKKKK@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: bool __cdecl CxImage::SelectionDelete(void)" (?SelectionDelete@CxImage@@QAA_NXZ),该符号在函数 "public: void * __cdecl CxImage::Create(unsigned long,unsigned long,unsigned long,unsigned long)" (?Create@CxImage@@QAAPAXKKKK@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: unsigned long __cdecl CxImage::GetPaletteSize(void)" (?GetPaletteSize@CxImage@@QAAKXZ),该符号在函数 "public: void * __cdecl CxImage::Create(unsigned long,unsigned long,unsigned long,unsigned long)" (?Create@CxImage@@QAAPAXKKKK@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::AlphaSet(long,long,unsigned char)" (?AlphaSet@CxImage@@QAAXJJE@Z),该符号在函数 "public: bool __cdecl CxImage::CreateFromArray(unsigned char *,unsigned long,unsigned long,unsigned long,unsigned long,bool)" (?CreateFromArray@CxImage@@QAA_NPAEKKKK_N@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::AlphaCreate(void)" (?AlphaCreate@CxImage@@QAAXXZ),该符号在函数 "public: bool __cdecl CxImage::CreateFromArray(unsigned char *,unsigned long,unsigned long,unsigned long,unsigned long,bool)" (?CreateFromArray@CxImage@@QAA_NPAEKKKK_N@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl CxImage::SetGrayPalette(void)" (?SetGrayPalette@CxImage@@QAAXXZ),该符号在函数 "public: bool __cdecl CxImage::CreateFromArray(unsigned char *,unsigned long,unsigned long,unsigned long,unsigned long,bool)" (?CreateFromArray@CxImage@@QAA_NPAEKKKK_N@Z) 中被引用
ximage.obj : error LNK2019: 无法解析的外部符号 "public: struct tagRGBQUAD __cdecl CxImage::GetPaletteColor(unsigned char)" (?GetPaletteColor@CxImage@@QAA?AUtagRGBQUAD@@E@Z),该符号在函数 "public: struct tagRGBQUAD __cdecl CxImage::GetTransColor(void)" (?GetTransColor@CxImage@@QAA?AUtagRGBQUAD@@XZ) 中被引用
Windows Mobile 6 Professional SDK (ARMV4I)\Debug\retw.exe : fatal error LNK1120: 10 个无法解析的外部命令
生成日志保存在“file://c:\Documents and Settings\\Windows Mobile 6 Professional SDK (ARMV4I)\Debug\BuildLog.htm”
retw - 11 个错误,0 个警告
==============================================================================================
#include "ximage.h"
#pragma comment(lib, "cximage.lib")
#pragma comment(lib, "cximagecrtd.lib")
#pragma comment(lib, "cximaged.lib")
不知道毛病究竟在哪???
做个记号!!!我的cximage.lib在CE下怎么老是编译不通过呢?老是报什么头文件错误.