У меня есть некоторые третья партия IOS Статическая библиотека, которая имеет .h файлы, содержащие const struct
:Доступ к структуре Objective-C от MonoTouch при связывании с IOS статической библиотеки
struct SomeStruct
{
__unsafe_unretained NSString * const FirstName;
__unsafe_unretained NSString * const SecondName;
__unsafe_unretained NSString * const ThirdName;
};
extern const struct SomeStruct someName;
Я обязан эту статическую библиотеку для MonoTouch, но я сделал не понять, как реплицировать это на C# и получить доступ к строковому значению из этой структуры.
В MonoTouch прошивкой Связывание проекта
public struct SomeStruct
{
public string FirstName;
public string SecondName;
public string ThirdName;
};
[Static]
public interface SomeInterface
{
[Field ("SomeStruct", "__Internal")]
IntPtr someNameStr { get; }
}
Я включил DLL, порожденную прошивкой связывания проекта в моем демо-приложения
Чтобы получить доступ к структуре
public static SomeStruct Name {
get {
if (SomeInterface.someNameStr != IntPtr.Zero) {
return (SomeStruct)Marshal.PtrToStructure<SomeStruct> (SomeInterface.someNameStr);
}
return new SomeStruct();
}
}
Здесь я могу получить правильный IntPtr. Но я не могу преобразовать его в структуру и получить доступ к элементам в структуре.
SomeInterface.Name.FirstName;
Итак, может кто-то, пожалуйста, помогите мне в этом.
Заранее спасибо.
@dasblinkenlight Спасибо за редактирование. – user3124624