Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.14.45.36] |
|
Страницы: (16) « Первая ... 8 9 [10] 11 12 ... 15 16 все ( Перейти к последнему сообщению ) |
Сообщ.
#136
,
|
|
|
trainer
Об этом мы давно знаем. Вот только уж сильно пошло получается... |
Сообщ.
#137
,
|
|
|
Рекомендую:
1) выкинуть отовсюду #pragma comment(lib, "DGML.lib") либо, по-крайней мере, сделать условно-компилируемой 2) перейти на makefile'ы. Это под именем makefile.bcb засунуть в папку src # Makefile for DGML # Borland C++ for Win32 # # Usage: # make # or # make additional_parameters # where additional_parameters are pairs param=value delimited by spaces # additional parameters: # DEBUG - build debug version # ARFLAGS - archiver(TLIB) flags # CFLAGS - C++-compiler flags # YFLAGS - YACC flags(not used, reserved) # LFLAGS - LEX flags(not used, reserved) # RCFLAG - resource script compiler flags # BINDIR - path to bin directory(where will be placed obj's, lib and exe) # BCB - path to Borland C++ Builder root directory # ------------ Borland C++ ------------ # variables # tools CC = bcc32.exe AS = bcc32.exe RC = brcc32.exe LD = ilink32.exe AR = tlib.exe YACC = bison.exe LEX = flex.exe LN = copy RM = -del ASFLAGS = !if !$d(BCB) BCB = $(MAKEDIR)\.. !endif !if !$d(DEBUG) # missed DEBUG variable means no debug DEBUG = 0 !endif !if !$d(CFLAGS) !if $(DEBUG) CFLAGS = -a -d -k- -ff -fp -WM -D_DEBUG -Od -v !else CFLAGS = -a -d -k- -ff -fp -O2 -WM -w-csu !endif !endif !if !$d(ARFLAGS) ARFLAGS = /P128 /C /u /a !endif !if !$d(LDFLAGS) !if $(DEBUG) LDFLAGS = /Tpe /ap /Gn /v /x c0d32.obj sysinit.obj !else LDFLAGS = /Tpe /ap /Gn /x c0w32.obj sysinit.obj !endif !endif !if !$d(YFLAGS) YFLAGS = -vdyl !endif !if !$d(LFLAGS) LFLAGS = -ist !endif !if !$d(RCFLAGS) RCFLAGS = -w32 !endif !if !$d(BINDIR) BINDIR = ..\lib\bcb !endif O = obj DEFS = LIBS = cw32mt.lib import32.lib rtl.lib SRCDIR = src INCDIR = ..\include TESTSRCDIR = ..\example LIBDGML = $(BINDIR)\libdgml.lib TESTEXE = $(BINDIR)\dgmltest.exe BCB_LIBPATH = $(BCB)\lib;$(BCB)\lib\PSdk BCB_OBJPATH = $(BCB)\lib;$(BCB)\lib\obj LIB_OBJS = $(BINDIR)\dgml.$(O) $(BINDIR)\dgml_error.$(O) $(BINDIR)\dgmlcore.$(O) \ $(BINDIR)\graphics.$(O) $(BINDIR)\input.$(O) LIB_OBJPS = +$(BINDIR)\dgml.$(O) +$(BINDIR)\dgml_error.$(O) +$(BINDIR)\dgmlcore.$(O) \ +$(BINDIR)\graphics.$(O) +$(BINDIR)\input.$(O) # targets all : $(LIBDGML) bindir_exist : if not exist $(BINDIR)\NUL mkdir $(BINDIR) {$(SRCDIR)}.cpp{$(BINDIR)}.$(O) : $(CC) -c -I"$(INCDIR)" -I"$(SRCDIR)" $(DEFS) -o$@ $(CFLAGS) $< $(LIBDGML) : bindir_exist $(LIB_OBJS) $(RM) $(LIBDGML) $(AR) $(LIBDGML) $(ARFLAGS) $(LIB_OBJPS) $(TESTEXE) : $(TESTSRCDIR)\dgmltest.cpp $(LIBDGML) $(CC) -I"$(INCDIR)" -I"$(SRCDIR)" -e$< $(TESTSRCDIR)\dgmltest.cpp $(LIBS) $(LIBDGML) clean : $(RM) $(BINDIR)\*.obj $(RM) $(BINDIR)\*.lib $(RM) $(BINDIR)\*.tds $(RM) $(BINDIR)\*.exe test : bindir_exist $(TESTEXE) rebuild : clean all @echo off rem set variable BCB to path to Borland C++ Builder root directory on your PC set BCB=c:\programmer\CBuilder6 make -f makefile.bcb rebuild >dgml_bcb.lst make -f makefile.bcb test >dgml_bcb_test.lst Добавлено Кстати, откомпилировал я пример в BCB6(через этот makefile) - работает Добавлено Да, #include <graphics.h> пришлось перенести в конец списка. |
Сообщ.
#138
,
|
|
|
Цитата trainer @ Кстати, откомпилировал я пример в BCB6(через этот makefile) Хм. А а я че-то туплю... Цитата trainer @ set BCB=c:\programmer\CBuilder6 Это зачем? Я так понимаю, в бате надо прописать "set PATH=C:\Program Files\Borland\CBuilder6\Bin\", чтобы make находился? Тогда появляются баги... Если прописать напрямую: Цитата C:\"Program Files"\Borland\CBuilder6\Bin\make -f makefile.bcb rebuild >dgml_bcb.lst не может найти makefile Цитата MAKE Version 5.2 Copyright © 1987, 2000 Borland Fatal: Unable to open makefile Добавлено доперло зачем BCB в environment Добавлено Цитата MAKE Version 5.2 Copyright © 1987, 2000 Borland Fatal: Unable to open makefile |
Сообщ.
#139
,
|
|
|
Запускаешь откуда и как?
Добавлено Этот set BCB=... в принципе не нужен. Так, на всякий случай. |
Сообщ.
#140
,
|
|
|
Из cmd. Текущая директория - та, в которой все исходники и мейкфайл.
|
Сообщ.
#141
,
|
|
|
У makefile'а какое имя?
|
Сообщ.
#142
,
|
|
|
Цитата trainer @ У makefile'а какое имя? makefile.bcb |
Сообщ.
#143
,
|
|
|
"- По колесу стучал?
- Да. - Под капот заглядывал? - Да. - Ну тогда не знаю." Добавлено Может где в имени латинскую букву на кириллическую заменил? Добавлено Да, на всякий случай - этот makefile.bcb надо положить туда же, где лежит твой libdgml.bpr Но к данной проблеме это отношения не имеет. У тебя make почему-то не находит этот makefile.bcb(если ты правильно указал его имя в командной строке/bat-файле) |
Сообщ.
#144
,
|
|
|
Цитата trainer @ где лежит твой libdgml.bpr А проект что ли нужен?? Я-то думал, раз makefile - то проект вообще не нужен... |
Сообщ.
#145
,
|
|
|
Нет, .bpr не нужен. makefile доолжен лежать в определенном месте.
Вечером сгруппирую и выложу откорректированные твои исходники и makefile'ы для BCB и MSVC |
Сообщ.
#146
,
|
|
|
Цитата trainer @ Вечером сгруппирую и выложу откорректированные твои исходники и makefile'ы для BCB и MSVC thanx! |
Сообщ.
#147
,
|
|
|
Забыл я на работе makefile для MSVC. Так что пока только для BCB. Для MSVC - в следующий раз. А там, может, и для MinGW сделаю.
Прикреплённый файлlibdgml_0.2_src.zip (38.62 Кбайт, скачиваний: 195) |
Сообщ.
#148
,
|
|
|
trainer
Ну теперь ясно, почему у тебя пример работает. Версию дистрибутива древнюю взял. Вот последняя версия с измененным makefil'ом. Осталось выяснить, почему пикселы в примере под BCB не рисуются... Добавлено Прикрепить не могу, так что скачиваем здесь: http://heavysoft.org/dwn/dgml/dgml413.rar Прикреплённый файлav_21324.gif (8.08 Кбайт, скачиваний: 545) |
Сообщ.
#149
,
|
|
|
люди! почему у меня нифига не работает??? как запускать этот DGML????? напишите подробно если можно, какое приложение создавать надо, чтоб работала графика, потому что у меня даже примеры из скаченного архива не работаеют!!!
|
Сообщ.
#150
,
|
|
|
susanin
Скачивай рабочий проект для BCB trainer В BCB не работает инициализация библиотеки. В dgml.h есть строки: #ifndef __DGML_H__ class DGML_Stuff { public: DGML_Stuff(void); ~DGML_Stuff(void); }; DGML_Stuff initializer; #endif То есть создается один объект, который нигде не используется. Констурктор выглядит так: //инициализируем систему DGML при старте DGML_Stuff::DGML_Stuff(void) { DGML_Stuff::end_point.x=DGML_WIDTH-1; DGML_Stuff::end_point.y=DGML_HEIGHT-1; DGML_Stuff::init_colors(); DGML_Stuff::init_patterns(); } То есть в MSVS это прекрасно работает, объект создается, библиотека инициализируется. В BCB - нет. Так что временно инициализация опять засунута в ф-цию initgraph. Еще в BCB проблемы со звуком. библиотеку он собирает даже не спрашивая winmm.lib, хотя должен. Зато при вызове ф-ции sound просто вылетает. линковка winmm.lib ничего не меняет. |