DirectX 9.1 в Visual C++
От: Grief Россия Grief-postal.narod.ru
Дата: 20.08.05 11:19
Оценка:
Здравствуйте. Мою проблему можно охарактеризовать так:
Почему этот код нормально работает,

#include "d3dx8.h"
#pragma comment(lib, "d3dx8.lib")
...
LPD3DXMESH p_d3dx_mesh;
LPDIRECT3DDEVICE8 p_d3d_Device;
D3DXLoadMeshFromX ("C:/model.x", D3DXMESH_SYSTEMMEM, p_d3d_Device, NULL, NULL, NULL, &p_d3dx_mesh);

А этот выдает ошибку "unresolved external symbol @__security_check_cookie@4", причем не одну, а множество (86) в разных исполнениях:?

#include "d3dx9.h"
#pragma comment(lib, "d3dx9.lib")
...
LPD3DXMESH p_d3dx_mesh;
LPDIRECT3DDEVICE9 p_d3d_Device;
D3DXLoadMeshFromX ("C:/model.x", D3DXMESH_SYSTEMMEM, p_d3d_Device, NULL, NULL, NULL, NULL, &p_d3dx_mesh); //Парметр лишний добавляется, но не в том дело.

Я только начал осваивать как Visual C++, так и DirectX, раньше пользовался связкой Delphi — OpenGL. В интернете крайне мало материалов по 9-й версии ДиректаИкса, причем даже то что есть у меня не компилится выдавая эти ошибки. Help me.

2Grief — не забываем отбивать код тэгами форматирования
20.08.05 21:11: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: DirectX 9.1 в Visual C++
От: adontz Грузия http://adontz.wordpress.com/
Дата: 20.08.05 11:55
Оценка:
Здравствуйте, Grief, Вы писали:

Я так понимаю, что это Microsoft Visual C++.

Что у тебя в
Project\Properties\C/C++\Code Generation\Runtime Library
Project\Properties\C/C++\Code Generation\Buffer Security Check
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: DirectX 9.1 в Visual C++
От: Grief Россия Grief-postal.narod.ru
Дата: 20.08.05 12:13
Оценка:
Да, Visual C++ 6.0, на вкладке
C/C++ в категории Code Generation
Use run-time library: Debug Single-Threading...
А вот Buffer Security Check там нет, я искал. Впрочим и properties settings'ами называются.
Что-то мне подсказывает, что должно быть Multithreading. Да? А вы не могли бы разъяснить мне или дать ссылку, объясняющие значение всех этих настроек? Thanks
Re[3]: DirectX 9.1 в Visual C++
От: adontz Грузия http://adontz.wordpress.com/
Дата: 20.08.05 13:34
Оценка:
Здравствуйте, Grief, Вы писали:

G>Да, Visual C++ 6.0, на вкладке

G>C/C++ в категории Code Generation

Насколько мне известно переменная __security_check_cookie появилась только в CRT студии 7.0 (она же 2002).
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: DirectX 9.1 в Visual C++
От: Павел Кузнецов  
Дата: 20.08.05 17:11
Оценка:
Grief,

> Почему этот код нормально работает,

>
> #include "d3dx8.h"
> #pragma comment(lib, "d3dx8.lib")
> ...
>


Потому что для компиляции d3dx8.lib была использована та же версия компилятора, что и у тебя.

> А этот выдает ошибку "unresolved external symbol @__security_check_cookie@4", причем не одну, а множество (86) в разных исполнениях:?

>
> #include "d3dx9.h"
> #pragma comment(lib, "d3dx9.lib")
> ...
>


А для d3dx9.lib была использована более новая версия компилятора, чем у тебя.

> В интернете крайне мало материалов по 9-й версии ДиректаИкса, причем даже то что есть у меня не компилится выдавая эти ошибки. Help me.


Странно... Поиск очень быстро приводит к обсуждению этой же проблемы.

Резюме: нужно найти на сайте Microsoft Extras для своей версии DirectX 9: http://search.microsoft.com/search/results.aspx?qu=DirectX+9.0+SDK+Extras -- и подменить библиотеки, взяв их оттуда.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: DirectX 9.1 в Visual C++
От: Grief Россия Grief-postal.narod.ru
Дата: 21.08.05 18:59
Оценка:
Вероятно нет, уважаемый adontz, так как я могу отличить цифры 6.0 от 7.0 на огромном сплэше студии. Кстати, изменение на Multithreading не принесло желаемого результата.
Re[5]: DirectX 9.1 в Visual C++
От: adontz Грузия http://adontz.wordpress.com/
Дата: 21.08.05 20:29
Оценка: 2 (1)
Здравствуйте, Grief, Вы писали:

G>Вероятно нет, уважаемый adontz, так как я могу отличить цифры 6.0 от 7.0 на огромном сплэше студии. Кстати, изменение на Multithreading не принесло желаемого результата.


Я имею ввиду, что d3dx9.lib в отличие от более ранней версии была скомпилированна более новым (как минимум 7.0) компилятором. И чтобы её использовать тоже нужен более новый компилятор.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: DirectX 9.1 в Visual C++
От: Grief Россия Grief-postal.narod.ru
Дата: 22.08.05 03:03
Оценка:
Хм. Спасибо большое. Теперь ясно, почему девятый СДК так нестабильно у меня работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.