Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Приведенный ниже код выдает следующие ругательства: ОшибкиОшибка директива #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] Win32Project2 c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 24 Ошибка C1189 #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] Win32Project2 c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\afx.h 24 Код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Я подозреваю, что необходимо подключить к проекту какие-то MFC dll или lib, но afxwin.h и требуемые для него библиотеки не ищутся на MSDN, было бы неплохо найти имена этих библиотек и поискать их на жестком. И да в настройках проекта я выставил использование MFC в общей DLL. Проект создавался как пустой Win32 по гайду . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2016, 21:08 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18, это ошибка конфигурации проекта, ты неверно используешь библиотеки, переведи на русский сообщения об ошибках и попытайся их понять. вкратце, тебе нужно использовать CRT в виде DLL, и MFC в виде DLL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2016, 21:48 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18, сдаётся мне, что в указанном гайде речь идёт не о 2015 студии, и даже не 2008, и даже что то младше шестёрки имхо конечно-же... 1) у Вас не получится прокатить овощем. придётся вникать и методом проб и ошибок + чтение умной литературы и форумов находить решения(обычно в любом материале существуют ошибки либо не точности). 2) вы зря выбрали пустой проект. если бы выбрали не пустой - то следующая вкладка визарда, вам бы предложила потрогать за титьку и мэфэцэ. только потом не адд главный си-пи-пи файлик, а тупо копи-паста в тот шаблон что сгенерился бы. 3) что можно сделать. вот тискайте на закладке джэнерал статик-не статик(в зависимости чего хотите и что не нравится компилятору) 4) внимательно вкуривайте закладки C++ и Link. Ищите поля которые задают указанные ключики в ошибке /Md удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2016, 22:25 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
[d]Ошибка директива #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] тебе надо определить в проекте макрос _AFXDLL -D_AFXDLL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 08:45 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Добавил строчку Код: plaintext 1. теперь ошибки следующие: LNK2019,1120Ошибка LNK2019 ссылка на неразрешенный внешний символ _WinMain@16 в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) Win32Project2 C:\Users\Joanit\documents\visual studio 2015\Projects\Win32Project2\Win32Project2\msvcrtd.lib(exe_winmain.obj) 1 Ошибка LNK1120 неразрешенных внешних элементов: 1 Win32Project2 C:\Users\Joanit\documents\visual studio 2015\Projects\Win32Project2\Debug\Win32Project2.exe 1 Я так понимаю причина в отсутсвии функции WinMain(), но в приведенном в первом сообщении коде ее роль выполняет CMyApp(), который наследуется от CWinApp. Корявая замена CMyApp() на WinMain тоже ничего не дает, компилятор продолжает выдавать, приведенные выше ошибки. Код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Добавление в ресурсы проекта библиотеки msvcrtd.lib на которую он ругается несколько меняет ошибки: Ошибки Ошибка LNK2019 ссылка на неразрешенный внешний символ _WinMain@16 в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) Win32Project2 C:\Users\Joanit\documents\visual studio 2015\Projects\Win32Project2\Win32Project2\msvcrtd.lib(exe_winmain.obj) 1 Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp__RoInitialize@4 в функции ___scrt_initialize_winrt Win32Project2 C:\Users\Joanit\documents\visual studio 2015\Projects\Win32Project2\Win32Project2\msvcrtd.lib(utility_app.obj) 1 Ошибка LNK1120 неразрешенных внешних элементов: 2 Win32Project2 C:\Users\Joanit\documents\visual studio 2015\Projects\Win32Project2\Debug\Win32Project2.exe 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 18:32 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18, У тебя нет WinMain и не прилинкована библиотека MFC, где она есть. Даже если ты используешь MFC DLL, есть парный ей .LIB https://msdn.microsoft.com/ru-ru/library/bx5yfk7t.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 18:43 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
После того как поменял на верхней панели конфигурацию решения с debug на release код скомпилировался без ошибок в том виде в котором он представлен в уроке, без добавления каких-либо библиотек или dll-файлов. Все дело в отсутствии обязательного обновления KB2882822, которое я вручную удалял после установки Visual Studio, в силу объективной неприемлимости его нахождения на операционной системе. Судя по всему отсутствие этого обновления делает невозможным сборку MFC приложения в режиме debug (один раз отладчик выдал ошибку про отсутсвие какого-то концентратора и обновления), впоследствие еще поковырявшись в настройках проекта и добавив строку #define _AFXDLL компилятор перестал выдавать ошибки, но окно формы все равно не запускалось. В режиме Release все работает как часы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 19:53 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18, Бубен себе купи. Для Одекватной Оценки Объективной реальности. Короче, ты не понимаешь пока что происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 00:42 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18После того как поменял на верхней панели конфигурацию решения с debug на release код скомпилировался без ошибок... ну а теперь, если хотите добить ситуацию, плавненько берите дебаг(или релиз - не важно) и ручками переделывайте в противоположный вариант(глазками смотрим ключики в строке компиляции-линковки). По одному потехонечку переносим. Вот где обломается - и надо рыть. Обычно дэлеле ставятся-сносятся попарно(дебаг+релиз) и то инструментариями которые знают про это. Вряд-ли что то вам снесло половину(те которые оканчиваются на D) файлов. Почему надо копать. Вы же не знаете откуда берутся либы и дэлеле? и ослинные уши могут начать показываться когда начнёте что то более серьёзное чем хэйлохты мир! удачи вам (круглый) ЗЫ За одно и в настройках проектах будете ориентироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 02:05 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18Добавил строчку Код: plaintext 1. да не, не define надо было делать, а кдючем компилятора макрос определить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 05:46 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Думаю, случай летальный,лечению не подлежит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 05:49 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Ну тогда подскажите литературу в которой описано как проект настраивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 10:53 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Как я и писал KB2882822. Если создавать какой то другой тип проекта то сообщение об ошибке не появляется, но приложение в режиме debug все равно не запускается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 11:20 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Вобщем скорей всего я неправильно понял фразу про ключи компилятора: Разница в поведении компилятора связана с тем что я создал 2 проекта с одинаковым кодом. 1-й как пустой Win32 проект с ручным заданием поддержки MFC- и он жалуется на отсутсвие dll. 2-й как проект dll Win32 с изначальной поддержкой библиотеки MFC и ручным изменением настройки проекта с dll на exe- он жалуется на отсутсвие обновления. Я так понял все таки нужно подключить к 1-проекту правильные MFC lib и dll, тогда может найдется где нибудь точное перечисление их имен, чтобы я мог поискать их на жестком и подключить к проекту? Я думаю что даже если я их и подключу далее компилятор выдаст ошибку об отсутсвии обновления. Я думал посмотреть подключаемые dll и lib во втором проекте, но они походу в него вшиты и не отображаются в проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 12:55 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
Вобщем вот что есть при компиляции во вкладке вывод: Вывод Release"Win32Project5.exe" (Win32). Загружено "C:\Users\Joanit\Documents\Visual Studio 2015\Projects\Win32Project5\Release\Win32Project5.exe". Символы загружены. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\user32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\gdi32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\lpk.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\usp10.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcrt.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\advapi32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\sechost.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\rpcrt4.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\sspicli.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\cryptbase.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\winspool.drv". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\shell32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\shlwapi.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\ole32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\oleaut32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\oleacc.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\imm32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\msctf.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\api-ms-win-core-synch-l1-2-0.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\uxtheme.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\comctl32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\dwmapi.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\ole32.dll". Невозможно найти или открыть PDB-файл. "Win32Project5.exe" (Win32). Выгружено "C:\Windows\SysWOW64\ole32.dll" "Win32Project5.exe" (Win32). Загружено "C:\Windows\SysWOW64\Amhooker.dll". Сборка модуля выполнена без символов. Программа "[4560] Win32Project5.exe" завершилась с кодом 0 (0x0). Вывод DebugСборка начата: проект: Win32Project5, Конфигурация: Debug Win32 ------ 1> Source.cpp 1>c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 13:17 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18, вы явно не читаете ошибку, что пишут вам форточки. Давайте я повторю... запуск приложения бла-бла-бла win32project1.dll не является приложением Win32 что есть полная истина... библиотеку вы не можете запустить как самостоятельное приложение. Вы конечно-же под отладчиком можете протестировать отдельную дэ-ле-ле, но для этого нужен экзешник который позовёт её (скажем так это возможно, но это не ваш случай). Резюме... в релизе вы запускаете экзешник. под дебагом дэлеле. И задаёте вопрос, почему дескать мягкое не холодное... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 17:49 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18...Разница в поведении компилятора связана с тем что я создал 2 проекта с одинаковым кодом. 1-й как пустой Win32 проект с ручным заданием поддержки MFC- и он жалуется на отсутсвие dll. 2-й как проект dll Win32.... 1) вам уже писали - не создавайте пустой проект, пока вы не знаете точно про его наполнение и настройки ключей. больше гимора для вас же. 2) "ручное задание поддержки MFC" - не понятно, что вы имеет ввиду. То, что в визарде вам дают методом отметки чекбоксов выбирать куча параметров - это "облегчалка" при генерации проекта не более(визард). В конечном итоге вы можете создать свой визард с одной большой кнопкой "Хочу". При созданном проекте у вас есть настройки самого проекта - вот именно их и надо кромсать(изучать) по первости, при этом не меняя ЦЕЛИ(т.е. собираете либо дэлеле либо экзешник - смотря что вам необходимо). Если при изменении настройки вы не понимаете что делаете - лезите в МСДН и вникаете нафига он нужен. Если буквы тяжело оседают в голове - спрашиваете на форуме. Но как правило МСДН будет более чем достаточно. 3) все остальные ваши умозаключения следуют из ошибочных предположений - посему не имеют место быть в принципе, от слова никак... удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 18:05 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kolobok0 "ручное задание поддержки MFC" - не понятно, что вы имеет ввиду. То, что в визарде вам дают методом отметки чекбоксов выбирать куча параметров - это "облегчалка" при генерации проекта не более(визард). Проект->Свойства->Общие->Использование MFC. С точки зрения незнающего человека даже самый пустой проект созданный визардом создает малопонятное нагромождение непонятно как связанных файлов и кода в них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 18:18 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18С точки зрения незнающего человека даже самый пустой проект созданный визардом создает малопонятное нагромождение непонятно как связанных файлов и кода в них. Это маркетинг от МС. Пока пользователь делает правильные движения (создает проект в соответствии с тем что хочет в итоге), то все легко. Но стоит захотет сделать что-то неправильное (сменить тип готового проекта) то тут надо знание основ плюс знание устройства маркетинга от МС. С одной стороны легко начать любому, с другой - высокий барьер между чайником и профи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2016, 18:35 |
|
||
|
MVS 2015 пустой MFC проект
|
|||
|---|---|---|---|
|
#18+
kab18...малопонятное нагромождение непонятно как связанных файлов и кода в них. вы старайтесь идти от лёгкого к сложному. для начала тупо добейтесь работоспособности(даже можно в код не заглядывать). главное компилиться, делает то что нужно - далее код изучать. ещё дальше - настройки изменять если треба. т.е. идите от рабочего к хотелкам. тогда всегда у вас будет рабочий вариант и понятен путь как вы этого добились. Вообще-то я порекомендую вам достаточно не плохую книгу: Круглински "Программирование на VC++" там именно про первые шаги, как просто получить результат, и самое главное вход в логику самой мэфэцэ. удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2016, 01:08 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39142942&tid=2018642]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 279ms |
| total: | 450ms |

| 0 / 0 |
