Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Этот забавный p/invoke

Автор Алексей Гринь, июля 26, 2009, 05:17

0 Пользователи и 1 гость просматривают эту тему.

Алексей Гринь

Для прикола к своей библиотеке заодно пишу биндинг для .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 -- всё нормально. В нативном варианте тоже всё нормально.
Сижу терь думаю, что не так :(
肏! Τίς πέπορδε;

Алексей Гринь

Вот опять! Если запускать проект изнутри Visual Studio, то .НЕТовская консоль не принимает символы, отправляемые нативной библиотекой (через printf()), экран пуст.
А если запускать то же, без изменений, но вне Visual Studio, то всё нормально, всё отображается.

Шо за дела.
肏! Τίς πέπορδε;


RawonaM

Цитата: myst от августа  1, 2009, 23:06
Лето, жара, кактусы... ;D
Кактусы и правда цветут во всю. Один такой кактус под два этажа тут у меня недалеко.
А вообще на юге там огромные поля кактусов, тоже недавно я их рассматривал. Плоды довольно популярны в Израиле в качестве фруктов, а также повидло неплохое продают в магазинчике при плантации.

myst

Цитата: RawonaM от августа  1, 2009, 23:15
Плоды довольно популярны в Израиле в качестве фруктов, а также повидло неплохое продают в магазинчике при плантации.
У кактусов есть плоды, и их едят?! :o

Beermonger

Цитата: myst от августа  2, 2009, 01:45
Цитата: RawonaM от августа  1, 2009, 23:15
Плоды довольно популярны в Израиле в качестве фруктов, а также повидло неплохое продают в магазинчике при плантации.
У кактусов есть плоды, и их едят?! :o

У кактусов плоды есть даже у черноморских. Неужели в детстве летом в Алушту не ездили? Я вот ездил еще в какой-то пост-совковый пансионат, там везде росли эти кактусы, сами плоские как бобриный хвост, и зеленые, а на них растут цветы, и потом из цветов плоды.


Beermonger

Не помню уже какой именно вкус, но помню что сладкие были :).

myst

Цитата: Beermonger от августа  2, 2009, 02:18
Не помню уже какой именно вкус, но помню что сладкие были :).
Так это из них кактусовую водку делают?

RawonaM

Цитата: myst от августа  2, 2009, 01:45
У кактусов есть плоды, и их едят?! :o
Едят-едят. Они бывают вкусные, если хорошие, только желательно чистить в толстых перчатках - колятся гады и микрозанозы остаются.

Алексей Гринь

Отправил я дотнет в кое-какое отверствие человеческого тела.
Он мне стал ещё теперь и SEHException выкидывать, которого во время хода нативного проиложения не выкидывается.

Гимору вагон, отдачи ноль :)
肏! Τίς πέπορδε;

myst

Поздравляю с отказом от кактуса. За это стоит выпить. :UU:

Алексей Гринь

Цитата: myst от августа  5, 2009, 22:30
Поздравляю с отказом от кактуса. За это стоит выпить. :UU:
Да не, просто  интересно было посмотреть в действии. 95% всё ОК, остальные 5% приводят к необъяснимым вылетам. Однажды EngineExecutionException вылетело, то бишь ошибка ядра CLR .NET :)
肏! Τίς πέπορδε;

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр