繁体   English   中英

使用Visual Studio2005和Windows Mobile SDK调试Windows CE项目时出现getProcAddressW错误

[英]getProcAddressW errors when use visual studio2005 and windows mobile SDK to debug windows CE project

我正在使用Visual Studio 2005Windows Mobile 6 Professional Device SDK调试Windows CE项目(从Windows项目复制)。 我使用主动同步连接PC和Win CE设备。 然后,我创建一个新的Windows CE项目(从Windows项目复制,但是使用Windows Mobile 6专业设备SDK作为平台进行创建。vc ++,智能设备,控制台应用程序)。

当我构建Windows CE项目时,出现一些错误:

Error   1   error C2664: 'GetProcAddressW' : cannot convert parameter 2 from 'const char [21]' to 'LPCWSTR' xxxxx.cpp   42  

我使用LoadLibrary(_T(xx.dll)); 然后我用GetProcAddress(handle,"functionName");

如果我将其更改为使用GetProcAddress(handle, _T("functionName") ); 这个错误消失了。 但是新的错误

LINK: error LNK2019: unresolved external symbol __imp_Function2 
    referenced in function wmain    xxxx.obj

发生时,Function2来自另一个DLL项目(对于Windows和Windows CE)。

我不知道我是否清楚地描述了问题,但是我想问一下,当源代码中的某些功能来自不同的DLL时,是否有任何方法可以使Windowswindows CE的源代码都正确?

任何答案都适用!

第一个编译器错误在某种程度上可以自我解释。 GetProcAddressW结尾处的“ W”表示该方法是宽字符API(与ASCII版本的GetProcAddressA相对)。 Windows CE仅导出API的宽字符版本。 这意味着您必须输入一个宽字符字符串。 当您使用_T ,您使用了TCHAR宏,这使封闭的字符串成为宽字符文字,并且错误消失了。

只要您#define UNICODE (可能已经启用)和#include "tchar.h"_T编译以来,我认为您可以),相同的代码就可以在大型Windows上正常工作(无论如何对于任何最新版本)。 您可以显式调用GetProcAddressW而不是仅调用GetProcAddressW (如果定义了UNICODE,则应将其##定义为宽版本)。

您看到的源链接器错误尚不清楚。 我猜__imp_Function2是您尝试通过GetProcAddress调用分配的函数指针? 基本上,链接器找不到它,但是根本无法通过您提供的信息来了解它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM