2015-04-24 86 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++用戶模式應用程序中完成。我最喜歡的是需要一個設備驅動程序。謝謝

相關問題