Ejemplo n.º 1
0
int main()
{
	void (*greet)();
	int (*printit)(const char*, ...);
	
	greetings();
	printf("get: %d\n", get3());
	
	greet = dlsym(RTLD_DEFAULT, "greetings");		// search all objects for the given symbol
	greet();
	
	printit = dlsym(RTLD_DEFAULT, "printf");			// from libc
	printit("libc\n");
	
	return 0;
}
Ejemplo n.º 2
0
int main(int argc, char** argv)
{
	char program_name[64] = "Wave Equation with C";
	char messages[N_MESSAGE_LINES][256] = { "    - Keys used: '0', '1', 't', 'f', 'ESC'" };

	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH | GLUT_MULTISAMPLE);
	glutInitWindowSize(800, 800);
	glutInitContextVersion(4, 2);
	glutInitContextProfile(GLUT_CORE_PROFILE);
	glutCreateWindow(program_name);

	greetings(program_name, messages, N_MESSAGE_LINES);

	initialize_glew();
	initialize_renderer();

	glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
	glutMainLoop();

	return 0;
}
Ejemplo n.º 3
0
int menu()
{
	int i = 0;
	int set_flg = 1;
	int exit_flg = 0;

	do
	{
		CLS;
		greetings();
		printf("\n");
		printf("1. Начать новую игру\n");
		printf("2. Настройки\n");
		printf("...\n");
		printf("0. Выйти из игры\n");
		printf("\nВведите число и нажмите ENTER: ");

		fflush(stdin);
		if(!scanf("%d", &i)) i = 100;
		switch(i)
		{
			case 1:
				start_game();
				break;
			case 2:
				settings();
				break;
			case 0:
				exit(0);
			default: 
				printf("Введите корректное число!\n");
				PAUSE;
				break;
		}
	}while(1);
	return 0;
}
Ejemplo n.º 4
0
void cProtocolParser::parse_rx_buff()
{
    if (m_rx_buff.contains(m_sync_char))
    {
        int index = m_rx_buff.indexOf(m_sync_char);
        int index2 = m_rx_buff.indexOf(m_sync_char,index+1);

        qDebug() << "parse_rx : primer caracter de sync :" << index;
        qDebug() << "parse_rx : segundo caracter de sync:" << index2;

        QString data = m_rx_buff;//.mid(index-1).split(m_sync_char)[1];

        uint last_packet_end = 0;

        QStringList fields = data.split(m_separator_char);
        if(fields.count() > 1)
        {
            uint payload_size = fields.at(1).toInt();
            qDebug() << "campos:"<< fields.count() << "payload:" << payload_size;
            if(fields.count() == payload_size+3)
            {
                if (checksum_is_valid(data))
                {
                    QVector<QString> args;
                    for (uint a = 0 ; a < payload_size ; a++)
                    {
                        args.append(fields[a+2]);
                    }


                    if (fields[0] == QString(m_sync_char).append("SESSION"))
                    {
                      emit session(args);
                    }
                    else if (fields[0] == QString(m_sync_char).append("GREETINGS"))
                    {
                        emit greetings(args);
                    }
                    else if(fields[0] == QString(m_sync_char).append("CHAT"))
                    {

                        emit chat(args);
                    }
                    last_packet_end = data.indexOf(args.last()) + args.last().count();
                }
                else
                {
                    qDebug("[WTF!]cProtocolParser::parse_rx_buff-> el checksum no coincide!!");
                }
            }
            int cut_point = 0;

            if(last_packet_end > 0)
            {
                cut_point = last_packet_end;
            }
            else if(index2>0)
            {
                cut_point = index2;
            }
            else if (index > 0 )
            {
                cut_point = index;
            }
            qDebug() << "parse_rx : cut point:" << cut_point;
            m_rx_buff.remove(0,cut_point);
        }
    }
}