Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Почему Incompatible types: Integer and Pointer ?   Найти похожие ветки 

 
De   (2005-12-09 12:37) [0]

Привет, All!
юзаю opengl конкретно функцию gluBuild2DMipmaps
вызваю её в своей функции последним параметром передаю "data: Pointer" пришедшее как параметр моей функции
прикомпиляции упорно кричит
Incompatible types: "Integer" and "Pointer"
почему?
объявление функции в opengl.pas:

function  gluBuild2DMipmaps (target: GLenum; components, width: GLint;
                            format, atype: GLenum; data: Pointer): Integer; stdcall;

её вызов в мой функции:

function glTex_Create(c, b: integer; Width, Height: integer; Clamp: boolean; Data: Pointer): TTexture;
...
gluBuild2DMipmaps(GL_TEXTURE_2D, c, Width, Height, b, GL_UNSIGNED_BYTE, Data);


 
Reindeer Moss Eater ©   (2005-12-09 12:40) [1]

Incompatible types: "Integer" and "Pointer"
почему?


По определению


 
De   (2005-12-09 12:42) [2]

так а что не так, как исправить
вопрос не зря задан в форуме "Начинающим"


 
Defunct ©   (2005-12-09 12:45) [3]

Pointer это 32х разрядный указатель на область памяти.
Integer - 32х разрядное целое число с диапазоном от -2млрд до +2млрд.

Фактически эти типы несовместимы, о чем вам и сообщает компилятор в сообщении Incompatible Types, но если Вы уверены в обратном, тогда из-за того, что объем этих типов одинаковый (физически переменные типа Integer и Pointer занимают 4 байта) можно применить TypeCast:

Integer( Data ), где Data переменная типа Pointer
Pointer( Data ), где Data переменная типа Integer.


 
Reindeer Moss Eater ©   (2005-12-09 12:47) [4]

Ты передешь в gluBuild2DMipmaps передаешь параметры.
2,3,4 и 5 параметры одного и того же типа: integer

А функция ждет 2-й и 3-й параметры одного типа, а 4-й и 5-й - другого типа.


 
De   (2005-12-09 12:50) [5]

> Defunct
да но ведь, на входе gluBuild2DMipmaps требует Pointer, и ему передается Pointer, исходя из сообщения и ваших пояснений делаю вывод что произошло конверитрование Pointer в Integer но почему, параметр Data: Pointer я вным образом негде не изменялся


 
Defunct ©   (2005-12-09 12:51) [6]

De   (09.12.05 12:42) [2]

и с учетом Reindeer Moss Eater ©   (09.12.05 12:47) [4]

Почитай описание функции, на месте Data поидее должен быть указатель на некую структуру данных, необходимую для mipmap"a.


 
De   (2005-12-09 12:51) [7]

>Reindeer Moss Eater
и что? на основе этого происходит изменение типа 6 параметра? почему?


 
Reindeer Moss Eater ©   (2005-12-09 12:53) [8]

на основе этого происходит

На основе этого ничего кроме ошибки не происходит


 
Reindeer Moss Eater ©   (2005-12-09 12:56) [9]

С чего ты вообще решил, что виноват шестой параметр?


 
Defunct ©   (2005-12-09 12:57) [10]

De   (09.12.05 12:51) [7]

imho с data у вас возможно все в порядке, а ошибка вероятно где-то здесь:

width: GLint; format, atype: GLenum;

gluBuild2DMipmaps(GL_TEXTURE_2D, c, Width, Height, b, GL_UNSIGNED_BYTE, Data);

в выделенных параметрах, что-то лишнее:

исходя из данного вами описания функции:
> function  gluBuild2DMipmaps (target: GLenum; components, width: GLint;
                           format, atype: GLenum; data: Pointer): Integer; stdcall;


 
De   (2005-12-09 13:20) [11]

все народ у меня в opengl.pas бага там вместо 7 параметров только 6 описаны


 
msguns ©   (2005-12-09 13:22) [12]

А подсчитать к-во параметров ожидаемых и передаваемых не приходило в голову ?


 
De   (2005-12-09 13:25) [13]

>msguns
да не до того было, и так работы выше крыши, тем более что уж в подобных местах багу найти меньше всего ожидаешь или вы всегда при появлении ошибки первым делом число параметров ввызываемой функции считаете?


 
msguns ©   (2005-12-09 13:32) [14]

>De   (09.12.05 13:25) [13]
>вы всегда при появлении ошибки первым делом число параметров ввызываемой функции считаете?

При появлении подобной ошибки ВСЕГДА


 
De   (2005-12-09 13:37) [15]

вот и я проверил, но предварительно проконсультировался с АТЦАМИ


 
evvcom ©   (2005-12-09 13:51) [16]


> ошибки первым делом число параметров ввызываемой функции
> считаете?

Я обычно после имени функции открывающую скобку ставлю и Дельфя хинт показывает, что за параметр и какого типа она теперь ожидает. Если хинт погас после ввода нескольких параметров, опять скобку открываю, потом удаляю, но хинт остается. :)


 
De   (2005-12-09 13:57) [17]

у нас большая своя бибилотека, поэтому хинты отрубаю иначе гарантированый зависон при неосторожных манипуляциях, это и подвело


 
Плохиш ©   (2005-12-09 13:58) [18]


> evvcom ©   (09.12.05 13:51) [16]

А Ctrl+Shift+Space не легче нажать


 
msguns ©   (2005-12-09 13:59) [19]

А если нажать Ctrl+LeftButton на имени функции в строке обращения, то тоже зависнет ?


 
evvcom ©   (2005-12-09 14:02) [20]

Угу, легче. С чем-то у меня такая комбинация в памяти уже связана. Ладно, в нужном приложении пальцы сами вспомнят. :)
Спасибо.


 
msguns ©   (2005-12-09 14:05) [21]

>Плохиш ©   (09.12.05 13:58) [18]
>А Ctrl+Shift+Space не легче нажать

Действительно ;))



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.034 c
14-1133526001
nk
2005-12-02 15:20
2005.12.25
В продолжение "Помогите выбрать сотку"...


2-1133880218
seleman
2005-12-06 17:43
2005.12.25
Вопрос по сокетам


14-1133418578
WondeRu
2005-12-01 09:29
2005.12.25
Белорусская ОС


14-1133266627
Владислав
2005-11-29 15:17
2005.12.25
Примеры кода, достойные орехов.


14-1133366744
Fl@sh
2005-11-30 19:05
2005.12.25
Посоветуйте книгу, где хорошо расписаны Rave Reports