Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 28 из 87<  1 ... 25  26  27  28  29  30  31 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
A620
Код:
#define PATHTODRIVER "C:\BORLANDC\BGI\"

думаю правильнее будет так:
Код:
#define PATHTODRIVER "C:\\BORLANDC\\BGI"



Партнер
 

mein писал(а):
A620
Код:
#define PATHTODRIVER "C:\BORLANDC\BGI"

думаю правильнее будет так:
Код:
#define PATHTODRIVER "C:\\BORLANDC\\BGI"


так тоже не работает...
я уже пробовал исходник в BGI кидать и адрес указыватб ""
тож не работает, даже если в main провести только инициализацию и функцию из график.х
и почему
gd=DETECT;
printf("%c",gd);
выдает NULL?


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
A620 "Options"->"Linker"->Libraries->"Graphics library" галочка должна стоять.

да и в коде проблемы. Попробуй так:
Код:
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

#define PATHTODRIVER "C:\\BORLANDC\\BGI"

void main()
{
   int gdriver;
   int i,x,y;
   int gmode,errorcode;
   char ch[50];
   time_t t;

   gdriver=DETECT;
   initgraph(&gdriver,&gmode,PATHTODRIVER);
   errorcode=graphresult();

   if(errorcode!=0){
       printf("ahtung graphics!!!");
       getch();
       return;
   }

   srand((unsigned) time(&t));
   for(i=0;i<=10;i++)
   {
      x=rand()%639+0;
      y=rand()%478+0;
      settextstyle(rand()%4+0,HORIZ_DIR,10);
      setcolor(rand()%14+1);
      sprintf(ch,"%d\n",rand()%31 +128);
      outtextxy(x,y,ch);
      sleep(1);
   }
   getch();
   closegraph();
}


 

да с функциями графикс.х все норм - спасиб:beer:
теперь проблема с outtextxy-там в третьем параметре должна быть символическая константа, а мне туда нужно поставить генерируемую переменную. Как быть?:oops:

ЗЫ желательно для вывода использовать функции графики, так через cprintf с conio.h было бы попроще...


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
A620 писал(а):
теперь проблема с outtextxy-там в третьем параметре должна быть символическая константа, а мне туда нужно поставить генерируемую переменную. Как быть?

В третьем параметре должен быть массив char'ов оканчивающийся нулём. Генерируемая переменная я так понимаю это случайное число? Если да то я так и сделал. sprintf формирует строку(случайное десятичное число в диапозоне 0..158 - rand()%31 +128), а outtextxy уже непосредственно выводит на экран.
Просто почитайте справку по sprintf и сразу станет ясно :) .


 

да разобрался с sprintf (протупил не объявив ch как массив):oops:

теперь с этой прогой проблема в Borland Builder 6 там есть graphics.HPP и graph_97.h и др. расположены в include\vcl;
объявляю #include"Include\\Vcl\\graphics.hpp" (инклуд в текущем каталоге)

при компиляции ошибка на строке gdriver=DETECT; undefined symbol DETECT
я слышал что под виндой досовский драйвер не подходит... :spy:
в общем как объявлять путь к драйверу в Билдере(поиск в каталоге BGI не нашел) и почему графикс со странным расширением?


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Читаю книгу Андре Ламота, Программирование игр для Windows (часть 1-я) и он там вскользь заметил, что ресурсы - строки можно использовать для решения проблемы с языком интерфейса программы, т.е. сделать *.dll с ресурсами строк, а затем использовать строки из этого *.dll для программы, таким образом не понадобиться перекомпилировать всю программу для изменения некоторого текста. Я понимаю, что это всего лишь один из способов решения проблемы и наверника не самый лучший, но тем не менее я до сих пор нигде невстречал (в книгах) работу с *.DLL, честно говоря я в ужасе, почему это нигде не описывается?
В общем я решил попробовать реализовать выше описанный метод, но я не знаю как работать с *.DLL как из него извлечь ресурсы строк? Я видел как из *.DLL "извлекается" функция: extern "c" прототип функции, а как работать с ресурсами из *.DLL я не знаю, подскажите пожалуйста.


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
-=alex-forewer=- MSDN + resurse
А говоря по руски, грузим DLL без разрешения зависимостей и потом загружаем оттдуа ресурсы
1'st navigator Подбелский. Но это С или С++. А лучше выучи язык

A620 Хм. я не знаю как боронд тама извращается, но не совсем понимаю, что должно сделать InitGraph в Windows
Все не так просто как кажется....

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Member
Статус: Не в сети
Регистрация: 19.03.2006
A620 я считаю что относительный путь будет способствовать более простой переносимости программы, даже не то что с компа на комп, просто с дирректории в дирректорию...
проще всего сделать:
int drv=DETECT,mode=VGAHI;
initgraph(&drv,&mode,"./BGI");
и БГИшную дирректорию кинуть в папку с экзешником....
или вообще:
int drv=DETECT,mode=VGAHI;
initgraph(&drv,&mode,"./");
и бгишный файл в папку с экзешиком....

а если у меня там в среде ну екзешники по дефолту в бин пихаются, а в дирректории которая выше бин есть ещё бги.... то:
int drv=DETECT,mode=VGAHI;
initgraph(&drv,&mode,"../BGI");
ну естесственно переменной моде можно ничего не присвоять....
Добавлено спустя 3 минуты, 22 секунды
а я с таким вопросом, просто некогда искать, так бы нашёл, простите....
вот, мне нужно как то связать два экзешника, которые либо запускаются на разных компах, либо на одном, я полагаю что можно всё это сделать по протоколу TCP/IP, так что ли он пишется, но я незнаю как это реализовать, пожалуста подкиньте ссылочку на фак какой нидто или мануал, можно в личку, заранее огромное спасибо!


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Jelfer Хм. Ище по слову socket

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Member
Статус: Не в сети
Регистрация: 19.03.2006
nickyoz да, я что то по нему тоже слышал, но как всем этим счастьем пользоваться?


 

Jelfer про относительную директорию-это понятно, но проблема в том что в билдер6 ошиюка вылетает на детекте, (BGI в билдере не нашел и запихал в BGI от С3,11 , директория драйверв "").

ЗЫ в С3,11 прога работает норм но там косяки с выводом русских символов: по сгенерированному числуinsane:, а в билдере с ними все норм.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
-=alex-forewer=-
Я так понимаю, LoadString(хэндлДллки, ИдентификаторРесурса, char * &Буфер, РазмерБуфера);
Поройся все-таки в документации WinAPI (очень удобная в составе MS Platform SDK ;) )

Ламот — хорошая книжка, у меня есть :)

Jelfer Виндовыми сокетами в чистом виде потрясающе неудобно пользоваться… нужно брать чью-нибудь обертку…

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Всё сделал, впринципе несложно, как всегда MSDN на высоте, помог короче говоря, спасибо за наводку :) .
Только вот не знаю, как вам такая реализация (описание смысла выше в моём посте), нормально или глупо?

Код:
void LoadGUIText()
{
    HINSTANCE hinstLib;
    char string[80];

    if((hinstLib = LoadLibrary(TEXT("DLL//LanguageRus"))) == NULL)
    if((hinstLib = LoadLibrary(TEXT("DLL//LanguageGer"))) == NULL)
    if((hinstLib = LoadLibrary(TEXT("DLL//LanguageEn")))  == NULL)
        hinstLib = NULL;

    LoadString(hinstLib, ID_STRING_MENU_GAME, string, 80);
    Game->Caption = string;
    LoadString(hinstLib, ID_STRING_MENU_NEW_GAME, string, 80);
    NewGame->Caption = string;
    LoadString(hinstLib, ID_STRING_MENU_END_GAME, string, 80);
    EndGame->Caption = string;
    LoadString(hinstLib, ID_STRING_MENU_EXIT, string, 80);
    Exit->Caption = string;
    LoadString(hinstLib, ID_STRING_MENU_HELP, string, 80);
    Help->Caption = string;
    LoadString(hinstLib, ID_STRING_MENU_RULES, string, 80);
    Instruction->Caption = string;
    LoadString(hinstLib, ID_STRING_MENU_ABOUT, string, 80);
    About->Caption = string;
}


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Да нормальная, не хуже любой другой…) Дллки не забудь выгрузить обратно :)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Anoss писал(а):
Дллки не забудь выгрузить обратно

Я об этом и не подумал :oops: , так правильно?
Код:
if(hinstLib != NULL) FreeLibrary(hinstLib);


Мне бы с XML разобраться, вроде бы полезная технология, я правильно думаю?

Раздел MS Platform SDK (MSDN) действительно удобен, там и XML есть (хотя в MSDN всё есть :) ), буду разбираться.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
-=alex-forewer=- писал(а):
так правильно?

Достаточно
Код:
if(hinstLib) FreeLibrary(hinstLib);

:)

-=alex-forewer=- писал(а):
Мне бы с XML разобраться, вроде бы полезная технология, я правильно думаю?

Полезная, спору нет))

-=alex-forewer=- писал(а):
Раздел MS Platform SDK (MSDN) действительно удобен

Я имел в виду не MSDN — она тормозная жутко, а обычный файлик справки в составе Platform SDK, но не этого, а стааренького, этот я не качал, не знаю, что там…

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 19.03.2006
Подскажите, пожалуйста, можно ли сделать текстовый режим, но только что бы он был не из 25 линий, а из 40...
Добавлено спустя 14 минут, 35 секунд
точнее можно, но как это инициализировать?


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Посмотрите на приведённый пример и скажите пожалуйста, ничего, что я вызываю delete [] ob;, в 1-й раз при том, что память ещё не выделялась? В последующие разы всё нормально, т.е. очищается ранее выделенная память! Просто ситуация не очень понятная, а то, что программа компилируется и работает ещё ни о чём не говорит!

Код:
cl *ob; // объявлена глобально, cl - некоторый сласс

void function()
{
    delete [] ob;
    ob = new cl[n*n]; // n - просто некоторая переменная
}


В конструкторе я тоже вызываю delete [] ob;, так что с этим всё в порядке, проблема только при первом выполнении функции, когда delete [] ob; удаляет бох знает что (причём внешне никакой проблемы не наблюдается, но я чувствую, что она есть).


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 28 из 87<  1 ... 25  26  27  28  29  30  31 ... 87  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan