c# : Борьба с unsafe при импорте из glaux
От: Ioann  
Дата: 24.01.06 01:09
Оценка:
Так работает

        //собственно импорт структуры и функции
        public unsafe struct AUX_RGBImageRec 
        {
            public int sizeX;
            public int sizeY;
            public byte* data;
        }

        [DllImport( "glaux.dll" )]
        public unsafe static extern AUX_RGBImageRec* auxDIBImageLoadA ( string path );

                    ....
        //а вот и использование импортированных выше ф-ии и структуры
        protected unsafe override void OnInitScene ( )
        {
                     ....

            AUX_RGBImageRec *texture1;
            texture1 = auxDIBImageLoadA( "c:/data.bmp" );
                     
                     ....
        }


Так компилит но прога не работает:


        //собственно импорт структуры и функции
        public struct AUX_RGBImageRec 
        {
            public int sizeX;
            public int sizeY;
            public byte[] data;
        }

        [DllImport( "glaux.dll" )]
        public unsafe static extern AUX_RGBImageRec auxDIBImageLoadA ( string path );

                    ....
        //а вот и использование импортированных выше ф-ии и структуры
        protected unsafe override void OnInitScene ( )
        {
                     ....

            AUX_RGBImageRec texture1;
            texture1 = auxDIBImageLoadA( "c:/data.bmp" );
                     
                     ....
        }



В рабочем случае получается сплошной unsafe... что не есть хорошо
У кого нибудь есть какие-либо предложения ? буду очень признателен !
Re: c# : Борьба с unsafe при импорте из glaux
От: _gin_ Россия  
Дата: 24.01.06 15:45
Оценка:
Тебе точно нужна ANSI версия функции?
Тогда можно попроботвать так:
public unsafe static extern AUX_RGBImageRec* auxDIBImageLoadA([MarshalAs(UnmanagerType.LPStr)] string path);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.