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

Вниз

Проблема с функцией Delphi -> C++   Найти похожие ветки 

 
Sammi   (2013-03-27 17:34) [0]

Есть функция:
Function  TextOut(Font:integer; x,y:integer; r,g,b,a:single; Text:PChar):TVector2i; cdecl;
begin
 Result:=TextOut(Font,x,y,Text,Vector4f(r,g,b,a));
end;

TVector2i = record
 x,y:integer;
end;


Пытаюсь использовать ее на С++:
typedef vec2i (__cdecl *PTEXTOUTPROC) (int Font, int x, int y, float r, float g, float b, float a, const char* Text);

struct vec2i{
int x;
int y;
};


При попытке записи в Result ловлю исключение.

Если сделать так:
struct vec2i{
int x;
int y,t;
};
то все ок.
Не пойму, где косячу.


 
icWasya ©   (2013-03-27 17:41) [1]

Ну для начала посмотреть, какого на самом деле размера структуры - на C и в Delphi.


 
Sammi   (2013-03-27 17:42) [2]

Обе 8 байт. Первым делом проверил.


 
Григорьев Антон ©   (2013-03-28 12:29) [3]

Надо смотреть спецификацию, как функция возвращает параметры типа структур. В Delphi такая функция трактуется как процедура с дополнительным параметром-переменной, а при вызове компилятор подставляет туда в качестве параметра либо подходящую переменную, либо создаёт неявную переменную специально для такого вызова. Не знаю, как это реализовано в C++, но почему-то мне кажется, что как-то по-другому должно быть. Надо копать в этом направлении.


 
SergeyIT ©   (2013-03-29 13:58) [4]

А что это за функция вызывается?
Result:=TextOut(Font,x,y,Text,Vector4f(r,g,b,a));


 
Sammi   (2013-04-08 14:01) [5]

Собственно функция, которая выводит текст.
Если вас одинаковое название смущает, то не обращайте внимание. Оно в реале разное. У внешних функций префиксы. Убрал их чтобы не засорять код.


 
DevilDevil ©   (2013-04-08 20:51) [6]

> Sammi   (27.03.13 17:34) 

есть возможность посмотреть дизасм вызова со стороны С++ ?



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

Форум: "Прочее";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
2-1357022939
SKIPtr
2013-01-01 10:48
2013.09.15
команнда для перекрытия конструктора


15-1364759274
xayam
2013-03-31 23:47
2013.09.15
Стереограмма


15-1365280202
Юрий
2013-04-07 00:30
2013.09.15
С днем рождения ! 7 апреля 2013 воскресенье


15-1365453003
Юрий
2013-04-09 00:30
2013.09.15
С днем рождения ! 9 апреля 2013 вторник


2-1356513986
Tvanges
2012-12-26 13:26
2013.09.15
Сливание pdf





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский