Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487
1

Что писать в builder вместо void mainprog()?

17.09.2009, 16:03. Показов 4023. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть книжка по Borland C 5, в которой есть код
C++
1
2
3
4
5
6
7
#include "franca.h"
athlete Sal
void mainprog()
{
 Sal.ready();
 Sal.say("Hi!");
}
Builder выдает на него ошибку
[C++ Error] c_sal.cpp(5): E2141 Declaration syntax error
Что надо изменить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2009, 16:03
Ответы с готовыми решениями:

Что нужно писать в угловых скобках после Smart в void main?
Подскажите, что нужно писать в угловых скобках после Smart в void main ? #include <iostream>...

можно ли в С++ Builder 2006 писать программы на С++ Builder 6?
подскажите, пожалуйста... если программка написана на С++ Builder 2006, могу ли я перевести проект...

Void menu(void); что это ? почему не void menu();
void menu(void); что это ? почему не void menu(); void naprimer(void); и это идет в классе это...

Что значит void(*f)()=(void(*)()func?
void(*f)()=(void(*)())func; Объясните, пожалуйста, что значит этот код.

13
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
17.09.2009, 21:34 2
Цитата Сообщение от fs444 Посмотреть сообщение
Builder выдает на него ошибку
не удивтельно.. в параметра компилятору вы передали что точка входа (entry point) - mainprog? если нет - переименуйте в main().

и после
Цитата Сообщение от fs444 Посмотреть сообщение
athlete Sal
точку с запятой поставте
0
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487
18.09.2009, 08:41  [ТС] 3
Можно по подробнее про то, что такое точка входа? В инете читал - мало что понял((
Точку с запятой поставил. Скомпилировалось, но ничего не выводит. А должно выводить изображение робота и надпись "Hi!". Или объект этого робота надо поместить куда то в папки билдера?
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.09.2009, 08:48 4
попробуй так:
C++
1
2
3
4
5
6
7
8
#include "franca.h"
athlete Sal;
int main()
{
 Sal.ready();
 Sal.say("Hi!");
 return 0;
}
0
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487
18.09.2009, 09:33  [ТС] 5
Компилятор выдал
[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0W32.OBJ
Что то "нерешенный внешний '__InitVCL' ссылается на C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl". Как это понимать?

Добавлено через 10 минут
А для чего кстати нужен "return 0;"?
0
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.09.2009, 09:33 6
Цитата Сообщение от fs444 Посмотреть сообщение
Компилятор выдал
ты создал консольное приложение?
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.09.2009, 09:33 7
за неимением вашего хидера накропал сам структуру, все работает. билдер с радостью компилит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
#pragma hdrstop
using namespace std;
struct athlete{
  void ready(){}
  void say(string text){
    cout << text << endl;
  }
};
athlete Sal;
int main()
{
 Sal.ready();
 Sal.say("Hi!");
 getch();
 return 0;
}
0
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487
18.09.2009, 09:40  [ТС] 8
ты создал консольное приложение?
File>New>Application, это консольное?

хидер - это h.-файл? Вот он, c_sal.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef c_salH
#define c_salH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
VoodooMan
У меня твой код выводит ошибки
[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0W32.OBJ
0
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.09.2009, 09:43 9
Цитата Сообщение от fs444 Посмотреть сообщение
File>New>Application, это консольное?
нет, это оконное VCL приложение.

для создания консольного: File -> New -> Other -> Console
Появится окно диалога. Сними галочку в пункта VCL.
1
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487
18.09.2009, 09:49  [ТС] 10
Создал консольное. Теперь компилит и выводит пустую форму. Почему ж изображение человечка (объект Sal) не появляется? Может, надо класс athlete откуда то извне подгружать?
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
18.09.2009, 09:54 11
fs444, какой еще человечек? покажи, что у тебя в заголовочном файле написано?
0
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
18.09.2009, 21:54 12
fs444,
Цитата Сообщение от fs444 Посмотреть сообщение
А для чего кстати нужен "return 0;"?
Попробуйте запустить вот такое
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h> 
//==================================================
void main ()
{
char c[11];
static int d;
 
    printf ( " %c Hello, world!!! \2\n " , ++d, d );
    scanf ( "%10s", c, 11 );   // your name 
    printf ( " %c Hello %s!!! %c ", ++d, c, d );
 
getch ();
}//=================================================
здесь ретурн не нужен.
1
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487
21.09.2009, 09:09  [ТС] 13
mirso, выдает
[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0W32.OBJ
Что-то "Нерешенный внешний '__InitVCL' ссылающийся на C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl". Что это может значить?

какой еще человечек?
Программа должна выводить на экран человечка и надпись "Hi!" под ним.
0
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
21.09.2009, 22:17 14
Цитата Сообщение от fs444 Посмотреть сообщение
mirso, выдает
Cоздания консольного приложения в C++ Builder 6
1)File->New->Other->Console Wizard == Ok!
2)затем -> https://www.cyberforum.ru/post202043.html
3)далее -> https://www.cyberforum.ru/post272191.html
4) <Ctrl + shift + S>
Save Unit1 As - создаешь в Папке C:\Program Files\Borland\CBuilder6\Projects
папку своего проекта.
Например
C:\Program Files\Borland\CBuilder6\Projects\fs444
5)В ней сохраняешь Unit1.cpp -> Ok!
6)В ней же сохраняешь и сам проект Project1.bpr(в окне Save Project1 As) -> Ok!
7) Нажимаешь функциональную клавишу F9.
8) Пишешь свое имя (тока настоящее!)
9) Клавиша Enter -> Ok!

Ok!
0
21.09.2009, 22:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2009, 22:17
Помогаю со студенческими работами здесь

Если функция не принимает аргументов, то принято ли писать в её заголовке void?
Если функция не принимает аргументов, то принято ли писать в её заголовке void? Например, вместо:...

Потоки: зачем в вызываемой функции надо писать (void *args)?
void* helloWorld(void *args) { //какой-то код} pthread_create(&amp;thread, NULL, helloWorld, NULL);...

System.Void из C# использоваться не может - для получения объекта типа void используйте typeof (void)
Изучаю с# по &quot;Шилдт Г. - C# 4.0 полное руководство&quot; При изучении конструктора возникла проблема:...

Прошу объяснить, почему перед функцией main, которая ничего не возращает, мы должны писать int, а не void?
Как пример: }#include &lt;stdio.h&gt; * ... main() { float fahr, celsius; * int lower, upper,...


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

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