我有一个项目,我需要在 Windows 7 下的 VS2010 中使用 C++ 工作。该项目最初是为在 WinCE 上运行而开发的。它是用 VC++ 开发的,但链接到 WinCE 开发环境中使用的一些库。
该项目使用 ::VirtualCopy 无法编译,因为我相信它在 Coredll.lib 中。在 WinCE 环境中。 https://msdn.microsoft.com/en-us/library/aa450977.aspx
error LNK2028: unresolved token (0A000B85) "extern "C" int __cdecl VirtualCopy(void *,void *,unsigned long,unsigned long)" (?VirtualCopy@@$$J0YAHPAX0KK@Z) referenced in ..
error LNK2019: unresolved external symbol "extern "C" int __cdecl VirtualCopy(void *,void *,unsigned long,unsigned long)" (?VirtualCopy@@$$J0YAHPAX0KK@Z) referenced in ..
我的代码中的函数是通过以下方式引用的:
extern "C"
{
BOOL VirtualCopy(LPVOID lpvDest, LPVOID lpvSrc, DWORD cbSize, DWORD fdwProtect);
}
然后使用:
if( ! ::VirtualCopy(pVMem, reinterpret_cast<void *>(dwASIC_REGISTERS_BASE), tSystemInfo.dwPageSize, PAGE_READWRITE | PAGE_NOCACHE) )
{
DWORD dwError = ::GetLastError();
TRACE1("Failed ", dwError);
return;
}
项目使用:
- 共享 dll 中的 MFC
- 到 ATL 的静态链接
- 公共语言运行时支持 (/clr)
我有几个问题:
- 有替代方案吗?
- 有什么办法可以导入一些旧的 winCE 库并链接到这些库,让我可以使用这个功能?
任何帮助将不胜感激
非常感谢