В настоящее время я занимаюсь переносом набора приложений MFC C++ [MFC OLE Server] с VS 2003 (в настоящее время работает в Windows XP) на VS 2010 — MFC7.1 (Windows 7).
Конкретное приложение, с которым у меня возникли проблемы, строится нормально [с удалением всех устаревших функций], но когда я пытаюсь запустить его, обе функции AfxGetThread() и AfxGetApp() в приведенной ниже функции [в winmain.cpp] возвращают NULL.
// MFC AfxWinMain source code
int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine, int nCmdShow)
{
ASSERT(hPrevInstance == NULL);
int nReturnCode = -1;
CWinThread* pThread = AfxGetThread();
CWinApp* pApp = AfxGetApp();
…
В Google есть документация о том, что функция AfxGetThread() меняется между версиями Visual Studio и требует реализации вашей собственной версии AfxGetThread(), но я не могу заставить фреймворк правильно вызывать эту функцию из моего приложения.
Если у кого-то есть идеи, которые были бы замечательными, спасибо, Джас.