Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61

Ошибка C2065 не объявленный идентификатор

29.01.2016, 19:21. Показов 1590. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить проблему!
1>f:\sourcee\loong\f3dex\device\dx9devic e\dx9font.cpp(58) : error C2065: 'D3DXSprite_DO_NOT_ADDREF_TEXTURE' : undeclared identifier

dx9font.cpp

Кликните здесь для просмотра всего текста

C++
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include "stdafx.h"
#include "DX9Font.h"
#include "DX9Device.h"
#include "..\..\Util\Exception.h"
#include "..\DrawX.h"
#include "..\StateBlock.h"
 
namespace F3DEx
{
    namespace Detail
    {
        DX9Font::DX9Font()
        {
            m_pD3DFont=NULL;
            m_pD3DSprite = NULL;
            m_hDC=NULL;
            ZeroMemory(&m_asciiSize[0],sizeof(m_asciiSize));
        }
 
        DX9Font::~DX9Font()
        {
            MyDX9Dev()->OnFontFree(this);
            SAFE_RELEASE(m_pD3DFont);
            SAFE_RELEASE(m_pD3DSprite);
        }
 
        void DX9Font::Create(UINT width,UINT height,UINT weight,const TCHAR*szFaceName,BOOL isItalic, BOOL bAntiAliase)
        {
            ASSERT(m_pD3DFont == NULL);//不能重复创建
            D3DXFONT_DESC font;
            memset(&font,0,sizeof(font));
            font.Height = height;
            font.Width = width;
            font.Weight = weight;
            font.MipLevels = 1;
            font.Italic = isItalic;
            font.CharSet = DEFAULT_CHARSET;
            font.OutputPrecision = OUT_DEFAULT_PRECIS;
            font.Quality = bAntiAliase ? ANTIALIASED_QUALITY : NONANTIALIASED_QUALITY;
            //font.PitchAndFamily = DEFAULT_PITCH;
            font.PitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
 
            _tcscpy( font.FaceName, szFaceName);
 
            HRESULT hr = D3DXCreateFontIndirect(DX9Dev(), &font, &m_pD3DFont);
            THROW_FAILED(hr, NULL);
            m_hDC = m_pD3DFont->GetDC();
            ASSERT(m_hDC != NULL);
            CreateAsciiSizeTab();
 
            hr = D3DXCreateSprite(DX9Dev(),&m_pD3DSprite);
            THROW_FAILED(hr,NULL);
        }
 
        void DX9Font::DrawText(const TCHAR* szString,RECT *pRect,DWORD format,DWORD color, BOOL bWriteAlpha, DWORD shadowInc, DWORD shadowColor )
        {
            //m_pD3DSprite->Begin(D3DXSPRITE_ALPHABLEND);
            m_pD3DSprite->Begin(D3DXSPRITE_ALPHABLEND | D3DXSPRITE_SORT_TEXTURE | D3DXSPRITE_DO_NOT_ADDREF_TEXTURE);
 
            size_t len=_tcslen(szString);
            
            /*D3DXMATRIX matrix;
            D3DXMatrixIdentity(&matrix);
            D3DXMatrixTranslation(&matrix, 0.0f, 0.0f, 0.0f);
            m_pD3DSprite->SetTransform(&matrix);*/
 
            IDevice* pIDev=Device();
            StateBlock block;
 
            if( !bWriteAlpha )
            {
                block.SaveState(ERS_ColorWriteEnable);  
                pIDev->SetRenderState(ERS_ColorWriteEnable,COLORWRITEENABLE_BLUE|COLORWRITEENABLE_GREEN|COLORWRITEENABLE_RED);
            }
 
            if( shadowInc ) {
                RECT rc;
                WORD incX, incY;
                incX = LOWORD(shadowInc);
                incY = HIWORD(shadowInc);
 
                if( incX ) {
                    rc = *pRect;
                    rc.left  -= incX;
                    rc.right -= incX;
                    m_pD3DFont->DrawText(m_pD3DSprite,szString,len,&rc,format,shadowColor); 
                    rc = *pRect;
                    rc.left  += incX;
                    rc.right += incX;
                    m_pD3DFont->DrawText(m_pD3DSprite,szString,len,&rc,format,shadowColor);
                }
                if( incY ) {
                    rc = *pRect;
                    rc.top      -= incY;
                    rc.bottom   -= incY;
                    m_pD3DFont->DrawText(m_pD3DSprite,szString,len,&rc,format,shadowColor);
                    rc = *pRect;
                    rc.top      += incY;
                    rc.bottom   += incY;
                    m_pD3DFont->DrawText(m_pD3DSprite,szString,len,&rc,format,shadowColor);
                }
            }
            m_pD3DFont->DrawText(m_pD3DSprite,szString,len,pRect,format,color); 
 
            m_pD3DSprite->End();
 
            block.Apply();
        }
 
        void DX9Font::DrawText(const TCHAR *szString,UINT x,UINT y,DWORD color )
        {
            RECT rc;
            rc.left=x;
            rc.top=y;
            rc.right=Device()->GetClientWidth();
            rc.bottom=Device()->GetClientHeight();
            size_t len=_tcslen(szString);
            m_pD3DFont->DrawText(NULL,szString,len,&rc,DT_TOP|DT_LEFT,color);
        }
 
        void DX9Font::MeasureText(const TCHAR* szString,SIZE& out)
        {
            if(szString==NULL)
            {
                out.cx=out.cy=0;
                return;
            }
            ASSERT(m_hDC!=NULL);
 
            //--对获得单个ascii字符尺寸进行优化
            if( szString[1]==_T('\0') && szString[0]>=0 && szString[0]<127 )
            {
                out=m_asciiSize[szString[0]];
                return;
            }
            GetTextExtentPoint32(m_hDC,szString,_tcslen(szString),&out);
        }
 
        void DX9Font::PreDeviceReset()
        {
            m_pD3DFont->OnLostDevice();
            m_pD3DSprite->OnLostDevice();
        }
        void DX9Font::PostDeviceReset()
        {
            m_pD3DFont->OnResetDevice();
            m_pD3DSprite->OnResetDevice();
        }
 
        void DX9Font::CreateAsciiSizeTab()
        {
            TCHAR szChar[2]={0};
            for(int i=0;i<127;i++)
            {
                szChar[0]=i;
                GetTextExtentPoint32(m_hDC,szChar,1,&m_asciiSize[i]);
            }
        }
    }
}//namespace F3DEx


И попутно может кто подскажет как исправить предупреждения такого типа..

Кликните здесь для просмотра всего текста

1>f:\sourcee\loong\f3dex\specialeffect\e ffectparticleemitter.cpp(742) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data

Файл effectparticleemitter.cpp

742 строка это
C++
1
m_p->m_spawnCount = m_p->m_prop.initParNum;


Кликните здесь для просмотра всего текста

1>f:\sourcee\loong\f3dex\editorsupport\t rivereditor.cpp(806) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data

Файл trivereditor.cpp
C++
1
2
3
    
DrawGroundQuad(m_nCurEditRiverIndex,m_cursorPosScle.x - m_nBrushInner,m_cursorPosScle.x + m_nBrushInner,
/*Это 806 строка*/     m_cursorPosScle.y - m_nBrushInner,m_cursorPosScle.y + m_nBrushInner,0xFFFFFF00);


Кликните здесь для просмотра всего текста

1>f:\sourcee\loong\f3dex\editorsupport\t erraineditor.cpp(2383) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data

Файл terraineditor.cpp
C++
1
2
DrawGroundQuad(m_cursorPosScle.x - m_nBrushInner,m_cursorPosScle.x + m_nBrushInner,
/*Это 2383 строка*/       m_cursorPosScle.y - m_nBrushInner,m_cursorPosScle.y + m_nBrushInner,0xFFFFFF00);


Кликните здесь для просмотра всего текста

1>f:\sourcee\loong\f3dex\editorsupport\t rivereditor.cpp(808) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data

Файл trivereditor.cpp
C++
1
2
3
    
DrawGroundQuad(m_nCurEditRiverIndex,m_cursorPosScle.x- m_nBrushOuter,m_cursorPosScle.x + m_nBrushOuter,
/*Это 808 строка*/      m_cursorPosScle.y- m_nBrushOuter,m_cursorPosScle.y + m_nBrushOuter,0xFFFFFF00);


И последнее предупреждение это

C++
1
2
1>Project : warning PRJ0018 : The following environment variables were not found:
1>$(CXXTEST_HOME)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2016, 19:21
Ответы с готовыми решениями:

Error C2065: WndProc: необъявленный идентификатор
Введено всё правильно должно открыться пустое окно но вылетает ошибка проблема в 16 строке с функцией WndProc . Код взят из книги...

Error C2065: amp: необъявленный идентификатор
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;stdio.h&gt; using namespace std; #define THREADCOUNT 2 ...

Error C2065: WM_LBATTONDOUN: необъявленный идентификатор
алгоритм работы программы: функция окна обрабатывает сообщения и в зависимости от их значения записывает информацию в переменные которые...

11
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
29.01.2016, 21:39
Цитата Сообщение от Krek39 Посмотреть сообщение
error C2065: 'D3DXSprite_DO_NOT_ADDREF_TEXTURE' : undeclared identifier
D3DXSPRITE_DO_NOT_ADDREF_TEXTURE
Цитата Сообщение от Krek39 Посмотреть сообщение
как исправить предупреждения такого типа..
Избавиться от неявных преобразований float в int.
C++
1
m_p->m_spawnCount = static_cast<float>(m_p->m_prop.initParNum) ;
Или отрубить это предупреждение:
C++
1
#pragma warning(disable:4244)
1
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61
29.01.2016, 22:13  [ТС]
Вот это помогло
Кликните здесь для просмотра всего текста

C++
1
m_p->m_spawnCount = static_cast<float>(m_p->m_prop.initParNum) ;
Использовал это для остальных файлов тоже помогло(Предупреждения отключились)#pragma warning(disable:4244)


На счёт этой ошибки так и не понял
C++
1
error C2065: 'D3DXSPRITE_DO_NOT_ADDREF_TEXTURE' : undeclared identifier
И вот это предупреждение вообще мне не понятно
C++
1
2
1>Project : warning PRJ0018 : The following environment variables were not found:
1>$(CXXTEST_HOME)
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
29.01.2016, 22:16
Цитата Сообщение от Krek39 Посмотреть сообщение
На счёт этой ошибки так и не понял
попробуйте включить заголовок d3dx9core.h
Цитата Сообщение от Krek39 Посмотреть сообщение
И вот это предупреждение вообще мне не понятно
https://msdn.microsoft.com/en-... 6ecbf.aspx



P.S. не нужно так выделять текст. Мы же не слепые
0
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61
29.01.2016, 22:32  [ТС]
Выделяю самое важное

Ошибка актуальна, подключение #include d3dx9core.h не помогло(пробовал вставить после других подключений в файлах dx9font.cpp и dx9font.h в таких вариантах #include "d3dx9core.h" и #include <d3dx9core.h>)
0
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61
29.01.2016, 23:01  [ТС]
Такой вопрос после компиляции если проигнорировать эту ошибку или просто вырезать этот идентификатор появляется вот такое окно почему то...

0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
29.01.2016, 23:20
Такое окно может появляться после вновь созданной DLL, в котором необходимо указать exe-файл для работы с этой DLL.

Не по теме:

Так что же у Вас там происходит?

0
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61
30.01.2016, 00:04  [ТС]
Вот у меня такой странный вопрос, а как определить что это программа или dll
Но для dll слишком много файлов, по идее я думал что это редактор моделей для игры, но теперь что то не уверен

0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
30.01.2016, 00:31
Да, много. И проект один. Ну если собралось, то теперь нужно смотреть папки Debug или Release, в зависимости от сборки. Что-то там да должно уже быть.
0
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61
30.01.2016, 00:43  [ТС]
Блин новая ошибка компилятора

C++
1
2
3
4
5
6
7
8
9
10
1>------ Build started: Project: F3DEx, Configuration: Release Win32 ------
1>Linking...
1>   Creating library ..\vsout\F3DEx\Release\F3DEx.lib and object ..\vsout\F3DEx\Release\F3DEx.exp
1>MSVCRT.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>..\Game\Release\F3DEx.dll : fatal error LNK1120: 1 unresolved externals
1>Project : warning PRJ0018 : The following environment variables were not found:
1>$(CXXTEST_HOME)
1>Build log was saved at "file://f:\Sourcee\Loong\vsout\F3DEx\Release\BuildLog.htm"
1>F3DEx - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
30.01.2016, 02:06
Цитата Сообщение от Krek39 Посмотреть сообщение
а как определить что это программа или dll
Krek39, в свойствах проекта.
Миниатюры
Ошибка C2065 не объявленный идентификатор  
0
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 61
30.01.2016, 13:21  [ТС]
Да про application я знаю у меня там стоит application (exe), но возможно я менял эти настройки!

По идее если же открыть по новой исходник, но не через sln файл, а через vcproj то все настройки в свойствах сбрасываются и видно что на самом деле там exe или dll?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2016, 13:21
Помогаю со студенческими работами здесь

Исправить ошибку "error C2065: handle: необъявленый идентификатор"
ShellExecute(handle,&quot;open&quot;,&quot;glava_15.htm&quot;,NULL,path.c_str(),SW_RESTORE); error C2065: handle: необъявленный идентификатор Функция...

Ошибка что то типа не объявленный идентификатор,и типа невозможно преобразовать CStringW в там что..то
Даже не знаю как сказать... короче есть база а Access,которую я подключил к проекту MFC,и в этой базе всего одно поле с текстовым типом...

C2065 не объявленный идентификатор
Добрый день. При компиляции через visual studio 2019 вот такая ошибка. 1&gt;C:\Users\server\source\repos\FirtsCPP\Source3.cpp(6,2):...

Ошибка C2065 : Необъявленный идентификатор cout
Здравствуйте, друзья. Сразу хочу сказать что в С++ я новичок, поэтому я немножко, это.... ну да, тупой;). В-общем, у меня возникла...

Ошибка C2065 hdc: необъявленный идентификатор ConsoleApplication1
Ошибка C2065 hdc: необъявленный идентификатор ConsoleApplication1 Ошибка (активно) аргумент типа &quot;char *&quot; несовместим с...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru