7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
1

Создание шаблона проекта (c++)

07.01.2012, 22:11. Показов 3220. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Часа 2 искал, как это сделать, т.к. по дефолту студия не позволяет экспортировать шаблоны. На этом форуме нашел 2 темы, но ответа я так и не нашел. В МСДН'е делал как там написано, но все равно, наверное я криво что-то делаю.

Мне нужно создать шаблон проекта на WinAPI. Там у меня один файл - Main.cpp. Я создал файл
MyTemplate.vstemplate
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Type="Project" Version="1.0.0"
    xmlns="http://schemas.microsoft.com/developer/vstemplate/2008">
    <TemplateData>
        <Name>Win32</Name>
        <Description>Win32 Application</Description>
        <Icon>Icon.ico</Icon>
        <ProjectType>Web</ProjectType>
    </TemplateData>
    <TemplateContent>
            <ProjectItem>Main.cpp<ProjectItem>
    </TemplateContent>
</VSTemplate>

Я не понимаю, как у них хитро определяется язык шаблона - только CSharp и VBasic, ну и Web. Последний делится только на 2 языка. Где мой C++?
Пакую этот файл, Main.cpp и иконку в ZIP файл. В инструкциях я не нашел, куда копировать этот файл. Ну да ладно, копирую в Common7/IDE/ProjectTemplates/CSharp - нулевой резульат. Копирую еще в несколько подкаталогов этой папки и в Documents/VS2010/Templates - тот же нуль. Может где можно найти стандартные шаблоны и посмотреть как они там все это сделали? Но я не нашел...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2012, 22:11
Ответы с готовыми решениями:

Создание шаблона проекта
Доброго времени суток. Избитая тема..сделал проект с Windows Form C++\CLI. Захотелось мне теперь...

Создание шаблона проекта visual studio 2005
Здравствуйте. Необходимо создать шаблон консольного проекта, т.е. например, чтобы при создании...

MVS 2005. Создание нового проекта. Изменение шаблона
Вопрос такой: когда создаю на MVS 2005 новый проект (console application) выбираю precompiled...

Создание шаблона для проекта
есть билдер, открываю FILE-OTHER. Вылазит список различных проектов которые могу создать(cpp фаил,...

7
374 / 321 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
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
Когда я создал проект на основе моего нового мастера, он выдал ошибку, что не может найти файл "OpenFile | Main.cpp". Ну что же, я оставил просто "Main.cpp". Теперь после создания проекта появляется этот файл, но не открывается по дефолту (жаль, но что поделаешь, решил - потом разберусь). Пришлось внести некоторые изменения в Main.cpp, т.к. обычно с помощью дефайнов определено, что CreateWindow = CreateWindowW, а если создать проект на основе моего мастера, то CreateWindow = CreateWindowA. То же самое и с MessageBox. Решил запустить проект, но появилась
ошибка
Не удается найти отладочную информацию для Test.exe или не найдено соответствие. Двоичный код не был построен с отладочной информацией. Продолжить отладку?
.
Еще я попробовал изменить стандартные файлы в тех папках, в которых Вы мне подсказали. Все удалось, но не смог убрать опцию "Предварительно скомпилированный заголовок", из-за чего ругается на файл stdafx.h. Остальное все получилось.
Вобщем не знаю, что делать.
0
374 / 321 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
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. Но не помогло.
Цитата Сообщение от bigredcat Посмотреть сообщение
Изменять стандартный мастер - не очень хорошая идея, на мой взгляд. Нужно было создать копию мастера и эксперементировать с ней.
Знаю, что не хорошая, но бекап сделал - поэтому решил, что попробую.
Но как-то не правильно это, править системные файлы. Лучше, конечно, со "Специальным Мастером". Если будут идеи, то пишите, т.к. тема все еще актуальна. А пока я попробую добавить в HTML форму с созданием Win32 проекта свой пункт "My Win32 project"
0
374 / 321 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
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 минуты
Цитата Сообщение от shalad Посмотреть сообщение
Спасибо, но я это тоже делал, т.е. смотрел html файлы и ставил false там, где было упоминание о заголовках. Это было в самом начале default.html и в нем же в функциях javascript. Но не помогло.
Кроме этого используются сценарии из файлов *.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 строчка:
HTML5
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
<SPAN CLASS="itemText" ID="ADDITIONAL_OPTIONS_SPAN" TITLE="">Additional options:
 
                     <P CLASS="Spacer">&nbsp;</P>
 
                     <INPUT TYPE="checkbox" CLASS="CheckBoxA" ACCESSKEY="E" ID="EMPTY_PROJECT" TITLE="This option creates a .vcxproj file based on the project name you specified but adds no files to it. Use this when you intend to supply all your own source files." onPropertyChange="OnEmptyProject();">
                     <DIV CLASS="itemTextCheckboxB" TITLE="This option creates a .vcxproj file based on the project name you specified but adds no files to it. Use this when you intend to supply all your own source files." ID="empty_project_title">
                      <LABEL FOR="EMPTY_PROJECT" ID="EMPTY_PROJECT_LABEL"><U>E</U>mpty project</LABEL>
                     </DIV>
 
                     <BR>
 
                     <INPUT TYPE="checkbox" CLASS="CheckBoxA" ACCESSKEY="X" ID="EXPORT_SYMBOLS" TITLE="For DLL project only; specifies that the DLL will export symbols.">
                     <DIV CLASS="itemTextCheckboxB" TITLE="For DLL project only; specifies that the DLL will export symbols." ID="export_symbols_title">
                      <LABEL FOR="EXPORT_SYMBOLS" ID="EXPORT_SYMBOLS_LABEL">E<U>x</U>port symbols</LABEL>
                     </DIV>
 
                     <BR>
 
                     <INPUT TYPE="checkbox" CLASS="CheckBoxA" ACCESSKEY="P" ID="PRE_COMPILED_HEADER" TITLE="Specifies use of a precompiled header file.">
                     <DIV CLASS="itemTextCheckboxB" TITLE="Specifies use of a precompiled header file." ID="pre_compiled_header_title">
                      <LABEL FOR="PRE_COMPILED_HEADER" ID="PRE_COMPILED_HEADER_LABEL"><U>P</U>recompiled header</LABEL>
                     </DIV>
 
                     <BR>
 
                     <INPUT TYPE="checkbox" CLASS="CheckBoxA" ACCESSKEY="m" ID="MY_OWN" TITLE="Create project with my own file." onPropertyChange="OnMyProject();">
                     <DIV CLASS="itemTextCheckboxB" TITLE="Create project with my own file" ID="my_own_title">
                      <LABEL FOR="MY_OWN" ID="MY_OWN_LABEL"><U>M</U>y Win32 project</LABEL>
                     </DIV>
                </SPAN>
Дальше в самом конце файла функции javascript(можно найти по ключевому слову "InitControls")
Javascript
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
function InitControls()
{
    MY_OWN.disabled = true;
    my_own_title.disables = true;
    EMPTY_PROJECT.disabled = true;
    empty_project_title.disabled = true;
    EXPORT_SYMBOLS.disabled = true;
    export_symbols_title.disabled = true;
    PRE_COMPILED_HEADER.disabled = true;
    pre_compiled_header_title.disabled = true;
    SUPPORT_ATL.disabled = true;
    support_atl_title.disabled = true;
    SUPPORT_MFC.disabled = true;
    support_mfc_title.disabled = true;
 
    if (CONSOLE_APP.checked)
    {
        EMPTY_PROJECT.disabled = false;
        empty_project_title.disabled = false;
        SUPPORT_ATL.disabled = false;
        support_atl_title.disabled = false;
        SUPPORT_MFC.disabled = false;
        support_mfc_title.disabled = false;
        if(!SUPPORT_MFC.checked && !SUPPORT_ATL.checked)
        {
            PRE_COMPILED_HEADER.disabled = false;
            pre_compiled_header_title.disabled = false;
        }
 
    }
    if (WIN_APP.checked)
    {
        MY_OWN.disabled = false;
        my_own_title.disables = false;
        EMPTY_PROJECT.disabled = false;
        empty_project_title.disabled = false;
        SUPPORT_ATL.disabled = false;
        support_atl_title.disabled = false;
    }
    if (DLL_APP.checked)
    {
        EMPTY_PROJECT.disabled = false;
        empty_project_title.disabled = false;
        EXPORT_SYMBOLS.disabled = false;
        export_symbols_title.disabled = false;
        SUPPORT_ATL.disabled = false;
        support_atl_title.disabled = false;
        SUPPORT_MFC.disabled = false;
        support_mfc_title.disabled = false;
    }
    if (LIB_APP.checked)
    {
        PRE_COMPILED_HEADER.disabled = false;
        pre_compiled_header_title.disabled = false;
        SUPPORT_MFC.disabled = false;
        support_mfc_title.disabled = false;
    }
    if (PRE_COMPILED_HEADER.disabled)
    {
        PRE_COMPILED_HEADER.checked = true;
    }
 
    if (window.external.FindSymbol("IS_EXPRESS_SKU"))
    {
        SUPPORT_ATL.disabled = true;
        support_atl_title.disabled = true;
        SUPPORT_MFC.disabled = true;
        support_mfc_title.disabled = true;
    }
 
 
    OnEmptyProject();
    OnMyProject();
    ToggleImage();
}
 
function OnEmptyProject()
{
    if (!EMPTY_PROJECT.disabled)
    {
        if (EMPTY_PROJECT.checked)
        {
            MY_OWN.disables = true;
            my_own_title.disabled = true;
            PRE_COMPILED_HEADER.disabled = true;
            pre_compiled_header_title.disabled = true;
            EXPORT_SYMBOLS.disabled = true;
            export_symbols_title.disabled = true;
            SUPPORT_ATL.disabled = true;
            support_atl_title.disabled = true;
            SUPPORT_MFC.disabled = true;
            support_mfc_title.disabled = true;
        }
        else
        {
            if (DLL_APP.checked)
            {
                EXPORT_SYMBOLS.disabled = false;
                export_symbols_title.disabled = false;
                SUPPORT_ATL.disabled = false;
                support_atl_title.disabled = false;
                SUPPORT_MFC.disabled = false;
                support_mfc_title.disabled = false;
            }
            if (WIN_APP.checked)
            {
                EMPTY_PROJECT.disabled = false;
                empty_project_title.disabled = false;
 
                SUPPORT_ATL.disabled = false;
                support_atl_title.disabled = false;
            }
            if (CONSOLE_APP.checked)
            {
                SUPPORT_ATL.disabled = false;
                support_atl_title.disabled = false;
                if (!LIB_APP.checked)
                {
                    SUPPORT_MFC.disabled = false;
                    support_mfc_title.disabled = false;
                }
            }
 
            if (window.external.FindSymbol("IS_EXPRESS_SKU"))
            {
                SUPPORT_ATL.disabled = true;
                support_atl_title.disabled = true;
                SUPPORT_MFC.disabled = true;
                support_mfc_title.disabled = true;
 
            }
        }
    }
}
 
function OnMyProject()
{
    if (!MY_OWN.disabled)
    {
        if (MY_OWN.checked)
        {
            EMPTY_PROJECT.disabled = true;
            empty_project_title.disabled = true;
            PRE_COMPILED_HEADER.disabled = true;
            pre_compiled_header_title.disabled = true;
            EXPORT_SYMBOLS.disabled = true;
            export_symbols_title.disabled = true;
            SUPPORT_ATL.disabled = true;
            support_atl_title.disabled = true;
            SUPPORT_MFC.disabled = true;
            support_mfc_title.disabled = true;
        }
        else
        {
            if (DLL_APP.checked)
            {
                EXPORT_SYMBOLS.disabled = false;
                export_symbols_title.disabled = false;
                SUPPORT_ATL.disabled = false;
                support_atl_title.disabled = false;
                SUPPORT_MFC.disabled = false;
                support_mfc_title.disabled = false;
            }
            if (WIN_APP.checked)
            {
                EMPTY_PROJECT.disabled = false;
                empty_project_title.disabled = false;
 
                SUPPORT_ATL.disabled = false;
                support_atl_title.disabled = false;
            }
            if (CONSOLE_APP.checked)
            {
                SUPPORT_ATL.disabled = false;
                support_atl_title.disabled = false;
                if (!LIB_APP.checked)
                {
                    SUPPORT_MFC.disabled = false;
                    support_mfc_title.disabled = false;
                }
            }
 
            if (window.external.FindSymbol("IS_EXPRESS_SKU"))
            {
                SUPPORT_ATL.disabled = true;
                support_atl_title.disabled = true;
                SUPPORT_MFC.disabled = true;
                support_mfc_title.disabled = true;
 
            }
        }
    }
}
Здесь добавили еще один чекбокс и метку для него (надпись, которая отображается справа от него). При изменении флага вызывается функция OnMyProject(), которая находится внизу файла. Я тупо скопировал функцию OnEmptyProject и немного подправил ее. При этом еще надо поправить InitControl и OnEmptyProject, см.выше.


2)
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\html\1033\default.htm

14 строчка:
HTML5
1
2
3
4
5
6
7
8
9
10
11
<SYMBOL NAME="CONSOLE_APP" TYPE=checkbox VALUE=false></SYMBOL>
    <SYMBOL NAME="WIN_APP" TYPE=checkbox VALUE=true></SYMBOL>
    <SYMBOL NAME="DLL_APP" TYPE=checkbox VALUE=false></SYMBOL>
    <SYMBOL NAME="LIB_APP" TYPE=checkbox VALUE=false></SYMBOL>
 
    <SYMBOL NAME="EMPTY_PROJECT" TYPE=checkbox VALUE=false></SYMBOL>
    <SYMBOL NAME="EXPORT_SYMBOLS" TYPE=checkbox VALUE=false></SYMBOL>
    <SYMBOL NAME="PRE_COMPILED_HEADER" TYPE=checkbox VALUE=false></SYMBOL>
    <SYMBOL NAME="MY_OWN" TYPE=checkbox VALUE=true></SYMBOL>
    <SYMBOL NAME="SUPPORT_ATL" TYPE=checkbox VALUE=false></SYMBOL>
    <SYMBOL NAME="SUPPORT_MFC" TYPE=checkbox VALUE=false></SYMBOL>
Тут просто задали умолчания, т.е. по дефолту будет создаваться наше приложение.


3)
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\scripts\1033\default.js

Самая первая функция в файле:
Javascript
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function OnFinish(selProj, selObj)
{
    try
    {
        var strProjectPath = wizard.FindSymbol("PROJECT_PATH");
        var strProjectName = wizard.FindSymbol("PROJECT_NAME");
 
        var bEmptyProject = wizard.FindSymbol("EMPTY_PROJECT");
        var bMyOwn = wizard.FindSymbol("MY_OWN");
 
        wizard.AddSymbol("RC_FILE_NAME",CreateSafeRCFileName(strProjectName) + ".rc");
 
        selProj = CreateProject(strProjectName, strProjectPath);
        selProj.Object.Keyword = "Win32Proj";
 
        AddCommonConfig(selProj, strProjectName);
        var strAppType = GetAppType();
        AddSpecificConfig(selProj, strProjectName, bEmptyProject, strAppType);
 
        SetupFilters(selProj);
 
        if (!bEmptyProject && !bMyOwn)
        {
            SetResDlgFont();
            
            var Pch = wizard.FindSymbol("PRE_COMPILED_HEADER");
 
            if ((strAppType == "LIB" || ((strAppType == "CONSOLE") && 
                        !wizard.FindSymbol("SUPPORT_MFC") && !wizard.FindSymbol("SUPPORT_ATL"))) && !Pch) 
            {
                AddFilesToProjectWithInfFile(selProj, strProjectName);
                SetNoPchSettings(selProj);
            }
            else
            {
                AddFilesToProjectWithInfFile(selProj, strProjectName);
                SetCommonPchSettings(selProj);  
            }
        }
        else if (bMyOwn)
        {
            AddFilesToProjectWithInfFile(selProj, strProjectName);
            SetNoPchSettings(selProj);
        }
        selProj.Object.Save();
    }
    catch(e)
    {
        if (e.description.length != 0)
            SetErrorInfo(e);
        return e.number
    }
}
Тут мы говорим, что делать, если мы поставили галку напротив "My win32 Project"


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]
Файлы нужно прописывать с новой строчки. Есть некоторы директивы, которые я использовал.
Все файлы, которые прописали в здесь, нужно положить в эту же папку.
В подключаемом файле тоже можно использовать директивы, например вот мой файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma comment(linker,"/manifestdependency:\"type='win32' \
                        name='Microsoft.Windows.Common-Controls' \
                        version='6.0.0.0' processorArchitecture='*'\
                        publicKeyToken='6595b64144ccf1df' language='*'\"")
#include <Windows.h>
//////////////////////////Settings/////////////////////////////
#define HEIGHT              400
#define WIDTH               600
#define CLASSNAME           L"[!output PROJECT_NAME]Class" // директива, которая выводит название проекта
#define HEADER              L"[!output PROJECT_NAME]"
///////////////////////////////////////////////////////////////
//... и т.д.
Миниатюры
Создание шаблона проекта (c++)  
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2012, 20:48
Помогаю со студенческими работами здесь

Экспорт шаблона проекта
Добрый день, возникла такая проблема, хочу создать свой шаблон проекта для c++, но возникают...

Пересборка проекта для изменения шаблона
Здравствуйте! Дорабатываю чужой проект (связи с авторами нет) из множества сборок и пакетов....

Софт для совместной работы с функцией шаблона проекта
Добрый день! Мне нужен софт для планирования и контроля выполнения простых и однообразных...

Нужен дизайнер минималистичного, но современного шаблона для молодого и перспективного проекта
Доброго времени суток! Я представляю молодой и развивающийся проект GeekSpecial! На данный момент я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru