Re[2]: вызов unmanaged функций из C#
От: yanoscuni  
Дата: 11.03.03 15:41
Оценка:
Здравствуйте, Ведмедь, Вы писали:



В>Может все дело в том что ты фактически примаешь укзатель на unicod строку, а не char*, попробуй так заэкспортить

В>
В>    class Dllclass
В>    {

В>          [DllImport(DLLNAME, CallingConvention=CallingConvention.Cdecl)]
В>          public static extern bool functioncall( [MarshalAs(LPStr)]string cfilename);
В>        }
В>


дело в том, что строка приходит правильно, а вот возвращаемое значение bool — нет. Может быть bool нужно маршалить специально?
Если я делаю

        [DllImport(DLLNAME, CallingConvention=CallingConvention.Cdecl)]
        [return : MarshalAs(UnmanagedType.I1)]
        public static extern bool functioncall(string cfilename);


то тогда все работает. А default'ное приведение типов не работает. И, например

    [return : MarshalAs(UnmanagedType.Bool)]


тоже. Это нормальная ситуация?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.