Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Вниз

Почему 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1134146773
kami
2005-12-09 19:46
2005.12.25
Не работает GetWindowModuleFileName


5-1118752459
tyo
2005-06-14 16:34
2005.12.25
CheckListBox c 3 состояниями


2-1134217233
SergProger
2005-12-10 15:20
2005.12.25
ParamStr(0) или Application.ExeName?


4-1130398364
G-h-o-s-t
2005-10-27 11:32
2005.12.25
Возможно ли нажать неактивную кнопку в чужом приложении


2-1133873684
Zilog
2005-12-06 15:54
2005.12.25
Всегда ли необходимо инсталлировать BDE?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский