#c #windows #visual-c -2010-express
#c #Windows #visual-c -2010-express
Вопрос:
Используя Visual C 2010 Express как обычный пользователь, я создал проект Win32 с main.cpp файл, содержащий: включить
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
return 0;
}
На этапе связывания, как обычный пользователь, я получаю:
MSVCRTD.lib(crtexe.obj): ошибка LNK2019: неразрешенный внешний символ main, на который ссылается функция __tmainCRTStartup
Однако, если я запускаю тот же проект от имени администратора, он нормально строит (связывает), и я получаю требуемый исполняемый файл. Есть идеи относительно того, почему это происходит?
Комментарии:
1. Хорошо, проверьте разрешение на папку Visual Studio и на папку вашего проекта, возможно, у вашего пользователя нет разрешения на чтение и или запись в папку библиотеки Visual Studio или в папку вашего проекта. Если это ответ, он настолько прост, что его следует размещать не в программировании, а в потоке ОС Windows 🙂
2. Как говорит @SalvatorePreviti. Использование Process Monitor с выделением отказов в доступе должно упростить идентификацию проблемных файлов.
3. Та же проблема возникает, если я создаю проект как обычный пользователь, используя те же шаги, что и для другого.
4. Проверьте разрешения для папки Visual studio и папки вашего проекта.
5. Хм, нет, эти точки не соединяются. Ошибка распространена, просто при запуске выбирается неправильный шаблон проекта. Выбор шаблона приложения консольного режима и запись WinMain() вместо main() приводит к этой ошибке компоновщика.