Форум программистов, компьютерный форум 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. Просмотров 3127. Ответов 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;
}
Прошу помощи.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 19:55     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
Посмотрите здесь:
невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" C++
C++ Невозможно преобразовать параметр 2 из "char" в "const char *"
C++ Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *"
C++ Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
C++ Преобразовать параметр из "WCHAR [260]" в "const char *"
C++ Невозможно преобразовать "const char" в "char"
OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.12.2012, 20:08     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #2
florgas, какая кодировка файла с кодом?
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
25.12.2012, 20:30  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #3
programina, в свойствах проекта стоит "Use Unicode Character Set". Так же пробовал "Use Multi-Byte Character Set", результат остался без изменений.

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

Не по теме:

florgas, ну, вот видишь, твою тему заметили

Цитата Сообщение от magirus Посмотреть сообщение
programina, не стоит давать советов, нарушающих правила форума.
"Aye aye, commander"



Добавлено через 6 минут
По-моему там нужно убрать букву L и перевести все в Unicode, а вообще втопку эту вижуал студию
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
26.12.2012, 20:53  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #17
Если убрать "L" появляется куда других ошибок.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 20:57     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #18
Цитата Сообщение от florgas Посмотреть сообщение
Если убрать "L" появляется куда других ошибок
Какие, можешь выложить?
Avazart
7102 / 5279 / 267
Регистрация: 10.12.2010
Сообщений: 23,290
Записей в блоге: 17
26.12.2012, 21:01     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #19
Цитата Сообщение от florgas Посмотреть сообщение
невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
В какой строке ошибка то ?

Добавлено через 1 минуту
Полагаю в этой
C++
1
gamingtxt = LoadBMP(L"texture.bmp");
Убери L

Добавлено через 42 секунды
C++
1
GLuint LoadBMP(const char *fmt, ...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2012, 21:01     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
Еще ссылки по теме:
C++ IntelliSense: несовместимые типы операндов ("char" и "const char *")
error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" C++
C++ Несовместимые типы операндов "char" и "const char*"
Аргумент типа "unsigned char*" несовместим с параметром типа "const char*" C++
C++ Аргумент типа "const char*" несовместим с параметром типа "LPCWSTR"

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

Или воспользуйтесь поиском по форуму:
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 21:01     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #20
Avazart, очевидно, что 132
Yandex
Объявления
26.12.2012, 21:01     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
Ответ Создать тему
Опции темы

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