ошибка LNK2019: неразрешенный внешний символ

У меня возникли проблемы с компиляцией старого встроенного проекта MFC WIN CE в Windows 7 Visual Studio 2010. Я полагаю, что старое приложение было скомпилировано во встроенной Visual Studio 4 и нуждалось в mfcce211.dll.

Кто угодно, все исходные файлы компилируются нормально, но я получаю следующую ошибку компоновщика:

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

VirtualCopy вызывается в CTX3922::Initialise, который находится в файле TX3922.cpp и содержит:

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

Свойства проекта:

  • Использование MFC в общей библиотеке DLL
  • Не используя ATL
  • Нет поддержки общеязыковой среды выполнения

Включение /NODEFAULTLIB вызывает МНОГО ошибок компоновщика, включая эту.

Я нигде не могу найти объявление VirtualCopy

Мне не хватает библиотеки, если да, то можно ли узнать, какую именно?

Огромное спасибо


person moonraker    schedule 24.04.2015    source источник
comment
Делали ли вы ссылку на Coredll.lib, как указано в документации? Для какой платформы вы компилируете VS2010? Я не уверен, что VS2010 может кросс-компилировать для WIN CE.   -  person Jabberwocky    schedule 24.04.2015
comment
Спасибо, а как это узнать? Параметр препроцессора указывает на WIN32, макрос $(OS) содержит windows_NT, исходная папка проекта говорит о проекте eVC 3/4.   -  person moonraker    schedule 24.04.2015


Ответы (1)


VirtualCopy — это вызов Win CE, который используется для копирования физической памяти в виртуальную с заданным адресом памяти и недоступен в win32. этот тип вызова не может быть выполнен в стандартном приложении пользовательского режима С++. Мне, скорее всего, понадобится драйвер устройства. Спасибо

person moonraker    schedule 08.05.2015