| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Вывод Text |
| Автор: Stas96 22.12.2009, 19:22 | ||
| Всем доброго времени суток!Выводя текст в DirectX Вот код:
Возникла проблема выдает ошибку: "1>e:\c++\программы\directx\directx\lesson 9.cpp(214) : error C3861: ID3DXCreateFont: идентификатор не найден 1>e:\c++\программы\directx\directx\lesson 9.cpp(216) : error C2039: Begin: не является членом "ID3DXFont" 1> c:\program files (x86)\microsoft directx sdk (august 2009)\include\d3dx9core.h(314): см. объявление 'ID3DXFont' 1>e:\c++\программы\directx\directx\lesson 9.cpp(218) : error C2660: ID3DXFont::DrawTextW: функция не принимает 5 аргументов 1>e:\c++\программы\directx\directx\lesson 9.cpp(220) : error C2039: End: не является членом "ID3DXFont" 1> c:\program files (x86)\microsoft directx sdk (august 2009)\include\d3dx9core.h(314): см. объявление 'ID3DXFont' " Прошу объяснить мне в чем проблема. |
| Автор: Sfate 22.12.2009, 20:32 | ||
| вместо ID3DXCreateFont надо D3DXCreateFont "Begin: не является членом "ID3DXFont"" естественно не является)) вызов прорисовки текста должен производиться между pDirect3DDevice->BeginScene() и pDirect3DDevice->EndScene()... тоже самое и про end... "DrawTextW" пример, на скорую руку)
|
| Автор: Stas96 22.12.2009, 22:22 |
| ААА...Спасибо большое. |
| Автор: Sfate 22.12.2009, 22:33 |
| да... бывают случаи пжл |
| Автор: Stas96 22.12.2009, 22:50 | ||
| Слушай уже другие проблемы( Вот ошибки: ">e:\c++\программы\directx\directx\lesson 9.cpp(215) : error C2660: D3DXCreateFontW: функция не принимает 11 аргументов 1>e:\c++\программы\directx\directx\lesson 9.cpp(222) : error C2660: D3DXCreateFontW: функция не принимает 3 аргументов 1>e:\c++\программы\directx\directx\lesson 9.cpp(226) : error C2660: ID3DXFont::DrawTextW: функция не принимает 5 аргументов " А вот код:
|
| Автор: Sfate 22.12.2009, 23:07 |
| смотри у тебя какбэ VOID DrawText(бла... бла... бла...) и там же pFont->DrawText переименуй как нить функцию, там где void... и еще в этой же функции pDirect3DDevice->BeginScene(); и pDirect3DDevice->EndScene(); лишнее, они должны быть в только в фукции рендера, у тебя это RenderingDirect3D()... з.ы. ща быстренько твой код подредактирую... погодь.... |
| Автор: Stas96 22.12.2009, 23:14 |
| VOID DrawText(бла... бла... бла...) 1.Я cделал void DrawMyText. 2. Функцию pDirect3DDevice->BeginScene(); и pDirect3DDevice->EndScene(); убрал. И все равно может я подключить что-то забыл? |
| Автор: Sfate 22.12.2009, 23:17 | ||
вот юзай должно работать... з.ы. мы с тобой уже по звездочке наколотили на твоем посте |
| Автор: Stas96 22.12.2009, 23:22 |
| Блин я с этим кодом здурею скоро Все равно не работает ладно завтра на свежую голову может чето придумаю. Sfate, Спасибо за помощь! з.ы. Ага |
| Автор: Sfate 22.12.2009, 23:27 |
| Stas96, пжл) странно... с моим кодом работать должно... какие ошибки? |
| Автор: Stas96 22.12.2009, 23:28 | ||||
| 1>e:\c++\программы\directx\directx\lesson 9.cpp(209) : error C2660: D3DXCreateFontW: функция не принимает 11 аргументов 1>e:\c++\программы\directx\directx\lesson 9.cpp(216) : error C2664: ID3DXFont::DrawTextW: невозможно преобразовать параметр 2 из 'char *' в 'LPCWSTR' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции 1>e:\c++\программы\directx\directx\lesson 9.cpp(246) : error C2660: ID3DXFont::DrawTextW: функция не принимает 8 аргументов Добавлено через 2 минуты и 17 секунд Ты правда в коде чуть неверно написал Место:
Мне кажется надо:
|
| Автор: Sfate 22.12.2009, 23:31 |
| со второй ошибкой понятно... перед кавычками с текстом напиши "L" без кавычек... ты какой пакет sdk используешь не 2004 года? |
| Автор: Stas96 22.12.2009, 23:34 |
| Нет... Август 2009 З.Ы Давай завтра продолжим а тут уже спать гонят( Пока) |
| Автор: Sfate 22.12.2009, 23:37 |
| ок... снов... |
| Автор: Sfate 22.12.2009, 23:57 | ||
все отредактил... в студии компилится без ошибок и работает))
вот теперь смело можешь юзать)) если будет ссылаться на отсутствие либы http://rghost.ru/739744 (3.7 МБ), просто добавь в директорию, куда компилиться exe-шник эту либу... XX меняешь на цифры в ошибке... |
| Автор: Stas96 23.12.2009, 09:56 |
| Sfate, Спасибо большое.Опять Ошибка была но я ее исправил поставил другую кодировку) |
| Автор: Ferrisgeneral 11.1.2010, 14:44 |
| а у меня выдает ошибку (код такойже как и 2-мя постами выше) error C2664: 'ID3DXFont::DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR' вот код где ошибка: //Вывод текста pFont -> DrawText(NULL, StrokaTexta, -1, &Rect, DT_WORDBREAK, MyColor); |
| Автор: Sfate 12.1.2010, 01:10 |
| Ferrisgeneral, перед текстом в кавычках поставь L т.е. если было "текст", то надо L"текст" |
| Автор: Ferrisgeneral 12.1.2010, 16:16 |
| да да, спасибо ... правда и сам разобрался. только не особо теперь понятно, почему выводится текст "StrokaTexta" (из Вывод текста ) ..., а не та строчка текста что написана в разделе RenderingDirect3D(). вот еще одна проблемка в строчке UINT Time = timeGetTime() % 5000; Error 1 error LNK2019: unresolved external symbol __imp__timeGetTime@0 referenced in function "void __cdecl Matrix(void)" (?Matrix@@YAXXZ) Error 2 fatal error LNK1120: 1 unresolved externals если например присвоить константу, то все компилится UINT Time = 800; я как понимаю, просто функция не может взять системное время от начала работы винды. У меня XP Pro х64 SP2, Athlon 64 X2 6000+, 4Гб оперативы, GF 8800GT |
| Автор: Ferrisgeneral 15.1.2010, 14:00 |
| спасибо за подсказку, не знал что что-то еще надо подключать к линковщику. возник еще один вопрос: при запуске проекта у меня кубик растянут по горизонтали. Может я где-то не правильно использую параметры взятого устройства (монитора). у меня код почти идентичный тому что в первом посте, Монитор 24" разрешение 1920х1200. |
| Автор: Sfate 15.1.2010, 19:43 | ||||
Ferrisgeneral, замени строчку
на
просто необходимо соблюдать соотношение сторон... для разных моников оно разное... вот на досуге http://ru.wikipedia.org/wiki/Соотношение_сторон_экрана... |
| Автор: Ferrisgeneral 3.2.2010, 00:26 |
| спасибо помогло, когда вбил 1.6f вместо 1.0f (3-го параметра). правда так и не понял назначение 1-го, 2-го и 4-го параметров. возник еще вопрос по поводу обработки клавишь клавиатуры, ... не понимаю куда именно надо поместить InitialInput(). Догадываюсь что куда-то в WinMain, но не знаю куда именно. http://www.sendspace.com/file/usscb1 так же есть вопрос по обработке сообщений от мыши: какое событие надо обрабатывать при вращении колесика мыши (вверх и вниз) (кнопка под колесиком вроде называется MIDDLE_BUTTON) |
| Автор: Sfate 5.2.2010, 02:21 |
| Ferrisgeneral, щас... времени качать проект иль че там... нету... ближе к вечеру этого дня гляну... |
| Автор: Ferrisgeneral 7.2.2010, 19:28 |
| по моим вопросикам есть какие нибудь ответы ? |
| Автор: Rickert 8.2.2010, 02:53 |
| Модератор: Один топик - один вопрос, не устраивайте мусорку. |