Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.71
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
#1

Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" - C++

25.12.2012, 19:55. Просмотров 3285. Ответов 33
Метки нет (Все метки)

Писал программу. Дошел до наложения текстур. Пытаюсь наложить 4-й час. Много разных ошибок. Все ошибки гуглил. На данный момент ошибка такая:
невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
Гуглил эту ошибку, писали, что надо добавить "L", чтобы привести к нужному типу данных, но проблема в том, что эта ошибка выдается, когда "L" у меня уже есть, а если "L" нету, то выдаются совсем другой длинный список ошибок.

Код программы:
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
#include <time.h>
#include <Windows.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#include <cstdio>
#pragma comment (lib, "glaux.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"opengl32.lib")
int dir;
float gamer_x=0, gamer_y=0, gamer_z=0, mob_x=0, mob_y=0, mob_z=0;
GLuint gamingtxt, texture;
 
GLuint LoadBMP(const char *fmt, ...)
{
    GLuint t;
    char filename[256];
    va_list ap;
    va_start(ap, fmt);
    vsprintf_s(filename, fmt, ap);
    va_end(ap);
 
    AUX_RGBImageRec *texture = auxDIBImageLoadA(filename);
    glGenTextures(1, &t);
    glBindTexture(GL_TEXTURE_2D, t);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    glTexImage2D(GL_TEXTURE_2D, 0, 3, texture->sizeX, texture->sizeY, 0,
    GL_RGB, GL_UNSIGNED_BYTE, texture->data);
    
    return t;    
}
 
void display(void) { 
glClear (GL_COLOR_BUFFER_BIT);
 
/* Игрок */ 
glColor3f (1.0, 1.0, 1.0); 
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, gamingtxt);
glBegin(GL_POLYGON); 
glTexCoord2d(0, 0); glVertex3f (gamer_x, gamer_y, gamer_z + 0.0); 
glTexCoord2d(1, 0); glVertex3f (gamer_x + 0.03, gamer_y, gamer_z + 0.0); 
glTexCoord2d(1, 1); glVertex3f (gamer_x + 0.03, gamer_y + 0.03, gamer_z + 0.0); 
glTexCoord2d(0, 1); glVertex3f (gamer_x, gamer_y + 0.03, gamer_z + 0.0);
glEnd();
 
/* Противники */
 
glColor3f (0.0, 0.0, 0.0); 
glBegin(GL_POLYGON); 
glVertex3f (mob_x + 0.22, mob_y + 0.22, mob_z + 0.0); 
glVertex3f (mob_x + 0.25, mob_y + 0.22, mob_z + 0.0); 
glVertex3f (mob_x + 0.25, mob_y + 0.25, mob_z + 0.0); 
glVertex3f (mob_x + 0.22, mob_y + 0.25, mob_z + 0.0);
glEnd();
glutSwapBuffers();
} 
 
/* Движение мобов */
void MobMotion(){
    int RandomNumber = rand()%4;
    switch(RandomNumber)
    {
        case 0 :  mob_x-=0.01; break;
        case 1 :  mob_y+=0.01; break;
        case 2 :  mob_x+=0.01; break;        
        case 3 :  mob_y-=0.01; break;
    }
}
 
/* Ограничение перемещения размерами экрана */
void Screen(){
    if(gamer_x>0.97){
            gamer_x = 0.97;
            }
    if(gamer_x<-1){
            gamer_x = -1;
            }
    if(gamer_y>0.97){
            gamer_y = 0.97;
            }
    if(gamer_y<-1){
            gamer_y = -1;
            }
    if(mob_x>0.97){
            mob_x = 0.97;
            }
    if(mob_x<-1){
            mob_x = -1;
            }
    if(mob_y>0.97){
            mob_y = 0.97;
            }
    if(mob_y<-1){
            mob_y = -1;
            }
            
}
 
/* Функция времени */
void Timer(int){
    display();  
    MobMotion();
    Screen();
    glutTimerFunc(0.001, Timer, 0);
}
 
/* Функция считывания нажатия клавиш и перемещения игрока */
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 100 :  gamer_x-=0.01; break;
        case 101 :  gamer_y+=0.01; break;
        case 102:   gamer_x+=0.01; break;        
        case 103 :  gamer_y-=0.01; break;
    }
}
 
/* Определим параметры окна */ 
int main(int argc, char** argv) 
{ 
glutInit(&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowSize (800, 800); 
glutInitWindowPosition (100, 100); 
glutCreateWindow ("Game v0.1"); 
glClearColor (0.0,0.4,0.0,0.0); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
gamingtxt = LoadBMP(L"texture.bmp");
glutDisplayFunc(display); 
glutTimerFunc(0.001, Timer, 0);
glutSpecialFunc(KeyboardEvent);
glutMainLoop(); 
return 0;
}
Прошу помощи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 19:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" (C++):

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *" - C++
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен char* p = strtok(s.c_str(), ' '); не нравится такое...

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" - C++
for(int i = 0; i&lt; 5; i++) { wr_struc (list); if (strcmp(&amp;list.Sostav,osn_sostav)==0 &amp;&amp; strcmp(&amp;list.MestoVkomande,attack)==0...

невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" - C++
msoftcon.h //msoftcon.h //declarations for Lafore's console graphics functions //uses Window's console functions #ifndef...

Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]" - C++
Вроде все правильно а все равно не работает. Подскажите в чем ошибка #include &lt;iostream&gt; template&lt;typename T&gt; inline const T...

Невозможно преобразовать параметр 2 из "char" в "const char *" - C++
Ошибка strcpy: невозможно преобразовать параметр 2 из &quot;char&quot; в &quot;const char *&quot; //удаления из первой строки всех символов, встречающихся...

Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *" - C++
Вот так работает: wchar_t buf; Edit_GetText(hE, buf, sizeof(buf)); if(buf) { wchar_t b; _itow_s(wcscspn(buf, &amp;buf), b, 10); ...

33
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.12.2012, 20:08 #2
florgas, какая кодировка файла с кодом?
0
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.12.2012, 20:30  [ТС] #3
programina, в свойствах проекта стоит "Use Unicode Character Set". Так же пробовал "Use Multi-Byte Character Set", результат остался без изменений.

Добавлено через 9 минут
В папке "lib" не могу найти библиотеки "opengl32.lib" и "glu32.lib", но при компиляции про них ничего не сказано. Может этот как-то влияет?
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.12.2012, 20:31 #4
Цитата Сообщение от florgas Посмотреть сообщение
"Use Unicode Character Set". Так же пробовал "Use Multi-Byte Character Set"
я в этих параметрах от VS ничего не понимаю, т.к. не пользуюсь ею. А попробуйте открыть свой код с помощью блокнота и нажмите "Сохранить как...", посмотрите в какой кодировке файл сохраняется по-умолчанию.
0
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.12.2012, 20:37  [ТС] #5
Цитата Сообщение от programina Посмотреть сообщение
я в этих параметрах от VS ничего не понимаю, т.к. не пользуюсь ею. А попробуйте открыть свой код с помощью блокнота и нажмите "Сохранить как...", посмотрите в какой кодировке файл сохраняется по-умолчанию.
Если я сделал все правильно, то ANSI, но я сомневаюсь, что я сделал все правильно.
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.12.2012, 20:43 #6
Цитата Сообщение от florgas Посмотреть сообщение
Если я сделал все правильно, то ANSI, но я сомневаюсь, что я сделал все правильно.
Это ?
Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
0
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.12.2012, 20:46  [ТС] #7
programina, оно самое
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.12.2012, 20:57 #8
Цитата Сообщение от florgas Посмотреть сообщение
programina, оно самое
Не пробовали сохранить свой файл в Юникоде?
0
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.12.2012, 21:01  [ТС] #9
Сделал. Теперь Юникод. Эффекта 0.
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.12.2012, 21:23 #10
Цитата Сообщение от florgas Посмотреть сообщение
Сделал. Теперь Юникод. Эффекта 0
Вобщем у тебя вопрос опенгла не касается, тебе нужно было сразу зайти в раздел http://www.cyberforum.ru/visual-cpp/
0
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.12.2012, 21:30  [ТС] #11
Цитата Сообщение от programina Посмотреть сообщение
Вобщем у тебя вопрос опенгла не касается, тебе нужно было сразу зайти в раздел http://www.cyberforum.ru/visual-cpp/
Предлагаешь сейчас создать дубликат темы там что ли?)
Модераторы, перенесите пожалуйста тему.
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 06:05 #12
Цитата Сообщение от florgas Посмотреть сообщение
Модераторы, перенесите пожалуйста тему
Ага так они зайдут в раздел опенгл и перенесут твою тему, скорее уж конец света случится, просто создавай там тему, а эту они когда заметят дубль, тогда удалят и еще: когда создашь в том разделе новую тему, если хочешь помочь модераторам поскорее удалить дубль, то можешь добавить просьбу, чтобы удалили дубль в разделе опенгл, а не наоборот, а у них иногда бывают такие глюки и могут удалить твою новую тему вместо старой.
0
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
26.12.2012, 11:06  [ТС] #13
Окей. Так и сделаю
0
Croessmah
Эксперт CЭксперт С++
13412 / 7563 / 855
Регистрация: 27.09.2012
Сообщений: 18,614
Записей в блоге: 3
Завершенные тесты: 1
26.12.2012, 18:52 #14
Цитата Сообщение от florgas Посмотреть сообщение
gamingtxt = LoadBMP(L"texture.bmp");
Прототип LoadBMP можете выложить?
0
magirus
26.12.2012, 18:53     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
  #15
 Комментарий администратора 
programina, не стоит давать советов, нарушающих правила форума.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2012, 18:53
Привет! Вот еще темы с ответами:

Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" - C++
почему выдаёт ошибку? int RegClass(WNDPROC Proc,LPCTSTR szName,UINT brBackground){ WNDCLASSEX wc; ...

Преобразовать параметр из "WCHAR [260]" в "const char *" - C++
Подскажите пожалуйста, как &quot; преобразовать параметр из &quot;WCHAR &quot; в &quot;const char *&quot;&quot;? Вот,по коду я думаю понятно будет. Если поставить...

Ошибка при сборке многофайлового проекта: "невозможно преобразовать "int" в "const golf" - C++
Сделал многофайловую программу программу, вот она: //golf.h #include &lt;iostream&gt; #ifndef golg_h_ #define golf_h_ const int Len =...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout - C++
Добрый день! Переписал код из книг Лафоре, создание мультимножества из собственных объектов- справочник телефонный, с именем и фамилией. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.12.2012, 18:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru