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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.71
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
25.12.2012, 19:55     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #1
Писал программу. Дошел до наложения текстур. Пытаюсь наложить 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;
}
Прошу помощи.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.12.2012, 21:32  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #21
Список появляющихся ошибок:
1>glaux.lib(tkimage.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__wsprintfA в функции _RawImageOpenAW@8
1>glaux.lib(tkdib.obj) : error LNK2001: неразрешенный внешний символ "__imp__wsprintfA"
1>glaux.lib(tkimage.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__MessageBoxA@16 в функции _RawImageOpenAW@8
1>glaux.lib(tkdib.obj) : error LNK2001: неразрешенный внешний символ "__imp__MessageBoxA@16"
1>glaux.lib(tk.obj) : error LNK2001: неразрешенный внешний символ "__imp__MessageBoxA@16"
1>glaux.lib(tkimage.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetFocus@0 в функции _RawImageOpenAW@8
1>glaux.lib(tkdib.obj) : error LNK2001: неразрешенный внешний символ "__imp__GetFocus@0"
1>glaux.lib(tk.obj) : error LNK2001: неразрешенный внешний символ "__imp__GetFocus@0"
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__DeleteObject@4 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tk.obj) : error LNK2001: неразрешенный внешний символ "__imp__DeleteObject@4"
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__DeleteDC@4 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GdiFlush@0 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SetDIBits@28 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SelectObject@8 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__CreateDIBSection@24 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tkdib.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__CreateCompatibleDC@4 в функции _tkDIBImageLoadAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__DispatchMessageA@4 в функции _tkExec@0
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetMessageA@16 в функции _tkExec@0
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__TranslateMessage@4 в функции _tkExec@0
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__PeekMessageA@20 в функции _tkExec@0
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetClientRect@8 в функции _tkExec@0
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetSystemMetrics@4 в функции _tkInitPosition@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__ShowWindow@8 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetDC@4 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetWindowRect@8 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__CreateWindowExA@48 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__CreateWindowExW@48 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__AdjustWindowRect@12 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__RegisterClassA@4 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__RegisterClassW@4 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetStockObject@4 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__LoadCursorA@8 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__LoadIconA@8 в функции _tkInitWindowAW@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SetPaletteEntries@16 в функции _tkSetOneColor@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetPaletteEntries@16 в функции _tkSetFogRamp@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SwapBuffers@4 в функции _tkSwapBuffers@0
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetCursorPos@4 в функции _tkGetMouseLoc@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SetCapture@4 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__ReleaseCapture@0 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetKeyState@4 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__DestroyWindow@4 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__EndPaint@8 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__BeginPaint@8 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__PostQuitMessage@4 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__RealizePalette@4 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SelectPalette@12 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__DefWindowProcA@16 в функции _tkWndProc@16
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__RegCloseKey@4 в функции _GetRegistrySysColors@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__RegQueryValueExA@24 в функции _GetRegistrySysColors@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__RegOpenKeyExA@20 в функции _GetRegistrySysColors@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__PostMessageA@16 в функции _GrabStaticEntries@4
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SetSysColors@12 в функции _GrabStaticEntries@4
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetSysColor@4 в функции _GrabStaticEntries@4
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SetSystemPaletteUse@8 в функции _GrabStaticEntries@4
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__CreatePalette@4 в функции _FlushPalette@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__SetPixelFormat@12 в функции _FindPixelFormat@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__ChoosePixelFormat@8 в функции _FindBestPixelFormat@12
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__DescribePixelFormat@16 в функции _FindExactPixelFormat@12
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__UnrealizeObject@4 в функции _RealizePaletteNow@12
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__InvalidateRect@12 в функции _ForceRedraw@4
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__GetPixelFormat@4 в функции _PixelFormatDescriptorFromDc@8
1>glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__ReleaseDC@8 в функции _CleanUp@0
1>c:\my dоcuments\visual studio 2010\Projects\fff\Debug\fff.exe : fatal error LNK1120: 56 неразрешенных внешних элементов
1>
1>Build FAILED.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
26.12.2012, 21:35     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #22
Либу OpenGL откуда брали ?
Она вообще рабочая? проверьте на простом примере ?
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.12.2012, 22:18  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #23
О какой библиотеке идет речь?
glaux.lib, glu32.lib, opengl32.lib?

Знакомый скинул текст своей программы, она у меня нормально работает и отображает текстуры. Поэтому скорей всего проблема не в библиотеке.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
26.12.2012, 22:23     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #24
glaux.lib -ругается именно на неё, как я понял линкер не может найти в ней указанные ф-ции...

Добавлено через 3 минуты
Что за файл tkimage ?
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.12.2012, 22:41  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #25
glaux.lib рабочая. Проверял.
Что такое tkimage не имею понятия.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
26.12.2012, 22:43     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #26
tkimage модуль походу какой-то cpp или h, если ругается на его объектный файл
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.12.2012, 22:47  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #27
Что делать-то?
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
26.12.2012, 22:51     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #28
Метом исключения кода попытать выяснить вызов какой/каких ф-ций вызывает подобные ошибки

Добавлено через 1 минуту
Потому как непонятно откуда нарисовалась ф-ция _RawImageOpenAW() может внутренняя
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 23:01     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #29
Вот нагуглила, tkimage.c который определяет эту функцию, если не ошибаюсь, то она требует юникодовые аргументы
Кликните здесь для просмотра всего текста

C
/*
 * (c) Copyright 1993, Silicon Graphics, Inc.
 * ALL RIGHTS RESERVED
 * Permission to use, copy, modify, and distribute this software for
 * any purpose and without fee is hereby granted, provided that the above
 * copyright notice appear in all copies and that both the copyright notice
 * and this permission notice appear in supporting documentation, and that
 * the name of Silicon Graphics, Inc. not be used in advertising
 * or publicity pertaining to distribution of the software without specific,
 * written prior permission.
 *
 * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
 * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
 * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
 * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
 * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
 * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
 * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
 * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
 * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * US Government Users Restricted Rights
 * Use, duplication, or disclosure by the Government is subject to
 * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
 * (c)(1)(ii) of the Rights in Technical Data and Computer Software
 * clause at DFARS 252.227-7013 and/or in similar or successor
 * clauses in the FAR or the DOD or NASA FAR Supplement.
 * Unpublished-- rights reserved under the copyright laws of the
 * United States.  Contractor/manufacturer is Silicon Graphics,
 * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
 *
 * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
 */
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "tk.h"
#define static
#define IMAGIC      0x01da
#define IMAGIC_SWAP 0xda01
#define SWAP_SHORT_BYTES(x) ((((x) & 0xff) << 8) | (((x) & 0xff00) >> 8))
#define SWAP_LONG_BYTES(x) (((((x) & 0xff) << 24) | (((x) & 0xff00) << 8)) | 
                            ((((x) & 0xff0000) >> 8) | (((x) & 0xff000000) >> 24)))
typedef struct _rawImageRec {
    unsigned short imagic;
    unsigned short type;
    unsigned short dim;
    unsigned short sizeX, sizeY, sizeZ;
    unsigned long min, max;
    unsigned long wasteBytes;
    char name[80];
    unsigned long colorMap;
    HANDLE file;
    unsigned char *tmp, *tmpR, *tmpG, *tmpB;
    unsigned long rleEnd;
    unsigned long *rowStart;
    long *rowSize;
} rawImageRec;
static void RawImageClose(rawImageRec *raw);
static rawImageRec *RawImageOpenAW(char *fileName, BOOL bUnicode)
{
    rawImageRec *raw;
    unsigned long *rowStart, *rowSize, ulTmp;
    int x;
    DWORD dwBytesRead;
    raw = (rawImageRec *)malloc(sizeof(rawImageRec));
    if (raw == NULL) {
        MESSAGEBOX(GetFocus(), "Out of memory.", "Error", MB_OK);
        return NULL;
    }
    raw->file = bUnicode ? CreateFileW((LPWSTR) fileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0) :
                           CreateFileA((LPSTR) fileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
    if (raw->file == INVALID_HANDLE_VALUE) {
        char ach[256];
        bUnicode ? wsprintf(ach, "Failed to open image file %ws.n", fileName) :
                   wsprintf(ach, "Failed to open image file %s.n", fileName);
        MESSAGEBOX(GetFocus(), ach, "Error", MB_OK);
        free( raw );
        return NULL;
    }
    ReadFile(raw->file, (LPVOID) raw, 12, &dwBytesRead, (LPOVERLAPPED) NULL);
    if (raw->imagic == IMAGIC_SWAP) {
        raw->type = SWAP_SHORT_BYTES(raw->type);
        raw->dim = SWAP_SHORT_BYTES(raw->dim);
        raw->sizeX = SWAP_SHORT_BYTES(raw->sizeX);
        raw->sizeY = SWAP_SHORT_BYTES(raw->sizeY);
        raw->sizeZ = SWAP_SHORT_BYTES(raw->sizeZ);
    } else if (raw->imagic != IMAGIC) {
        // magic number is absent - conclude file is invalid (?)
        MESSAGEBOX(GetFocus(), "Invalid rgb file.", "Error", MB_OK);
        RawImageClose( raw );
        return NULL;
    }
        
    raw->tmp = (unsigned char *)malloc(raw->sizeX*256);
    raw->tmpR = (unsigned char *)malloc(raw->sizeX*256);
    raw->tmpG = (unsigned char *)malloc(raw->sizeX*256);
    raw->tmpB = (unsigned char *)malloc(raw->sizeX*256);
    if (raw->tmp == NULL || raw->tmpR == NULL || raw->tmpG == NULL ||
        raw->tmpB == NULL) {
        MESSAGEBOX(GetFocus(), "Out of memory.", "Error", MB_OK);
        RawImageClose( raw );
        return NULL;
    }
    if ((raw->type & 0xFF00) == 0x0100) {
        x = raw->sizeY * raw->sizeZ * sizeof(long);
        raw->rowStart = (unsigned long *)malloc(x);
        raw->rowSize = (long *)malloc(x);
        if (raw->rowStart == NULL || raw->rowSize == NULL) {
            MESSAGEBOX(GetFocus(), "Out of memory.", "Error", MB_OK);
            RawImageClose( raw );
            return NULL;
        }
        raw->rleEnd = 512 + (2 * x);
        SetFilePointer(raw->file, 512, NULL, FILE_BEGIN);
        ReadFile(raw->file, (LPVOID) raw->rowStart, x, &dwBytesRead,
                 (LPOVERLAPPED) NULL);
        ReadFile(raw->file, (LPVOID) raw->rowSize, x, &dwBytesRead,
                 (LPOVERLAPPED) NULL);
        if (raw->imagic == IMAGIC_SWAP) {
            x /= sizeof(long);
            rowStart = raw->rowStart;
            rowSize = raw->rowSize;
            while (x--) {
                ulTmp = *rowStart;
                *rowStart++ = SWAP_LONG_BYTES(ulTmp);
                ulTmp = *rowSize;
                *rowSize++ = SWAP_LONG_BYTES(ulTmp);
            }
        }
    }
    return raw;
}
static void RawImageClose(rawImageRec *raw)
{
    if( !raw )
        return;
    CloseHandle(raw->file);
    if( raw->tmp ) free(raw->tmp);
    if( raw->tmpR ) free(raw->tmpR);
    if( raw->tmpG ) free(raw->tmpG);
    if( raw->tmpB ) free(raw->tmpB);
    free(raw);
}
static void RawImageGetRow(rawImageRec *raw, unsigned char *buf, int y, int z)
{
    unsigned char *iPtr, *oPtr, pixel;
    int count;
    DWORD dwBytesRead;
    if ((raw->type & 0xFF00) == 0x0100) {
        SetFilePointer(raw->file, raw->rowStart[y+z*raw->sizeY], NULL, FILE_BEGIN);
        ReadFile(raw->file, (LPVOID) raw->tmp,
                 (unsigned int)raw->rowSize[y+z*raw->sizeY], &dwBytesRead,
                 (LPOVERLAPPED) NULL);
        iPtr = raw->tmp;
        oPtr = buf;
        while (1) {
            pixel = *iPtr++;
            count = (int)(pixel & 0x7F);
            if (!count) {
                return;
            }
            if (pixel & 0x80) {
                while (count--) {
                    *oPtr++ = *iPtr++;
                }
            } else {
                pixel = *iPtr++;
                while (count--) {
                    *oPtr++ = pixel;
                }
            }
        }
    } else {
        SetFilePointer(raw->file, 512+(y*raw->sizeX)+(z*raw->sizeX*raw->sizeY),
                       NULL, FILE_BEGIN);
        ReadFile(raw->file, (LPVOID) buf, raw->sizeX, &dwBytesRead,
                 (LPOVERLAPPED) NULL);
    }
}
static void RawImageGetData(rawImageRec *raw, TK_RGBImageRec *final)
{
    unsigned char *ptr;
    int i, j;
    final->data = (unsigned char *)malloc((raw->sizeX+1)*(raw->sizeY+1)*4);
    if (final->data == NULL) {
        MESSAGEBOX(GetFocus(), "Out of memory.", "Error", MB_OK);
        return;
    }
    ptr = final->data;
    for (i = 0; i < raw->sizeY; i++) {
        RawImageGetRow(raw, raw->tmpR, i, 0);
        RawImageGetRow(raw, raw->tmpG, i, 1);
        RawImageGetRow(raw, raw->tmpB, i, 2);
        for (j = 0; j < raw->sizeX; j++) {
            *ptr++ = *(raw->tmpR + j);
            *ptr++ = *(raw->tmpG + j);
            *ptr++ = *(raw->tmpB + j);
        }
    }
}
TK_RGBImageRec *tkRGBImageLoad(char *fileName)
{
    return tkRGBImageLoadAW(fileName, FALSE);
}
TK_RGBImageRec *tkRGBImageLoadAW(char *fileName, BOOL bUnicode)
{
    rawImageRec *raw;
    TK_RGBImageRec *final;
    if( !(raw = RawImageOpenAW(fileName, bUnicode)) )
        return NULL;
    final = (TK_RGBImageRec *)malloc(sizeof(TK_RGBImageRec));
    if (final == NULL) {
        MESSAGEBOX(GetFocus(), "Out of memory.", "Error", MB_OK);
        RawImageClose(raw);
        return NULL;
    }
    final->sizeX = raw->sizeX;
    final->sizeY = raw->sizeY;
    RawImageGetData(raw, final);
    RawImageClose(raw);
    return final;
}
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.12.2012, 23:07  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #30
Я все равно не понимаю что мне делать
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 23:12     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #31
Цитата Сообщение от florgas Посмотреть сообщение
Я все равно не понимаю что мне делать
Вот классная книга (Керниган) [ссылка удалена], сама сейчас ее читаю, там пишут про язык Си, если его изучить, потом все языки будут легкими.
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.12.2012, 23:50  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #32
Зачем мне какой-то язык? У меня конкретный вопрос по конкретной проблеме? Что за бред вообще?
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
27.12.2012, 00:23     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #33
Цитата Сообщение от programina Посмотреть сообщение
Вот нагуглила, tkimage.c который определяет эту функцию, если не ошибаюсь, то она требует юникодовые аргументы
Ну этот файл из исходников как я понимаю, а значит проблема всё таки в самой библиотеке.
Цитата Сообщение от florgas Посмотреть сообщение
Я все равно не понимаю что мне делать
Думаю нужно читать документацию, смотреть примеры.

Навскидку предположу что нужно определить какой-то макрос.( если учесть что библиотека действительно рабочая )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 12:17     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
Еще ссылки по теме:

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" C++
C++ Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
C++ Невозможно преобразовать параметр 2 из "char" в "const char *"

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

Или воспользуйтесь поиском по форуму:
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
27.12.2012, 12:17  [ТС]     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *" #34
Библиотеку качал с двух разных источников, а так же, программа моего друга у меня компилируется нормально. Может стоит выложить код программы друга?
Yandex
Объявления
27.12.2012, 12:17     Невозможно преобразовать параметр 1 из "const wchar_t [12]" в "const char *"
Ответ Создать тему
Опции темы

Текущее время: 21:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru