19 / 19 / 14
Регистрация: 06.08.2009
Сообщений: 535
1

Где в Visual Studio 2010 настроить параметры компилятора?

21.09.2015, 21:07. Показов 5242. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста, где в Visual Studio 2010 настроить параметры компиляции? Конкретно нужно указать параметр /F - размер стека. Искал в свойствах проекта, что-то нигде не нашёл, может, не там ищу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2015, 21:07
Ответы с готовыми решениями:

Совместимость компилятора 2015 с visual studio 2010
Сталкивался ли кто-то из здесь присутствующих с проблемой компиляции программы написанной в 2015 в...

Настроить Visual studio 2010
Как сделать, чтобы в вижуал студио было проще работать. Вот как в этом видео, он пишет web-> и...

Где Controls в Visual Studio 2010
Выполняю практическое задание по Visual C++, но проблема в том, что само описание, как сделать...

Где найти Visual Studio 2010?
У меня на домашнем пк стоит visual studio 2010. Мне нужно её поставить на ноутбук. Посоветуйте где...

9
Эксперт .NETАвтор FAQ
10417 / 5147 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
21.09.2015, 21:50 2
megabax, Нет такой настройки.
Если вам нужен больший размер стека - создайте отдельный поток и там укажите любой размер стека.
0
Ушел с форума
Эксперт С++
16476 / 7439 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
22.09.2015, 09:10 3
Здесь (VS2010 Pro SP1):
Где в Visual Studio 2010 настроить параметры компилятора?


И сразу скажу, что решать проблемы со стеком (например, переполнение в
результате глубокой рекурсии) путем его увеличения - плохая практика.
0
19 / 19 / 14
Регистрация: 06.08.2009
Сообщений: 535
22.09.2015, 10:50  [ТС] 4
Убежденный, То есть, размер стека можно изменить только в программе на C++? А в C# такой опции нет, только как сказано выше через потоки?
Дело в том что надо будет делать лабу, в которой нужно будет умышленно вызвать ошибку переполнения стека при рекурсии, препод сказал что для этого придется уменьшить размер стека в опциях компилятора. Язык можно выбрать любой, но C++ я знаю не так хорошо, как C#.
0
Ушел с форума
Эксперт С++
16476 / 7439 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
22.09.2015, 11:26 5
Н-да, а мне что-то померещилось, что тема находится в разделе C++...
Для переполнения стека необязательно уменьшать его размер.
Можно увеличить количество и размер стековых переменных.
Например, рекурсивная функция, содержащая локальный массив или
структуру большого размера, вызовет переполнение стека гораздо быстрее.
1
Эксперт .NETАвтор FAQ
10417 / 5147 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
22.09.2015, 11:32 6
Цитата Сообщение от megabax Посмотреть сообщение
умышленно вызвать ошибку переполнения стека при рекурсии, препод сказал что для этого придется уменьшить размер стека в опциях компилятора
Не придется:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
 
namespace ConsoleApplication198
{
    class Program
    {
        static void Main(string[] args)
        {
            DoSomething();
            Console.ReadKey();
        }
 
        private static void DoSomething()
        {
            var temp = new Foo();
            DoSomething();
        }
    }
 
    unsafe struct Foo
    {
        public fixed int buffer[200000];
    }
}
Вылетает уже на второй-третьей итерации
(в свойствах проекта - нужно поставить allow unsafe code)
1
19 / 19 / 14
Регистрация: 06.08.2009
Сообщений: 535
22.09.2015, 12:49  [ТС] 7
Убежденный, Вот тоже была такая мысль, это проще простого, только боюсь, не прокатит, хотя, спрошу у преподавателя, вдруг разрешит так сделать.

Добавлено через 1 минуту
В любом случае, спасибо за советы.
0
127 / 121 / 68
Регистрация: 27.08.2015
Сообщений: 232
22.09.2015, 12:52 8
А зачем уменьшать размер стека и мучаться c параметрами, переменными? Простой код:
C#
1
2
3
4
5
6
7
class Program
{
    static void Main()
    {
        Main();
    }
}
вызывает переполнение стека практически "мгновенно".
0
19 / 19 / 14
Регистрация: 06.08.2009
Сообщений: 535
24.09.2015, 19:42  [ТС] 9
Storm23,
Цитата Сообщение от Storm23 Посмотреть сообщение
megabax, Нет такой настройки.
Если вам нужен больший размер стека - создайте отдельный поток и там укажите любой размер стека.
А подскажите пожалуйста, как указать размер стека у отдельного потока? Сделал вот так:
C#
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
    public partial class Form1 : Form
    {
        Thread thread;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //MessageBox.Show(mult(1,Convert.ToInt32(numericUpDown1.Value)).ToString());
            thread = new Thread(this.ThreadingFunction);
            thread.Start();            
        }
 
        private double mult(double a, int b)
        {
            if (b == 0) return 0;
            return a+mult(a,b-1);
        }
 
        /// <summary>
        /// Метод, выполняемый в потоке
        /// </summary>
        void ThreadingFunction()
        {
 
            //Так как нельзя вызывать контрол в том потоке в котором он не был создан
            //следует использовать конструкцию this.Invoke((MethodInvoker)delegate
            //который выполняет указанный делегат в том потоке, которому принадлежит базовый дескриптор 
            //окна элемента управления.
            this.Invoke((MethodInvoker)delegate
            {
                lbRes.Text = mult(1, Convert.ToInt32(numericUpDown1.Value)).ToString();
            });
 
            thread.Abort();
        }
 
    }
Но где у theard указать размер программного стека, непонятно.
0
Эксперт .NETАвтор FAQ
10417 / 5147 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
24.09.2015, 19:56 10
megabax,
C#
1
thread = new Thread(this.ThreadingFunction);
=>
C#
1
thread = new Thread(this.ThreadingFunction, 100000);
https://msdn.microsoft.com/ru-... .110).aspx
0
24.09.2015, 19:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2015, 19:56
Помогаю со студенческими работами здесь

Где найти русификатор к Visual Studio 2010?
Здраствуйте не знаю туда ли пишу. Мне нужен русификатор к Visual Studio 2010. Может есть ссилка...

Где в Visual Studio 2010 источник данных?
Здравствуйте,глупый вопрос конечно,но что-то не могу найти в Visual Studio 2010 источник...

Где можно скачать Visual Studio 2010 C#?
Где можно скачать Visual Studio 2010 C#? А нужно мне это из-за вот этой статьи:...

Где скачать service pack 2 for Visual Studio 2010
Привет всем! Помогите плз новичку (надеюсь, я выбрал правильную ветку форума). До этого активно...


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

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

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