Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > DirectX в Visual 2010


Автор: Zerony 18.4.2011, 21:15
Всем привет. 

Я решился и начал изучать DirectX, и проблемы начали меня преследовать при самом начале. 
http://progs.biz/directx/direct3d/vc/lessons/002.aspx  - тут есть урок, пример DirectX, так вот не понятно уже с самого начала какой проект создавать - Console Application, или какое? 

У меня с ходу выдает ошибки: 
Код

1    error C2440: '=' : cannot convert from 'const char [9]' to 'LPCWSTR'    c:\users\наталка\documents\visual studio 2010\projects\dc\dc\dc.cpp    20

2    error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [9]' to 'LPCWSTR'    c:\users\наталка\documents\visual studio 2010
\projects\dc\dc\dc.cpp    23
    3    IntelliSense: a value of type "const char *" cannot be assigned to an entity of type "LPCWSTR"    c:\users\наталка\documents\visual studio 2010
\projects\dc\dc\dc.cpp    20
    4    IntelliSense: argument of type "const char *" is incompatible with parameter of type "LPCWSTR"    c:\users\наталка\documents\visual studio 
2010\projects\dc\dc\dc.cpp    22



Был бы также признателен на рабочий пример использования DirectX в Visual C++. Особо рад бы был, если б это была примитивная прорисовка линий, точек, квадратиков. 

Заранее спасибо. 

Автор: Vetos 21.4.2011, 17:54
С директХ не работал, но твои ошибки говорят о том что ты используешь char * вместо LPCWSTR, есть некий код который все исправит:
Код

    char *orig = "DirectX Project"; 
    size_t origsize = strlen(orig) + 1;
    const size_t newsize = 100;
    size_t convertedChars = 0;
    wchar_t wcstring[newsize];
    mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);


Теперь используй wcstring там где функция требует LPCWSTR. Также можно использовать для конвертации std::string.

Все эти проблемы изза кодировки, в ANSI  у тебя бы все работало, а вот в Unicode char * уже не канает, можешь использовать функции вместо CreateWindowExW - CreateWindowExA, это вызовет функцию для ANSI кодировки и у тебя заработает char *

Автор: BorisVorontsov 22.4.2011, 11:48
Цитата(Zerony @  18.4.2011,  21:15 Найти цитируемый пост)
Я решился и начал изучать DirectX, и проблемы начали меня преследовать при самом начале. 
http://progs.biz/directx/direct3d/vc/lessons/002.aspx  - тут есть урок, пример DirectX, так вот не понятно уже с самого начала какой проект создавать - Console Application, или какое? 

Win32 Project

Цитата(Zerony @  18.4.2011,  21:15 Найти цитируемый пост)
Был бы также признателен на рабочий пример использования DirectX в Visual C++

Первым делом тебе надо было скачать DirectX SDK. Там других примеров нет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)