Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.21.231.245] |
|
Страницы: (20) « Первая ... 6 7 [8] 9 10 ... 19 20 все ( Перейти к последнему сообщению ) |
Сообщ.
#106
,
|
|
|
Здравствуйте. Я новичек и в VS, и в C++.
Появилась необходимость написать консольное приложение на VS2005 по платформу Win32 (без .Net). Создаю новый проект: Visual C++ ->Win32 Console Application -> Empty project. Создаю новый модуль и впечатываю, например, это: #include <iostream> int main() { std::cout << "Hello, World!\n"; } VS создает ехе, но он не запускается без .Net. Пишет: Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему. Что делать? Читал где-то, что можно сделать так: зайти в свойства проекта, general -> Use of MFC изменить на Static. Теперь программа запускается без .Net, но ехе файл весит 600кб. Т.е. это не совсем хорошее решение. Таскать за программой "Hello World" какие-то ненужные библиотеки тоже не лучшее решение. |
Сообщ.
#107
,
|
|
|
Недавно перешел под 2005 с 6-ки.
Вот такой странное поведение заметил. Если открыть проект через файл *.vcproj - то после rebuild вылезают ошибки - cannot locate mfc80d.dll .. etc. Если их скопировать из папки %VS% - точный путь лень писать, чего-то там redist, если их скопировать тот там выдает ASSERT - по отладчику выходит на строку CHECK_MANIFEST_RT - или что-то похожое. Манифесты я тоже скопировал из той папки откуда и dll. А если открывать файл solution и делать rebuild - то все хорошо. Никаких dll копировать не нужно, сам все видит. Из-за чего так происходит мне соверешенно непонятно. Видимо проблема с переменными окружения какие-то, но тогда остается вопрос, почему при копировании нужных dll и манифестов приложение всеравно сыпется на том ASSERT, который я выше описал. Хочу обратить внимание на Цитата Если открыть проект через файл *.vcproj - то после rebuild Если до этого делать rebuild в через открытие solution, то при обычном build в vcproj все будет нормально, до тех пор пока именно через открытый vcproj не сделаешь rebuild. система : xp sp 2, vs 2005 sp 1. Почему так происходит ? |
Сообщ.
#108
,
|
|
|
Так и не понял из-за чего эта хрень, но последствия лечится отключением embed manifest или generate manifest.
|
Сообщ.
#109
,
|
|
|
Да нет, батенька, как раз 2 параметра он хочет. И проблема не связана с переходом на 2005, т.к. вы начинаете с нуля, а не с более ранней версии. |
Сообщ.
#111
,
|
|
|
Проблема при регистрации ActiveX компонентов.
Project : error PRJ0050: Failed to register output. Please ensure you have the appropriate permissions to modify the registry. Сижу под админскими правами... тот же самый компонент в 2003 компилируется и регистрируется на "УРА" Если делать руками, через regsrv32 получаю ошибку "Ошибка при вызове LoadLibrary(mydllname.dll) Не найден указанный модуль" Что делать? |
Сообщ.
#112
,
|
|
|
Все разобрался. Всем спасибо за помощь...
|
Сообщ.
#113
,
|
|
|
Есть такая редкая, но неприятная бага, когда cpp-шные проекты 2005 студия компилит раз через десять, ругаясь "Error result 1 returned from 'C:\WINDOWS\system32\cmd.exe'". Долго искал как это вылечить, нашёл кое-как: В свойствах проекта Configuration Properties -> Manifest Tool -> Input and Output -> Embed Manifest ставим в No.
Может кому пригодится. |
Сообщ.
#114
,
|
|
|
Всем, у кого "Приложение не было запущено, поскольку оно некорректно настроено." читать здесь.
Цитата Visual C++ 2005 supports a new deployment model for Windows client applications based on the idea of isolated applications and side-by-side assemblies. In Visual C++ 2005, the ATL, MFC, Standard C++, and CRT libraries have been rebuilt as shared side-by-side assemblies that are installed into the native assembly cache (WinSxS folder). By default, Visual C++ 2005 builds all native C/C++ applications as isolated applications that use manifests to describe their dependencies on Visual C++ libraries. Если коротко, дело в том, что теперь разделяемые библиотеки специальным образом копируются в папку %WINDIR%\WinSxS (а именно, распихиваются по вложенным папкам со специальными именами, зависимыми от версий библиотек). И, разумеется, ищутся там же. Это сделано для решения проблемы DLL Hell, когда библиотеки разных версий конфликтуют между собой. Чтобы быстро установить необходимые библиотеки на компьютере пользователя, можно использовать пакет %PROGRAMFILES%\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe. Другой вариант - включить необходимые библиотеки в свой инсталлятор и копировать их в WinSxS с соблюдением необходимых правил, описанных в MSDN. Но проще тупо воссоздать у пользователя структуру папок и файлов в WinSxS, подсмотрев её на своем компьютере. P.S. Кстати, видимо WinSxS - библиотеки ставятся вместе с .NET Framework (также как, например, MS Office в свое время приносил с собой mfc42.dll), что при совпадении версий библиотек решает проблему запуска. Но это совершенно не означает, что нативные Win32-приложения теперь зависят от .NET Framework. Просто так вышло. Случайно. |
Сообщ.
#115
,
|
|
|
Как заставить проект класть ilk-файлы (создаются при DEBUG сборке) в нужный мне каталог, а не автоматически в выходной каталог исполняемого файла? Мне удалось разделить все объектные файлы и исполняемый файл по разным папкам, а вот ilk никак не могу.
|
Сообщ.
#116
,
|
|
|
Цитата dim_on @ Как заставить проект класть ilk-файлы (создаются при DEBUG сборке) в нужный мне каталог Так пробовал? Свойства проекта > Configuration Properties > Build Events > Post-Build Event > Command Line > "move /Y *.ilk c:\dir" |
Сообщ.
#117
,
|
|
|
Цитата Red XIII @ тата (dim_on @ Сегодня, 10:27) Как заставить проект класть ilk-файлы (создаются при DEBUG сборке) в нужный мне каталог Так пробовал? Свойства проекта > Configuration Properties > Build Events > Post-Build Event > Command Line > "move /Y *.ilk c:\dir" Не пробовал, спасибо за подсказку. А без командной строки никак нельзя? |
Сообщ.
#118
,
|
|
|
Цитата dim_on @ А без командной строки никак нельзя? "Вам шашечки или ехать?" |
Сообщ.
#119
,
|
|
|
постоянно натыкаюсь на проблему с CString...
не вызывается копирование объекта, а просто копирует указатель на буфер и реф добавляет.. а иногда копирует полностью буфер.. я пока не нашел на каком основании производится решение копировать или нет.. типа CString str1, str2; str2 = str1; str2 = _T("text"); в итоге в str1 тоже будет text |
Сообщ.
#120
,
|
|
|
Цитата rs4i @ Дамы и господа, кто-нибудь знает как собрать в VC++2005 и запустить без dotNet'a следующую консольную программу: #include <iostream> int main() { std::cout << "Hello, World!\n"; } Как и прежде в 2002 или 2003 студии достаточно лишь выбрать при создании нового проекта (или решения) Win32 Console Application. DOS-овсвкое уже давно не поддерживается. Добавлено Смотрел недавно в книжном магазине книгу "Visual C++ 2005 (базовый курс). Айвор Хортон". В Болеро.ру мне удалось её заказать почти на 500 р. дешевле. Книга понравилась тем, что рассчитана на чайника в пограммировании и при этом в ней более 1000 страниц. Перевод на русский показался приличным. Добавлено Это не относится к цитате. Просто хотел поделиться радостью. |