Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366

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

25.12.2012, 19:55. Показов 7803. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.12.2012, 19:55
Ответы с готовыми решениями:

Невозможно преобразовать параметр 1 из 'const char [15]' в 'LPCWSTR'
с сайта скачала прогу которая должна рисовать сферу, но при компилировании выходит ошибка:error C2664: auxInitWindowW: невозможно...

Невозможно преобразовать параметр из int в const char
Приветствую, помогите пожалуйста исправить следующую ошибку: printf: невозможно преобразовать параметр 1 из &quot;int&quot; в &quot;const...

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

33
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
26.12.2012, 21:32  [ТС]
Студворк — интернет-сервис помощи студентам
Список появляющихся ошибок:
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.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.12.2012, 21:35
Либу OpenGL откуда брали ?
Она вообще рабочая? проверьте на простом примере ?
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
26.12.2012, 22:18  [ТС]
О какой библиотеке идет речь?
glaux.lib, glu32.lib, opengl32.lib?

Знакомый скинул текст своей программы, она у меня нормально работает и отображает текстуры. Поэтому скорей всего проблема не в библиотеке.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.12.2012, 22:23
glaux.lib -ругается именно на неё, как я понял линкер не может найти в ней указанные ф-ции...

Добавлено через 3 минуты
Что за файл tkimage ?
1
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
26.12.2012, 22:41  [ТС]
glaux.lib рабочая. Проверял.
Что такое tkimage не имею понятия.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.12.2012, 22:43
tkimage модуль походу какой-то cpp или h, если ругается на его объектный файл
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
26.12.2012, 22:47  [ТС]
Что делать-то?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.12.2012, 22:51
Метом исключения кода попытать выяснить вызов какой/каких ф-ций вызывает подобные ошибки

Добавлено через 1 минуту
Потому как непонятно откуда нарисовалась ф-ция _RawImageOpenAW() может внутренняя
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 23:01
Вот нагуглила, 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;
}
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
26.12.2012, 23:07  [ТС]
Я все равно не понимаю что мне делать
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
26.12.2012, 23:12
Цитата Сообщение от florgas Посмотреть сообщение
Я все равно не понимаю что мне делать
Вот классная книга (Керниган) [ссылка удалена], сама сейчас ее читаю, там пишут про язык Си, если его изучить, потом все языки будут легкими.
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
26.12.2012, 23:50  [ТС]
Зачем мне какой-то язык? У меня конкретный вопрос по конкретной проблеме? Что за бред вообще?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.12.2012, 00:23
Цитата Сообщение от programina Посмотреть сообщение
Вот нагуглила, tkimage.c который определяет эту функцию, если не ошибаюсь, то она требует юникодовые аргументы
Ну этот файл из исходников как я понимаю, а значит проблема всё таки в самой библиотеке.
Цитата Сообщение от florgas Посмотреть сообщение
Я все равно не понимаю что мне делать
Думаю нужно читать документацию, смотреть примеры.

Навскидку предположу что нужно определить какой-то макрос.( если учесть что библиотека действительно рабочая )
0
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
27.12.2012, 12:17  [ТС]
Библиотеку качал с двух разных источников, а так же, программа моего друга у меня компилируется нормально. Может стоит выложить код программы друга?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2012, 12:17

Printf: невозможно преобразовать параметр 1 из 'char' в 'const char *'
Здравствуйте, подскажите как исправить? &quot;printf: невозможно преобразовать параметр 1 из 'char' в 'const char *'&quot; #include...

Fopen: невозможно преобразовать параметр 1 из 'LPWSTR' в 'const char *'
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include&lt;cstdio&gt; #include&lt;io.h&gt; int APIENTRY WinMain(HINSTANCE hInst,HINSTANCE...

Невозможно преобразовать параметр 1 из 'char' в 'const char *'
Дана задача: Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые...

Ошибка компиляции "невозможно преобразовать параметр 1 из 'WCHAR [256]' в 'const char *'"
Я решил попробовать написать свой чит для кс го (для просмотра сквозь стены) и через 3 дня экспериментов был написан следующий код. ...

Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *'
Unit1.cpp(59): E2034 Cannot convert 'char const' to 'const wchar_t *' Full parser context Unit1.cpp(55): parsing: void _fastcall...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru