Здравствуйте, Ведмедь, Вы писали:
В>Может все дело в том что ты фактически примаешь укзатель на 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)]
тоже. Это нормальная ситуация?