7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
||||||
1 | ||||||
Создание шаблона проекта (c++)07.01.2012, 22:11. Показов 3220. Ответов 7
Метки нет Все метки)
(
Часа 2 искал, как это сделать, т.к. по дефолту студия не позволяет экспортировать шаблоны. На этом форуме нашел 2 темы, но ответа я так и не нашел. В МСДН'е делал как там написано, но все равно, наверное я криво что-то делаю.
Мне нужно создать шаблон проекта на WinAPI. Там у меня один файл - Main.cpp. Я создал файл MyTemplate.vstemplate
Я не понимаю, как у них хитро определяется язык шаблона - только CSharp и VBasic, ну и Web. Последний делится только на 2 языка. Где мой C++? Пакую этот файл, Main.cpp и иконку в ZIP файл. В инструкциях я не нашел, куда копировать этот файл. Ну да ладно, копирую в Common7/IDE/ProjectTemplates/CSharp - нулевой резульат. Копирую еще в несколько подкаталогов этой папки и в Documents/VS2010/Templates - тот же нуль. Может где можно найти стандартные шаблоны и посмотреть как они там все это сделали? Но я не нашел...
0
|
|
07.01.2012, 22:11 | |
Ответы с готовыми решениями:
7
Создание шаблона проекта Создание шаблона проекта visual studio 2005 MVS 2005. Создание нового проекта. Изменение шаблона Создание шаблона для проекта |
08.01.2012, 13:51 | 2 |
Читай Разработка мастера, смотри, как это сделали в Microsoft
... \Microsoft Visual Studio 9.0\VC\vcprojects ... \Microsoft Visual Studio 9.0\VC\VCWizards
1
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
08.01.2012, 20:58 [ТС] | 3 |
Спасибо, в папках пороюсь, попробую что-нибудь изменить. По ссылке тоже схожу
Добавлено через 6 часов 16 минут Прочитал МСДН. Мои действия: Создал решение на основе шаблона "Специальный Мастер". Открыл папку с решением, убрал файл ReadMe.txt, засунул в ту же папку (Templates) мой файл Main.cpp, в Templates.inf прописал мой файл. Кстати, порывшись в тех папках, что Вы мне порекомендовали, я прописал в inf-файле Код
OpenFile | Main.cpp ошибка
Не удается найти отладочную информацию для Test.exe или не найдено соответствие. Двоичный код не был построен с отладочной информацией. Продолжить отладку?
Еще я попробовал изменить стандартные файлы в тех папках, в которых Вы мне подсказали. Все удалось, но не смог убрать опцию "Предварительно скомпилированный заголовок", из-за чего ругается на файл stdafx.h. Остальное все получилось. Вобщем не знаю, что делать.
0
|
11.01.2012, 19:43 | 4 |
Изменять стандартный мастер - не очень хорошая идея, на мой взгляд. Нужно было создать копию мастера и эксперементировать с ней.
Простым удалением файлов stdafx из шаблона проекта ничего не добиться. По поводу предкомпилированных заголовков, а также символов ANSI, см. файлы *.js. Там и в файлах *.htm устанавливается большая часть параметров проекта. Общие сценарии (могут использоваться для всех шаблонов): ...\Microsoft Visual Studio 9.0\VC\VCWizards\1049\ Сценарии, специфичные для данного шаблона, например, для стандартного проекта Win32: ...\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\Generic\Application\scripts\1049\ Параметры проекта по умолчанию задаются в сценариях в файлах *.htm, например, для стандартного проекта Win32: ...\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\Generic\Application\html\1049\ Сам файл проекта лежит здесь (но в нем практически ничего нет, в него добавляются настройки при помощи сценариев): ...\\Microsoft Visual Studio 9.0\VC\VCWizards\ У меня русская версия, поэтому последняя папка бывает 1049. В английской - 1033. В других - не знаю.
0
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
12.01.2012, 16:51 [ТС] | 5 |
Спасибо, но я это тоже делал, т.е. смотрел html файлы и ставил false там, где было упоминание о заголовках. Это было в самом начале default.html и в нем же в функциях javascript. Но не помогло.
Знаю, что не хорошая, но бекап сделал - поэтому решил, что попробую. Но как-то не правильно это, править системные файлы. Лучше, конечно, со "Специальным Мастером". Если будут идеи, то пишите, т.к. тема все еще актуальна. А пока я попробую добавить в HTML форму с созданием Win32 проекта свой пункт "My Win32 project"
0
|
12.01.2012, 17:28 | 6 |
Ну, файлы эти не системные. Но и их не обязательно изменять. Создайте копии и работайте с ними.
Далее предполагаю, что все действия выполняются в каталоге ...\Microsoft Visual Studio xx.0\VC и копируем стандартный шаблон Win32. В подкаталоге vcprojects: 1) Создаем копию папки Win32. Назавем ее MyWin32. 2) Создаем копии файлов Win32Wiz.vsz и win32console.vsz. Назавем их, соответственно, MyWin32Wiz.vsz и Mywin32console.vsz. В подкаталоге VCWizards\AppWiz\Generic: 3) Создаем копию папки Application. Назавем ее MyApplication. В подкаталоге vcprojects: 4) Вносим соответствующие изменения в файл win32.vsdir в папке MyWin32 (описание содержимого файла *.vsdir см. в MSDN). Например: ..\MyWin32Wiz.vsz|0|Мое приложение Win32|1|Проект по созданию моего приложения|0|0|4096|Win32App ..\MyWin32Console.vsz|0|Мое консольное приложение Win32|2|Проект по созданию моего консольного приложения|0|0|4096|ConsoleApp 5) Изменяем содержимое файлов MyWin32Wiz.vsz и Mywin32console.vsz, например: для MyWin32Wiz.vsz: VSWIZARD 7.0 Wizard=VsWizard.VsWizardEngine.9.0 Param="WIZARD_NAME = MyApplication" Param="RELATIVE_PATH = VCWizards\AppWiz\Generic" Param="CONSOLE_TYPE_ONLY = false" для Mywin32console.vsz VSWIZARD 7.0 Wizard=VsWizard.VsWizardEngine.9.0 Param="WIZARD_NAME = MyApplication" Param="RELATIVE_PATH = VCWizards\AppWiz\Generic" Param="CONSOLE_TYPE_ONLY = true" 6) Запускаем VC (лучше запустить новый экземпляр, замечал, что в уже открытом не всегда отображаются изменения), проверяем, что в дереве типов проектов появился новый узел с именем MyWin32 с шаблонами Мое приложение Win32 и Мое консольное приложение Win32. Пока этот узел содержит стандартные шаблоны (хоть и переименованные). Пробуем создать проекты, если все работает, то можно продолжать эксперементировать далее. Добавлено через 3 минуты Кроме этого используются сценарии из файлов *.js: 1. Общие сценарии (могут использоваться для всех шаблонов): ...\Microsoft Visual Studio 9.0\VC\VCWizards\1049\ 2. Сценарии, специфичные для данного шаблона, например, для стандартного проекта Win32: ...\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\Generic\Application\scripts\1049\ Именно в последней папке содержатся сценарии добавляющие большинство параметров проекта в файл *.vcproj
1
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
12.01.2012, 18:36 [ТС] | 7 |
Спасибо за ответ! Я практически решил задачу, но немного другим способом: как я и напиал в предыдущем посте, я добавил пункт "My Win32 Project" в стандартное окно настройки приложения (там, где есть пункты "Пустой проект", "Предварительно скомпилированный заголовок" и т.д.), написал обработчик в javascript-файлах и профит! Заработало, как я и хотел. Отсалось только разобраться с мелочью, типа кодировка, дефолтный файл и т.д. Когда закончу, выложу сюда, мало ли кому еще пригодится
![]()
0
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
||||||||||||||||||||||||||
12.01.2012, 20:48 [ТС] | 8 | |||||||||||||||||||||||||
Все, готово! Только осталась проблема с кодировкой: в файле есть русские символы, если открыть отдельно файл в студии, то все отображается нормально, а если с омощью мастера, то вместо символов - крякозябры. Ну да ладно, не самое страшное, просто перевел на английский, теперь там нет русских символов.
Теперь как я все сделал: 1) C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\html\1033\AppSettings.htm
Где-то 223 строчка:
2) C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\html\1033\default.htm
14 строчка:
3) C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\scripts\1033\default.js
Самая первая функция в файле:
4) C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\templates\1033\Templates.inf
Тут находятся инструкции, какие файлы включить в проект: Код
[!if !MY_OWN] readme.txt [!if LIB_APP] [!if PRE_COMPILED_HEADER] stdafx.h targetver.h stdafx.cpp [!endif] [!else] stdafx.h targetver.h stdafx.cpp OpenFile | root.cpp [!if WIN_APP || SUPPORT_MFC] resource.h root.rc [!endif] [!if WIN_APP || SUPPORT_MFC] root.h [!else] [!if DLL_APP && EXPORT_SYMBOLS] root.h [!endif] [!endif] [!if WIN_APP] CopyOnly | small.ico CopyOnly | root.ico [!endif] [!endif] [!if DLL_APP && !SUPPORT_MFC] dllmain.cpp [!endif] [!else] OpenFile | Main.cpp [!endif] Все файлы, которые прописали в здесь, нужно положить в эту же папку. В подключаемом файле тоже можно использовать директивы, например вот мой файл:
1
|
12.01.2012, 20:48 | |
Помогаю со студенческими работами здесь
8
Экспорт шаблона проекта Пересборка проекта для изменения шаблона Софт для совместной работы с функцией шаблона проекта Нужен дизайнер минималистичного, но современного шаблона для молодого и перспективного проекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |