Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366

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

25.12.2012, 19:55. Показов 7790. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru