Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
2 / 2 / 0
Регистрация: 13.07.2019
Сообщений: 50
Delphi 6-7

Программирование на delphi api directx 9

17.12.2019, 00:19. Показов 3057. Ответов 15

Студворк — интернет-сервис помощи студентам
Здравствуйте помогите решить такой вопрос. У меня есть программа и к ней привязан статический модуль.Если из модуля перетаскивать типы и константы в основную программу программа вобщем запускается но во время загрузки данных выдаёт неопределённую ошибку. Помогите пожалуйста решить эту проблему. Заранее спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.12.2019, 00:19
Ответы с готовыми решениями:

directX API
Ну в общем сабжь. Дайте пожалуйста инфу по установки на MVS2010. Ну и первое создание проекта. я щас читаю книгу Том Миллер - dx9....

программирование на DirectX
Подскажите пожалуйста книги о программировании на DirectX актуальных на данное время

Косвенно связано с DirectX Api
Привет всем, хочу спросить о знаниях которые требуются для того, чтобы приступить к DirectX. Ну про математику я знаю, надо подтянуть...

15
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
17.12.2019, 00:28
А чего только два варианта темы? Давайте еще придумайте, главное ничего точно не пишите, нефик баловать.
Тут вам клуб знатоков что-ли собрался угадать что в черном ящике?
0
Модератор
4138 / 2352 / 809
Регистрация: 15.11.2015
Сообщений: 9,399
17.12.2019, 00:30
Это наверное потому, что где-то неопределённая ошибка в неопределённом коде программы.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
17.12.2019, 00:41
Неустановленное лицо, в неустановленном месте, продало неустановленное количество колбасы неустановленному лицу. Разыскивается неустановленное лицо и колбаса.
0
17.12.2019, 11:55

Не по теме:

Цитата Сообщение от Пытливый Посмотреть сообщение
Разыскивается неустановленное лицо и колбаса
В основном, интересует именно колбаса! :)

0
2 / 2 / 0
Регистрация: 13.07.2019
Сообщений: 50
20.12.2019, 23:05  [ТС]
Программа работает нормально. Я хотел избавиться от модуля начал перетаскивать всё из статического модуля в тело основной программы . Компилятор ошибки не выдаёт. Во время перетаскивания данных в определённый момент возникает неопределённая ошибка ОС просто сообщает что программа дальше работать не может .При том что она нормально запускается. С такой ошибкой я раньше не сталкивался . Я не знаю как такую проблему решить. Вы вместо того чтобы умничать просто сказали не знаю я дал исчерпывающую информацию. То что вы умный тут это и так все знают. Лучше бы рекомендации дали толковые чем нести бред про какую то колбасу.

Добавлено через 12 минут
Здорово умник! Эрудит! Вот смотри один пользователь прочитал мой вопрос и вот что написал :Это наверное потому, что где-то неопределённая ошибка в неопределённом коде программы.То есть кто то мой вопрос прочитал и вопрос ему стал понятен .Настолько понятен что он на него даже ответил. Что тебе тут не понятно какой человек х в неопределённом месте х хочет купить колбасу х ? Ты строишь из себя мученика над которым все издеваются.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
21.12.2019, 00:35
Лучший ответ Сообщение было отмечено northener как решение

Решение

Yaric_prog ну а чего вы ожидали породив столь содержательную тему?

Не по теме:

Кабы схемку аль чертеж --
Мы б затеяли вертеж,
Ну а так -- ищи сколь хочешь,
Черта лысого найдешь!

3
Модератор
4138 / 2352 / 809
Регистрация: 15.11.2015
Сообщений: 9,399
21.12.2019, 07:12
Цитата Сообщение от Yaric_prog Посмотреть сообщение
мой вопрос прочитал и вопрос ему стал понятен .
Вопрос-то понятен. Только причина ошибка не понятна - ты же не приложил ни код программы, ни код модуля. И поэтому повторить ошибку не получается, чтобы найти причину.
0
Модератор
 Аватар для D1973
9919 / 6455 / 2456
Регистрация: 21.01.2014
Сообщений: 27,397
Записей в блоге: 3
21.12.2019, 11:37
Цитата Сообщение от AzAtom Посмотреть сообщение
Вопрос-то понятен.
Да, честно сказать, и вопрос-то не понятен... Что от нас-то требуется? Угадать, что за ошибка там появляется. а потом, на основании этой "угадайки" поставить диагноз, как лечить?

Не по теме:

Хвала богам, что у нас не медицинский форум...

1
2 / 2 / 0
Регистрация: 13.07.2019
Сообщений: 50
23.12.2019, 13:22  [ТС]
Здравствуйте!
Вот начало основной программы
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
program game3dArena;
{$IFNDEF __TMT__}
{$IFNDEF FPC}
  // *** Borland compilers support ***
  {$DEFINE BORLAND}
  {$DEFINE TYPE_IDENTITY}
  {$DEFINE SUPPORTS_EXCEPTIONS}
  {$IFDEF COMPILER6_UP}
    {$DEFINE SUPPORTS_EXPL_ENUMS} // Enumerated types with explicitly assigned ordinality
    {$IFNDEF BCB6_UP}
      // C++Builder6 hack: Delphi 6-7 compilers have bugged .HPP generation for
      // enums in some cases (and D6 compiler is included with BCB6)
      {$DEFINE SUPPORTS_EXPL_ENUMS_except_BCB6}
    {$ENDIF}
  {$ENDIF}
  // Additional settings
  {$MINENUMSIZE 4}
  {$ALIGN ON}
  {$IFDEF COMPILER7_UP}
    {$WARN UNSAFE_CODE Off}
    {$WARN UNSAFE_TYPE OFF}
    {$WARN UNSAFE_CAST OFF}
  {$ENDIF}
  {$IFDEF COMPILER9_UP}
    {$IFDEF DEBUG}
      {$INLINE OFF}
    {$ELSE}
      {$INLINE ON}
    {$ENDIF}
  {$ENDIF}
{$ELSE}
  // *** FreePascal compiler support ***
  {$INCLUDE Jedi.inc}
  {$APPTYPE GUI}
 {$UNDEF TYPE_IDENTITY}
  {$DEFINE SUPPORTS_EXCEPTIONS}
  {$DEFINE SUPPORTS_DEFAULTPARAMS}
 /{$DEFINE SUPPORTS_OVERLOAD}
  // Additional settings
  {$MODE DELPHI}
  {$H+} // Long Strings
  {$MINENUMSIZE 6}
  {$ALIGN ON}
  {$PACKRECORDS 8}
  {$INLINE ON}
  {$DEFINE SUPPORTS_INLINE}
 // {$DEFINE COMPILER5_UP} // Specially for DirectDraw.pas
{$ENDIF}
{$ELSE}
  // *** TMT Pascal compiler support ***
  {$I TMT.inc}
  // TMT compiler support
  {$IFNDEF __TMT__}
//    TMT pascal compiler required here
  {$ENDIF}
  // ADD IFOPT for TMT
  {$DEFINE TMT}
  {$IFDEF __WIN32__}
    {$DEFINE WIN32}
  {$ENDIF}
  {$IFDEF __VER5__}
    {$DEFINE TMT5}
    {$DEFINE TMT5_UP}
    {$DEFINE TMT4_UP}
    {$DEFINE TMT3_UP}
  {$ENDIF}
  {$IFDEF __VER4__}
    {$DEFINE TMT4}
    {$DEFINE TMT4_UP}
    {$DEFINE TMT3_UP}
  {$ENDIF}
  {$IFDEF __VER3__}
    {$DEFINE TMT3}
    {$DEFINE TMT3_UP}
  {$ENDIF}
  {$IFDEF TMT4_UP}
    {$DEFINE SUPPORTS_INTERFACE}
  {$ENDIF}
  // Additional settings
  {$A+}  // Word alignment data
  {$OA+} // Objects and structures align
  {$Z8}  // Set minimum size of enumerated type to 4
{$ENDIF}
// By default use most recent DirectX sub-version
{$IFNDEF DX81}
  {$IFNDEF DX80}
    {$DEFINE DX81}
  {$ENDIF}
{$ENDIF}
{$IFNDEF DX92}
  {$IFNDEF DX91}
    {$IFNDEF DX90}
      {$DEFINE DX92}
    {$ENDIF}
  {$ENDIF}
{$ENDIF}
{$IFDEF BORLAND}
{$R 'winmain.res' 'winmain.rc'}
{%File 'MultiAnimation.fx'}
{$ENDIF}
 {$MINENUMSIZE 4}
{$ALIGN ON}
uses
  Windows,classes,d3dx9,
  graphics  ;
вот начало статического модуля
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{$MINENUMSIZE 4}
{$ALIGN ON}
 
unit D3DX9;
 
interface
  uses types;
Как эти директивы работают я не знаю .
В коде чаcто встречаетcя директива   {$EXTERNALSYM}
Часто встречается 
{$IFDEF VER9x}
    procedure Progress(Sender: TObject; Stage: TProgressStage;
      PercentDone: Byte;  RedrawNow: Boolean; const R: TRect; const Msg: string); dynamic;
{$ENDIF}
Как они работают я не знаю.
Тут не важно именно какой участок кода я перекидываю из d3dx9 в тело основной программы .
Компилятор ошибок не выдаёт программа запускается но во время загрузки ОС выдаёт сообщение
программа дальше работать не может.
Я перетаскиваю типы

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
{$MINENUMSIZE 1}
 
type
  // Vertex element semantics
  //
  _D3DDECLUSAGE = (
    D3DDECLUSAGE_POSITION,      // = 0
    D3DDECLUSAGE_BLENDWEIGHT,   // 1
    D3DDECLUSAGE_BLENDINDICES,  // 2
    D3DDECLUSAGE_NORMAL,        // 3
    D3DDECLUSAGE_PSIZE,         // 4
    D3DDECLUSAGE_TEXCOORD,      // 5
    D3DDECLUSAGE_TANGENT,       // 6
    D3DDECLUSAGE_BINORMAL,      // 7
    D3DDECLUSAGE_TESSFACTOR,    // 8
    D3DDECLUSAGE_POSITIONT,     // 9
    D3DDECLUSAGE_COLOR,         // 10
    D3DDECLUSAGE_FOG,           // 11
    D3DDECLUSAGE_DEPTH,         // 12
    D3DDECLUSAGE_SAMPLE         // 13
  );
  {$EXTERNALSYM _D3DDECLUSAGE}
  D3DDECLUSAGE = _D3DDECLUSAGE;
  {$EXTERNALSYM D3DDECLUSAGE}
  TD3DDeclUsage = _D3DDECLUSAGE;
 
const
  MAXD3DDECLUSAGE         = DWORD(D3DDECLUSAGE_SAMPLE);
 // {$EXTERNALSYM MAXD3DDECLUSAGE}
  MAXD3DDECLUSAGEINDEX    = 15;
 // {$EXTERNALSYM MAXD3DDECLUSAGEINDEX}
 
 // {$EXTERNALSYM MAXD3DDECLLENGTH}
type
  _D3DDECLMETHOD = (
    D3DDECLMETHOD_DEFAULT,    // = 0,
    D3DDECLMETHOD_PARTIALU,
    D3DDECLMETHOD_PARTIALV,
    D3DDECLMETHOD_CROSSUV,    // Normal
    D3DDECLMETHOD_UV,
    D3DDECLMETHOD_LOOKUP,               // Lookup a displacement map
    D3DDECLMETHOD_LOOKUPPRESAMPLED      // Lookup a pre-sampled displacement map
  );
  {$EXTERNALSYM _D3DDECLMETHOD}
  D3DDECLMETHOD = _D3DDECLMETHOD;
  {$EXTERNALSYM D3DDECLMETHOD}
  TD3DDeclMethod = _D3DDECLMETHOD;
const
  MAXD3DDECLMETHOD = DWORD(D3DDECLMETHOD_LOOKUPPRESAMPLED);
  {$EXTERNALSYM MAXD3DDECLMETHOD}
type
  // Declarations for _Type fields
  //
  _D3DDECLTYPE = (
    D3DDECLTYPE_FLOAT1    =  0,  // 1D float expanded to (value, 0., 0., 1.)
    D3DDECLTYPE_FLOAT2    =  1,  // 2D float expanded to (value, value, 0., 1.)
    D3DDECLTYPE_FLOAT3    =  2,  // 3D float expanded to (value, value, value, 1.)
    D3DDECLTYPE_FLOAT4    =  3,  // 4D float
    D3DDECLTYPE_D3DCOLOR  =  4,  // 4D packed unsigned bytes mapped to 0. to 1. range
                                 // Input is in D3DCOLOR format (ARGB) expanded to (R, G, B, A)
    D3DDECLTYPE_UBYTE4    =  5,  // 4D unsigned byte
    D3DDECLTYPE_SHORT2    =  6,  // 2D signed short expanded to (value, value, 0., 1.)
    D3DDECLTYPE_SHORT4    =  7,  // 4D signed short
  // The following types are valid only with vertex shaders >= 2.0
    D3DDECLTYPE_UBYTE4N   =  8,  // Each of 4 bytes is normalized by dividing to 255.0
    D3DDECLTYPE_SHORT2N   =  9,  // 2D signed short normalized (v[0]/32767.0,v[1]/32767.0,0,1)
    D3DDECLTYPE_SHORT4N   = 10,  // 4D signed short normalized (v[0]/32767.0,v[1]/32767.0,v[2]/32767.0,v[3]/32767.0)
    D3DDECLTYPE_USHORT2N  = 11,  // 2D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,0,1)
    D3DDECLTYPE_USHORT4N  = 12,  // 4D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,v[2]/65535.0,v[3]/65535.0)
    D3DDECLTYPE_UDEC3     = 13,  // 3D unsigned 10 10 10 format expanded to (value, value, value, 1)
    D3DDECLTYPE_DEC3N     = 14,  // 3D signed 10 10 10 format normalized and expanded to (v[0]/511.0, v[1]/511.0, v[2]/511.0, 1)
    D3DDECLTYPE_FLOAT16_2 = 15,  // Two 16-bit floating point values, expanded to (value, value, 0, 1)
    D3DDECLTYPE_FLOAT16_4 = 16,  // Four 16-bit floating point values
    D3DDECLTYPE_UNUSED    = 17   // When the type field in a decl is unused.
  );
 
// Restores enums to be 4 byte in size
{$MINENUMSIZE 4}
const
  MAXD3DDECLTYPE      = DWORD(D3DDECLTYPE_UNUSED);
  {$EXTERNALSYM MAXD3DDECLTYPE}
Потом происходит ошибка.
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
23.12.2019, 13:33
Цитата Сообщение от Yaric_prog Посмотреть сообщение
Как эти директивы работают я не знаю
вот когда субъект нихера не знает, а пытается че-то сделать - это самое страшное. Работает с отдельным модулем - нефиг трогать. и вообще, D3DX9 - это один из системных модулей самой Delphi.
0
Модератор
4138 / 2352 / 809
Регистрация: 15.11.2015
Сообщений: 9,399
23.12.2019, 13:45
Не пойму, зачем переносить из модуля типы и т.д.? Модули придуманы для облегчения программирования, чтобы в основном файле было меньше навалено вспомогательных функций и т.д.

Добавлено через 1 минуту
Цитата Сообщение от Yaric_prog Посмотреть сообщение
Я перетаскиваю типы
Цитата Сообщение от Yaric_prog Посмотреть сообщение
Потом происходит ошибка.
Наверное потому, что надо всё сразу переносить, а не по одному. Но я этого не советовал. Лучше оставить всё в модуле, как есть.
1
2 / 2 / 0
Регистрация: 13.07.2019
Сообщений: 50
23.12.2019, 22:36  [ТС]
Здорово ! Я начал переносить данные из D3dx9 потому что в нём полно данных которые не нужны для работы программы.
Придётся данные удалять по очереди . Спасибо за ответ !
0
Модератор
4138 / 2352 / 809
Регистрация: 15.11.2015
Сообщений: 9,399
24.12.2019, 05:52
Цитата Сообщение от Yaric_prog Посмотреть сообщение
в нём полно данных которые не нужны для работы программы.
То, что не используется в программе не попадёт в исполняемый код .exe - компилятор оптимизирует.
1
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
24.12.2019, 10:28
Цитата Сообщение от Yaric_prog Посмотреть сообщение
Я начал переносить данные из D3dx9 потому что в нём полно данных которые не нужны для работы программы.
а почему бы не перенести данные из модуля Windows? там столько констант и подпрограмм, из которых ты используешь только процентов 5...
1
Эксперт Pascal/Delphi
 Аватар для droider
4888 / 2822 / 865
Регистрация: 04.10.2012
Сообщений: 10,262
24.12.2019, 11:39
Yaric_prog, может Ярик водила, судя по вопросу?

https://www.youtube.com/watch?... verified=1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2019, 11:39
Помогаю со студенческими работами здесь

программирование игр на с++ и DirectX
Кто-нибудь сталкивался с программированием игр на с++ и DirectX?? Как думаете если изучить DirectX это будет сложно??? Объясните...

Программирование графики, DirectX
Начал изучать DirectX. Хочу поделится ссылками на уроки, tutorials по DirectX для начинающих: http://www.directxtutorial.com/index.aspx ...

Узнать на какой версии API DirectX запущено приложении
в общем тема вроде актуальная, но ни в гугле, ни в поиске по форуму ничего толкового не нашёл. Нужно узнать, какую версию (имеется ввиду...

DirectX 9.0c программирование GUI. Кто как делает?
В разных темах проскакивают подобные вопросы. Я сам лично на время даунгрейдился до 9-го директа. Давайте в этой теме рассказывать, кто и...

Как происходит программирование DirectX на платформе .NET
Кто подскажет как происходит программирование DirectX на платформе .NET Допустим на Visual Studio 6, С++ обращался напрямую к библиотекам...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru