1 / 1 / 1
Регистрация: 09.05.2014
Сообщений: 13
1

Как заставить работать форму

09.05.2014, 20:18. Показов 4084. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Что нужно сделать: создать форму C++ (именно так, не с#), которая бы считывала вводимое в одно поле число, по нажатию на button записывала бы в другое поле вычисленный факториал этого числа (пример остюда: http://code-live.ru/post/first-windows-form/ )
Задача, казалось бы, простая, но возникло несколько трудностей.
Что я делаю:
1) Создаю пустой с++ CLR-проект fuckt, далее добавляю в него новый элемент - Visual с++ -> UI -> Windows Form (назвал MyForm)
2) Добавляю нужные элементы в форму: два NumericUpDownBox'a, в первый надо будет ввести число, во второй должен записаться ответ (назвал num1 и num2 соответственно); также создал кнопку (назвал b1).
3) В заголовочные файлы добавил fact.h, в исходники - fact.cpp. Итого в проекте два заголовка (MyForm.h & fact.h) и два .cpp-файла с теми же именами.
4) Заполняю файлы кодом

C++
1
2
3
//fact.h
 
long int fact(int N);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//fact.cpp
 
#include "fact.h"
#pragma once
 
 
long int fact(int N)
{
    if (N < 0)
        return 0;
    if (N == 0)
        return 1;
    else
        return N * fact(N - 1);
}
В fact.cpp на сайте с инструкцией также было включено #include "stdafx.h" и не было #include "fact.h". На первое MSVS Express 13 ругается "не удалось открыть источник файл", второе мне показалось странным и я решил проявить инициативу.

C++
1
2
3
4
//MyForm.cpp
 
#include "MyForm.h"
#include "fact.h"
Про заполнение этого файла вообще ничего не было сказано, кроме как добавить fact.h

Далее добавляю обработку нажатия кнопки:
C++
1
2
3
4
5
6
7
// из MyForm.h
    private: System::Void b1_Click(System::Object^  sender, System::EventArgs^  e)
    {
                 int number = System::Convert::ToInt32(num1->Text);
                 long int factor = fact(number);
                 num2->Text = System::Convert::ToString(factor); 
    }
Пытаюсь так скомпиллировать, выдает ошибку:
"Ошибка 1 error C3861: fact: идентификатор не найден c:\users\ayerice\documents\visual studio 2013\projects\fuckt\fuckt\MyForm.h"
Хотя при наведении мышью на fact(number) всплывает "long fuct(int N)".
Не придумал ничего лучше, как приписать в самый верх MyForm.h #include "fact.h". Теперь следующая ошибка:
"Ошибка 1 error LNK1561: Єюўър тїюфр фюыцэр с√Є№ юяЁхфхыхэр C:\Users\Ayerice\Documents\Visual Studio 2013\Projects\fuckt\fuckt\LINK fuckt"
Я так понял, полазив по инету, что нужно обозначить программе точку входа. Тогда я делаю следующее:

C++
1
2
3
4
5
6
7
//MyForm.cpp
 
#include "MyForm.h"
#include "fact.h"
 
void main()
{}
Теперь все компиллится, но вместо формы на экране появляется пустая консоль и через секунду исчезает.
Где я глобально не понимаю и как заставить форму заработать? Очень надеюсь на вашу помощь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2014, 20:18
Ответы с готовыми решениями:

Как заставить работать форму?
Здравствуйте уважаемые форумчане! Есть форма с кодом &lt;?php /* Plugin Name: farecalculator...

Как заставить контактную форму работать?
Здравствуйте, уважаемые форумчане! Как заставить данную контактную форму работать следующим...

Как заставить работать javascript через обработку форму?
У меня есть такая форма &lt;form action=&quot;report.php&quot; method=&quot;post&quot;&gt; &lt;input type=&quot;text&quot;...

Заставить работать форму отправки E-Mail
Доброго времени суток,столкнулся с проблемой,что обратная форма связи не работает,я так понимаю нет...

3
1 / 1 / 1
Регистрация: 09.05.2014
Сообщений: 13
31.03.2015, 22:13  [ТС] 2
Вопрос давно уже решен, тему можно удалять.
0
Администратор
Эксперт .NET
9610 / 4752 / 761
Регистрация: 17.04.2012
Сообщений: 9,606
Записей в блоге: 14
01.04.2015, 19:26 3
Ayerice, темы на форуме по решению вопроса не удаляются и не закрываются.
Было бы хорошо, если бы вы написали, в чём была проблема, возможно это кому-нибудь поможет в будущем.
0
1 / 1 / 1
Регистрация: 09.05.2014
Сообщений: 13
23.04.2015, 01:19  [ТС] 4
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Хммм, ну окей.
Если вкратце, то я тупо не понимал, как инициализировать форму. Разобрался сам с помощью сторонних ресурсов, но если бы тогда существовала вот эта тема, таких вопросов бы не возникло.
Создание графического приложения (Windows Forms) в Visual Studio

Другими словами, некорректно написана (точнее, вообще не написана) точка вхождения формы в функции main.
Возможно (даже очень вероятно) в коде есть еще косяки, т.к. по незнанию пытался слепить абы как.
1
23.04.2015, 01:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2015, 01:19
Помогаю со студенческими работами здесь

Заставить работать форму отправки E-Mail
В интернете набрел на хороший бесплатный шаблон, собственно все сделал под себя, только вот форму...

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта - все дело в...

Как заставить работать do while
Печатает пока 100 строк не будут заполнены, нужно при вводе символа n закончить принятие данных и...

Как заставить работать ? :)
Form1.label6.caption := FloatTostr (dosp); if Dosp &lt;=0.1 then Form1.label7.caption := '0.1'; ...


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

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

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