Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
У меня была некоторая удача с этим. Мне удалось скомпилировать этот простой пример Direct3D.
Я использовал winelib для этого (винный-dev пакет на Ubuntu). Благодаря alastair для указания на меня к winelib.
Я изменил источник немного для преобразования wchars в символы (1 на строке 52, 2 на строке 55, путем удаления L перед строковыми литералами). Может быть путь вокруг этого, но это разбудило его и выполнение.
Я затем скомпилировал источник со следующим:
wineg++ -ld3d9 -ld3dx9 triangle.cpp
Это генерирует a.out.exe.so двоичный файл, а также a.out сценарий для выполнения его под вином.
Если это не о портировании, но создании, необходимо действительно рассмотреть OpenGL, поскольку этот API так же мощен как DirectX и намного легче к порту к Mac или Linux.
Я не знаю Ваших требований, таким образом, лучше упоминают это.
Вы не можете связаться против вина, поскольку это - по существу вызов interdictor/translator, а не ряд библиотек, в которые можно сцепиться. Если Linux является важным движением OpenGL/SDL/OpenAL.
Я верю (я никогда не пробовал это), Вы, банка может скомпилировать двоичные файлы Linux против winelib. Таким образом, это работает точно так же, как исполняемый файл Linux, но с библиотеками окон.
В настоящее время нет никакого способа скомпилировать код DirectX для прямого предназначения для Linux. Вы создали бы свое приложение как Вы, обычно будет, затем выполнить его с помощью слоя совместимости как Wine/Cedega.
Вино является единственным способом выполнить DirectX в Linux
можно скомпилировать directx приложения в Linux, но не запуск его немедленно. если Вы используете crosscompilator, который делает окна exe и точку к окнам sdk и directx sdk.