Вот что вам нужно сделать:
General
и нажать [111 ] На данный момент ваш проект правильно добавлен в Eclipse, но если вы попытаетесь запустить MainComponent.java
, он, вероятно, вернет некоторые исключения. Чтобы решить, что вам нужно скачать LWJGL, для меня это работало с 2.9.3, так что перейдите на этот. После того, как вы загрузили и распаковали его, вернитесь в Eclipse и выполните следующие действия:
JRE System Library
Native library location
, нажмите кнопку редактирования и перейдите к: [poath you put your LWJGL folder in]/lwjgl-2.9.3/native/[your OS]
После всего этого процесса, когда я запустил MainComponent.java
, он скомпилировался и запустился, но это было невозможно воспроизвести, но я думаю, что это зависит от исходного кода, а не от процесса импорта проекта.
Надеюсь, вам удачи в этом проекте.
Как Chris говорит, можно использовать небезопасный код - в этом случае необходимо удостовериться, что Вы указываете расположение явно. В той точке, конечно, Вы уменьшаете способность CLR оптимизировать немного - Вы закончите с невыровненным доступом, потерей атомарности и т.д. Это не может быть важно для Вас, но это стоит принять во внимание.
Лично, я расцениваю это как являющееся довольно хрупким способом сериализировать/десериализовать. Если что-нибудь изменяется, Ваши данные нечитабельны. При попытке работать на архитектуре, которая использует другой порядок байтов, то Вы найдете все свои значения завинченными и т.д. Кроме того, использование расположения в оперативной памяти перестанет работать, как только необходимо использовать ссылочные типы - который мог влиять собственный дизайн типов, поощряя Вас использовать структуры, где Вы будете иначе использовать классы.
Я далеко предпочитаю или явно чтению и записи значения (например, с BinaryWriter или предпочтительно версией двоичного устройства записи, которое позволяет Вам установить порядок байтов), или используют портативную платформу сериализации как Буферы Протокола.
Возможно, универсальный Сериализируют/Десериализовывают методы:
public static string SerializeObject<T>(T obj)
{
string xmlString = null;
using(MemoryStream memoryStream = new MemoryStream())
{
using(XmlSerializer xs = new XmlSerializer(typeof(T)))
{
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, obj);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
xmlString = UTF8ByteArrayToString(memoryStream.ToArray());
}
}
return xmlString;
}
public static T DeserializeObject<T>(string xml)
{
XmlSerializer xs = new XmlSerializer(typeof(T));
MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(xml));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
return (T)xs.Deserialize(memoryStream);
}
Исходный найденный здесь.
См. Эту ссылку. При этом используется механизм Marshal, чтобы получить актуальные данные ваших структур и скопировать их в Byte []. Также как их скопировать обратно. Эти функции хороши тем, что они являются универсальными, поэтому они будут работать со всеми вашими структурами (если только у них нет типов данных с переменным размером, например строк)
http://dooba.net/2009/07/c-sharp -and-сериализации-байтовых-массивов /