Лингвофорум

Лингвоблоги => Личные блоги => Блоги => Алексей Гринь => Тема начата: Алексей Гринь от июля 26, 2009, 05:17

Название: Этот забавный p/invoke
Отправлено: Алексей Гринь от июля 26, 2009, 05:17
Для прикола к своей библиотеке заодно пишу биндинг для .NET.
Случился такой казус, в нативной либе есть простейшая функция:

bool SGETexture_isResident(SGETexture* self)
{
    if(!self || !self->m_number)
        return false;

    GLboolean residence;
    glAreTexturesResident(1, &self->m_number, &residence);

    return (bool)residence;
}


В .NET описываю так:
В статическом классе NativeMethods:
        [DllImport(sgedll)]
        public static extern bool SGETexture_isResident(IntPtr self);


... и как свойство класса-обёртки:
        public bool IsResident
        {
            get
            {
                return NativeMethods.SGETexture_isResident(handle);
            }
        }


При запуске в дебуге в VS2008 получаю AccessViolationException на этом месте (причём не сразу, успевает несколько раз вызваться нормально). При запуске того же самого .NET, но вне VS2008 -- всё нормально. В нативном варианте тоже всё нормально.
Сижу терь думаю, что не так :(
Название: Этот забавный p/invoke
Отправлено: Алексей Гринь от августа 1, 2009, 22:43
Вот опять! Если запускать проект изнутри Visual Studio, то .НЕТовская консоль не принимает символы, отправляемые нативной библиотекой (через printf()), экран пуст.
А если запускать то же, без изменений, но вне Visual Studio, то всё нормально, всё отображается.

Шо за дела.
Название: Этот забавный p/invoke
Отправлено: myst от августа 1, 2009, 23:06
Лето, жара, кактусы... ;D
Название: Этот забавный p/invoke
Отправлено: RawonaM от августа 1, 2009, 23:15
Цитата: myst от августа  1, 2009, 23:06
Лето, жара, кактусы... ;D
Кактусы и правда цветут во всю. Один такой кактус под два этажа тут у меня недалеко.
А вообще на юге там огромные поля кактусов, тоже недавно я их рассматривал. Плоды довольно популярны в Израиле в качестве фруктов, а также повидло неплохое продают в магазинчике при плантации.
Название: Этот забавный p/invoke
Отправлено: myst от августа 2, 2009, 01:45
Цитата: RawonaM от августа  1, 2009, 23:15
Плоды довольно популярны в Израиле в качестве фруктов, а также повидло неплохое продают в магазинчике при плантации.
У кактусов есть плоды, и их едят?! :o
Название: Этот забавный p/invoke
Отправлено: Beermonger от августа 2, 2009, 02:00
Цитата: myst от августа  2, 2009, 01:45
Цитата: RawonaM от августа  1, 2009, 23:15
Плоды довольно популярны в Израиле в качестве фруктов, а также повидло неплохое продают в магазинчике при плантации.
У кактусов есть плоды, и их едят?! :o

У кактусов плоды есть даже у черноморских. Неужели в детстве летом в Алушту не ездили? Я вот ездил еще в какой-то пост-совковый пансионат, там везде росли эти кактусы, сами плоские как бобриный хвост, и зеленые, а на них растут цветы, и потом из цветов плоды.
Название: Этот забавный p/invoke
Отправлено: myst от августа 2, 2009, 02:12
Ну и как на вкус?
Название: Этот забавный p/invoke
Отправлено: Beermonger от августа 2, 2009, 02:18
Не помню уже какой именно вкус, но помню что сладкие были :).
Название: Этот забавный p/invoke
Отправлено: myst от августа 2, 2009, 02:19
Цитата: Beermonger от августа  2, 2009, 02:18
Не помню уже какой именно вкус, но помню что сладкие были :).
Так это из них кактусовую водку делают?
Название: Этот забавный p/invoke
Отправлено: RawonaM от августа 2, 2009, 02:33
Цитата: myst от августа  2, 2009, 01:45
У кактусов есть плоды, и их едят?! :o
Едят-едят. Они бывают вкусные, если хорошие, только желательно чистить в толстых перчатках - колятся гады и микрозанозы остаются.
Название: Этот забавный p/invoke
Отправлено: Алексей Гринь от августа 5, 2009, 22:20
Отправил я дотнет в кое-какое отверствие человеческого тела.
Он мне стал ещё теперь и SEHException выкидывать, которого во время хода нативного проиложения не выкидывается.

Гимору вагон, отдачи ноль :)
Название: Этот забавный p/invoke
Отправлено: myst от августа 5, 2009, 22:30
Поздравляю с отказом от кактуса. За это стоит выпить. :UU:
Название: Этот забавный p/invoke
Отправлено: Алексей Гринь от августа 5, 2009, 22:37
Цитата: myst от августа  5, 2009, 22:30
Поздравляю с отказом от кактуса. За это стоит выпить. :UU:
Да не, просто  интересно было посмотреть в действии. 95% всё ОК, остальные 5% приводят к необъяснимым вылетам. Однажды EngineExecutionException вылетело, то бишь ошибка ядра CLR .NET :)