2015-04-24 89 views
0

我在Windows 7 Visual Studio 2010中编译旧的MFC WIN CE嵌入式项目时出现问题。我相信旧的应用程序是在嵌入式Visual Studio 4中编译的并且需要mfcce211.dll。错误LNK2019:无法解析的外部符号

任谁,所有的源文件的管理编译罚款,但我得到以下链接器错误:

error LNK2019: unresolved external symbol _VirtualCopy referenced in function "public: static void __cdecl CTX3922::Initialise(void)" ([email protected]@@SAXXZ) 

VirtualCopy被称为CTX3922 ::初始化它是文件TX3922.cpp在并认为:

extern "C" { 
       BOOL VirtualCopy(LPVOID lpvDest, LPVOID lpvSrc, DWORD cbSize, DWORD fdwProtect); 
      } 

项目属性:

  • 使用MFC在共享DLL
  • 不使用ATL
  • 没有公共语言运行库支持

启用/ NODEFAULTLIB抛出链接错误,包括这一个了很多。

我找不到VirtualCopy的任何地方

我缺少一个图书馆的声明,如果是的话,反正是有找出哪一个呢?

非常感谢

+0

您是否按照[documentation](https://msdn.microsoft.com/zh-cn/library/aa450977.aspx)中指定的方式链接了Coredll.lib?你使用VS2010编译哪个平台?我不确定VS2010能否为WIN CE进行交叉编译。 –

+0

谢谢,我如何发现这一点?预处理器选项指示WIN32,$(OS)宏保持windows_NT,原始项目文件夹说eVC 3/4项目。 – moonraker

+0

我发现它就像你可以通过阅读[VirtualCopy的文档](https://msdn.microsoft.com/en-us/library/aa450977.aspx)找到它一样。 '无法解析的外部符号'表示某些库缺失的大部分时间。 –

回答

0

VirtualCopy是用于物理内存复制到虚拟给出一个内存地址的Win CE的呼叫,而不是在Win32可用。这种类型的调用不能在标准的C++用户模式应用程序中完成。我最喜欢的是需要一个设备驱动程序。谢谢

相关问题