- •Содержание
- •Очистка буферов графического устройства
- •Избирательная очистка буферов
- •Устранение скрытых дефектов приложения
- •Общие сведения о примитивах
- •Введение в hlsl
- •Типы данных hlsl
- •Функции и семантики hlsl
- •Техники, проходы и профили hlsl
- •IncludeHandler – объект, используемый для обработки директив #include в fx-файле. Так как наш файл не содержит директив #include, мы будем использовать значение null
- •Визуализация объекта, использующего эффект
- •Запускающее приложение
Запускающее приложение
Если вы все делали так как описано, то исполнимые сборки для упражнений 1 и 2 должны находиться относительно папки решений FormsXNA в подпапках:
FormsXNA\Application1\bin\Debug\Application1.exe
FormsXNA\Application2\bin\Debug\Application2.exe
В этом разделе, для тренировки, мы добавим к проекту простое приложение, запускающее сборки с выполненными упражнениями, чтобы легче было их демонстрировать.
Добавьте к решению новый проект с именем StartForm и сделайте его стартовым
Переименуйте файл формы Form1.cs в StartForm.cs и откройте его в режиме View Designer и поместите на форму два экземпляра компонентаLinkLabel
Создайте для них обработчики события LinkClicked и заполните их следующим кодом
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace StartApp
{
public partial class StartForm : Form
{
System.Diagnostics.Process exe = new System.Diagnostics.Process();
String path; // Путь к папке с решением
public StartForm()
{
InitializeComponent();
path = Directory.GetCurrentDirectory();// Получаем путь к сборке StartForm
int pos = path.LastIndexOf(@"\bin\");
path = path.Substring(0, pos);// Убираем 2 последних секции пути
pos = path.LastIndexOf(@"\");
path = path.Substring(0, pos);// Убираем еще одну секцию
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Directory.SetCurrentDirectory(path + @"\Application1\bin\Debug");// Путь к сборке
exe.StartInfo.FileName = "Application1.exe";
System.Diagnostics.Debug.WriteLine(path); // Для отладки в окно Output
exe.Start();
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Directory.SetCurrentDirectory(path + @"\Application2\bin\Debug");// Путь к сборке
exe.StartInfo.FileName = "Application2.exe";
System.Diagnostics.Debug.WriteLine(path); // Для отладки в окно Output
exe.Start();
}
}
}
Код будет работать при условии, что сборка стартовой формы находится в своем каталоге bin дерева решения.
