Directx And Ms Visual C++

  • Автор темы Boshop
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

Boshop

#1
Как подключить Directx SDK к 2010 версии визуал студии?
 

lazybiz

Well-known member
03.11.2010
1 339
0
#2
Прописать в настройках VS пути к заголовочным файлам и библиотекам.
 
B

Boshop

#3
Нет там для каждого проекта нужно заново указывать пути но я прописываю и ничего не меняется обьясните как нормально сделать?
 

lazybiz

Well-known member
03.11.2010
1 339
0
#4
А. Да. Действительно в 2010 этого уже нет.
Тогда надо вручную добавить пути в "Переменные среды", те что в свойствах моего компьютера.

Если Windows 7:
Мой Компьютер -> Свойства -> Дополнительные параметры системы -> Переменные среды.
Там для пользователя, под которым ты находишься добавляешь путь заголовочных файлов в переменную окружения include (в твоем случае тебе её надо будет создать), а путь к библиотекам в переменную lib.
 
B

Boshop

#5
И ещё вопросик как подключить Directx к Borland c++ Builder?
 

lazybiz

Well-known member
03.11.2010
1 339
0
#6
Понятия не имею, я им никогда не пользовался. Но есть вариант что так же.
 
V

vol4ek88

#7
SDK это полный пакет. там direct show, direct audio, direct draw.

Добавлено: определитесь сначала что вам оттуда надо.

Добавлено: вот пример использования direct show для воспроизведения mp3

C++:
#include <dshow.h>
#pragma comment (lib, "strmiids.lib")

// ИСПОЛЬЗУЕТСЯ UNICODE 

IGraphBuilder *pGraph = NULL; 
IMediaControl *pControl = NULL; 
IMediaEvent *pEvent = NULL; 


HRESULT hr = CoInitialize(NULL); 



hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
IID_IGraphBuilder, (void **)&pGraph); 


hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); 
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); 


hr = pGraph->RenderFile("1.mp3", NULL); 
if (SUCCEEDED(hr)) 
{ 

hr = pControl->Run(); 
if (SUCCEEDED(hr)) 
{ 
long evCode; 
pEvent->WaitForCompletion(INFINITE, &evCode); 

}
}


pControl->Release(); 
pEvent->Release(); 
pGraph->Release(); 
CoUninitialize();
 
V

vol4ek88

#9
в новые версии и draw не входит. у меня 2008 года, здесь еще есть.
 
V

vol4ek88

#10
как это нет? а вон он в Program Files\Microsoft SDKs вместе с windows идет. может ты draw имел ввиду.

Добавлено: и вот его код dshow.h

C++:
//------------------------------------------------------------------------------
// File: DShow.h
//
// Desc: DirectShow top-level include file
//
// Copyright (c) 2000-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

#ifndef __DSHOW_INCLUDED__
#define __DSHOW_INCLUDED__

///////////////////////////////////////////////////////////////////////////
// Set up constants & pragmas for the compiler
///////////////////////////////////////////////////////////////////////////
#ifdef _MSC_VER
// disable some level-4 warnings, use #pragma warning(default:###) to re-enable
#pragma warning(disable:4100) // warning C4100: unreferenced formal parameter
#pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
#pragma warning(disable:4511) // warning C4511: copy constructor could not be generated
#pragma warning(disable:4512) // warning C4512: assignment operator could not be generated
#pragma warning(disable:4514) // warning C4514: "unreferenced inline function has been removed"

#if _MSC_VER>=1100
#define AM_NOVTABLE __declspec(novtable)
#else
#define AM_NOVTABLE
#endif
#endif // MSC_VER

///////////////////////////////////////////////////////////////////////////
// Include standard Windows files
///////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <windowsx.h>
#include <olectl.h>
#include <ddraw.h>
#include <mmsystem.h>

#ifndef NO_DSHOW_STRSAFE
#define NO_SHLWAPI_STRFCNS
#include <strsafe.h> 
#endif

#ifndef NUMELMS
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
#endif

///////////////////////////////////////////////////////////////////////////
// Include DirectShow include files
///////////////////////////////////////////////////////////////////////////
#include <strmif.h>	 // Generated IDL header file for streams interfaces
#include <amvideo.h>	// ActiveMovie video interfaces and definitions
#include <amaudio.h>	// ActiveMovie audio interfaces and definitions
#include <control.h>	// generated from control.odl
#include <evcode.h>	 // event code definitions
#include <uuids.h>	 // declaration of type GUIDs and well-known clsids
#include <errors.h>	 // HRESULT status and error definitions
#include <edevdefs.h>  // External device control interface defines
#include <audevcod.h>  // audio filter device error event codes
#include <dvdevcod.h>  // DVD error event codes

///////////////////////////////////////////////////////////////////////////
// Define OLE Automation constants
///////////////////////////////////////////////////////////////////////////
#ifndef OATRUE
#define OATRUE (-1)
#endif // OATRUE
#ifndef OAFALSE
#define OAFALSE (0)
#endif // OAFALSE

///////////////////////////////////////////////////////////////////////////
// Define Win64 interfaces if not already defined
///////////////////////////////////////////////////////////////////////////

// InterlockedExchangePointer
#ifndef InterlockedExchangePointer
#define InterlockedExchangePointer(Target, Value) \
(PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
#endif 


#endif // __DSHOW_INCLUDED__
 

lazybiz

Well-known member
03.11.2010
1 339
0
#11
как это нет? а вон он в Program Files\Microsoft SDKs вместе с windows идет. может ты draw имел ввиду.
Microsoft SDK это не DirectX SDK.

http://en.wikipedia.org/wiki/DirectShow
The DirectShow development tools and documentation were originally distributed as part of the DirectX SDK. Currently, they are distributed as part of the Windows SDK (formerly known as the Platform SDK).
 
Статус
Закрыто для дальнейших ответов.