使用visualstudio2005和windows mobile SDK调试windows CE项目时出现getPro
getProcAddressW errors when use visual studio2005 and windows mobile SDK to debug windows CE project
我正在使用Visual Studio 2005
和Windows 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时,有没有任何方法可以使源代码同时适用于Windows
和windows CE
?
任何答案都会通知您!
第一个编译器错误有些不言自明。在GetProcAddressW
结尾得到"W"意味着该方法是宽字符API(而GetProcAddressA
是ASCII版本)。Windows CE仅导出宽字符版本的API。这意味着您必须传入一个宽字符串。当您使用_T
时,您使用了TCHAR宏,这使得所包含的字符串成为宽字符文字,并且错误消失了。
同样的代码在大Windows上应该可以正常工作(不管怎样,对于任何最新版本),前提是#define UNICODE
(可能已经在上了)和#include "tchar.h"
,我认为_T
编译了它们。您可以显式调用GetProcAddressW
,而不仅仅是GetProcAddress(如果定义了UNICODE,则应该将其#定义为宽版本)。
您看到的源链接器错误不清楚。我猜__imp_Function2是您试图通过GetProcAddress调用分配的函数指针?基本上,链接器找不到它,但根据您提供的信息,根本原因尚不清楚。
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- 升级到 Windows 10 版本 1809 SDK 后,我无法编译使用 C++/WinRT 的项目
- 在VS2019项目中集成ImageMagick:x64-windows-static library
- 绕过 Windows 中的 __declspec(dllimport) 到 Linux 项目的转换
- 在Windows上使用ANGLE和GLFW设置C++项目
- 简单的cmake项目,在Windows上使用nmake构建没有调试符号
- 需要示例 CMake 项目,该项目在 Windows 和 Visual Studio 上使用 Xerces-C++ 3
- Dockerize Windows home上的Visual Studio C++项目
- 在Windows docker container中编译Qt5项目
- Visual如何在Windows 10中运行此C 项目
- windows 10上的wxWidgets 3.1.0项目错误
- 在 Windows 更新后C++不需要重新生成项目
- 如何在Windows上安装libpng并将其添加到我的Qt项目中
- 如何使用单独的 Linux 和 Windows 计算机的代码块开发C++项目?
- C++运行时组件(通用 Windows)项目生成错误"LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'"
- Windows 8项目类型性能差异
- 将 Windows C++ 项目从 Qt4 移动到 5 会给出数百个看似无关的编译错误
- Windows 项目中缺少头文件C++
- 将windows c++项目链接到boost命令行体系结构类型问题
- Visual Studio 2010 - 如何为这个C++ Windows项目制作"make.bat"?