Седьмая версия ,как я понял, является последней. Создание интерфейса DirectDraw проблем не вызывает Объявление : LPDIRECTDRAW lpDD; LPDIRECTDRAWSURFACE PrimarySurf; LPDIRECTDRAWSURFACE SecondarySurf; и так далее. rezult = DirectDrawCreate(NULL, &lpDD, NULL ); проблем не вызывает. но при объявлении: LPDIRECTDRAW7 lpDD; LPDIRECTDRAWSURFACE7 PrimarySurf; LPDIRECTDRAWSURFACE7 SecondarySurf; и так далее. rezult = (DirectDrawCreateEx(NULL,(void **)&lpDD, IID_IDirectDraw7 ,NULL); константу IID_IDirectDraw7 не видит . Compiling resources... Compiling... StdAfx.cpp Compiling... Direct.cpp DirectDlg.cpp DirectDraw.cpp ErrorDirectDraw.cpp Generating Code... Linking... DirectDraw.obj : error LNK2001: unresolved external symbol _IID_IDirectDraw7 Debug/Direct.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. Direct.exe - 2 error(s), 0 warning(s) Возможно ее надо объявить как extern , но не могу понять ее тип. при переходе " Go to Difinition" VC отправляет к определению в файле ddraw.h DEFINE_GUID( IID_IDirectDraw7, 0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); Объявление функции DirectDrawCreateEx extern HRESULT WINAPI DirectDrawCreateEx( GUID FAR * lpGuid, LPVOID *lplpDD, REFIID iid,IUnknown FAR *pUnkOuter ); Мои познания в VC++ весьма скромны , а хотелось бы разобраться что к чему.
Подключение библиотек не помогает. Странно то, что первая версия DirectDraw работает без проблем. Это наводит на мысль, что с настройками все в порядке. VC++ все что надо находит. В книге Бориса Пахомова "C/C++ и MS Visual C++ 2010 для начинающих " по поводу переменных объявленных в файлах подключаемых через include написанно писать :extern int a ; -это понятно . Есть предположение ,что с константами также. Но здесь такое определение константы, что не ясно как это изложить в понятную для ком- пилятора форму.