Использование quicktime в библиотеке DLL C++ (сообщество visual studio 2017, windows)
Я создаю простую библиотеку DLL расширения QuickTime для GameMaker Studio, которая является программным обеспечением для создания игр, которое поддерживает только вызов функций, которые либо имеют двойные, либо char * возвращаемые значения и аргументы (также аргументы HWND).
Вот код моей библиотеки DLL:
#include "stdafx.h" #include <stdio.h> #include <comutil.h> #import "C:\Program Files\QuickTime\QTOLibrary.dll" #import "C:\Program Files\QuickTime\QTOControl.dll" using namespace QTOLibrary; using namespace QTOControlLib; #define DLL extern "C" _declspec(dllexport) DLL double qt_initialize() { HRESULT hr = CoInitialize(NULL); IQTControl *pQTControl; pQTControl->QuickTimeInitialize(); return(0); } DLL double qt_show_movie(char *movie, double keep_aspect_ratio) { IQTControl *pQTControl; if (keep_aspect_ratio == (double)true) { pQTControl->Sizing = qtMovieFitsControlMaintainAspectRatio; } else { pQTControl->Sizing = qtMovieFitsControl; } _bstr_t bstrURL = (_bstr_t)movie; pQTControl->BorderStyle = bsNone; pQTControl->MovieControllerVisible = FALSE; pQTControl->AutoPlay = "True"; pQTControl->URL = bstrURL; return(0); } DLL double qt_uninitialize() { IQTControl *pQTControl; pQTControl->URL = ""; pQTControl->QuickTimeTerminate(); CoUninitialize(); return(0); }
Вот ошибки, которые выплевывает форма компиляции сообщества Visual Studio 2017:
------ Build started: Project: QuickTime4GM, Configuration: Release Win32 ------ 1>QuickTime4GM.cpp 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(161): error C3646: 'Movie': unknown override specifier 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(161): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(163): error C3646: 'QuickTime': unknown override specifier 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(163): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(248): error C3646: 'GetMovie': unknown override specifier 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(248): error C2059: syntax error: '(' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(248): error C2238: unexpected token(s) preceding ';' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(249): error C3646: 'GetQuickTime': unknown override specifier 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(249): error C2059: syntax error: '(' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(249): error C2238: unexpected token(s) preceding ';' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C2039: 'GetMovie': is not a member of 'QTOControlLib::IQTControl' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(148): note: see declaration of 'QTOControlLib::IQTControl' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C2433: 'IQTMoviePtr': 'inline' not permitted on data declarations 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): error C2146: syntax error: missing ';' before identifier 'GetMovie' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(119): error C3861: 'get_Movie': identifier not found 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(120): error C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(120): error C2660: '_com_issue_errorex': function does not take 1 arguments 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(121): error C2064: term does not evaluate to a function taking 2 arguments 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(121): warning C4508: 'QTOControlLib::GetMovie': function should return a value; 'void' return type assumed 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(122): error C2617: 'QTOControlLib::GetMovie': inconsistent return statement 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(117): note: see declaration of 'QTOControlLib::GetMovie' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C2039: 'GetQuickTime': is not a member of 'QTOControlLib::IQTControl' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh(148): note: see declaration of 'QTOControlLib::IQTControl' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C2433: 'IQTQuickTimePtr': 'inline' not permitted on data declarations 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): error C2146: syntax error: missing ';' before identifier 'GetQuickTime' 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(126): error C3861: 'get_QuickTime': identifier not found 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(127): error C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(127): error C2660: '_com_issue_errorex': function does not take 1 arguments 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(128): error C2064: term does not evaluate to a function taking 2 arguments 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(128): warning C4508: 'QTOControlLib::GetQuickTime': function should return a value; 'void' return type assumed 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(129): error C2617: 'QTOControlLib::GetQuickTime': inconsistent return statement 1>c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli(124): note: see declaration of 'QTOControlLib::GetQuickTime' 1>Done building project "QuickTime4GM.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я понятия не имею, что означают эти ошибки и почему.
Похоже, что все ошибки ссылаются на "qtocontrol.tlh", который Visual Studio автоматически генерирует при сборке, потому что я импортировал элемент управления ActiveX (в данном случае "QTOControl.dll").
Вот содержимое файла "qtocontrol.tlh":
// Created by Microsoft (R) C/C++ Compiler Version 14.11.25547.0 (603b8d8c). // // c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tlh // // C++ source equivalent of Win32 type library C:\Program Files\QuickTime\QTOControl.dll // compiler-generated file created 01/08/18 at 22:16:41 - DO NOT EDIT! // // Cross-referenced type libraries: // // #import "C:\Program Files\QuickTime\QTOLibrary.dll" // #pragma once #pragma pack(push, 8) #include <comdef.h> namespace QTOControlLib { // // Forward references and typedefs // struct __declspec(uuid("7b92f833-027d-402b-bff9-a67697366f4e")) /* LIBID */ __QTOControlLib; enum BorderStylesEnum; enum InitializeQTMLOptionsEnum; enum QTInitializeQTMLFlagsEnum; enum QTSizingModeEnum; enum QTOpenMovieFlagsEnum; enum QTFullScreenFlagsEnum; enum QTFullScreenSizingModeEnum; enum QTStatusCodeTypesEnum; enum QTStatusCodesEnum; enum QTErrorEventOriginEnum; struct __declspec(uuid("89f5e74b-641d-48bd-bf81-dadce7dc83fc")) /* dual interface */ IQTControl; struct __declspec(uuid("614e1495-1014-44f8-b350-5344c0770c1e")) /* dispinterface */ _IQTControlEvents; struct __declspec(uuid("9b1b71f6-6c61-463e-abdb-88667073d16b")) /* interface */ IQTControlParams; struct /* coclass */ QTControl; struct /* coclass */ QTControlPropPage; // // Smart pointer typedef declarations // _COM_SMARTPTR_TYPEDEF(IQTControl, __uuidof(IQTControl)); _COM_SMARTPTR_TYPEDEF(_IQTControlEvents, __uuidof(_IQTControlEvents)); _COM_SMARTPTR_TYPEDEF(IQTControlParams, __uuidof(IQTControlParams)); // // Type library items // enum BorderStylesEnum { bsNone = 0, bsPlain = 1, bs3D = 2 }; enum InitializeQTMLOptionsEnum { qtocInitializeQTMLStandard = 0 }; enum QTInitializeQTMLFlagsEnum { qtInitializeQTMLFlagNoSound = 1, qtInitializeQTMLFlagUseGDI = 2, qtInitializeQTMLFlagDisableDirectSound = 4, qtInitializeQTMLFlagUseExclusiveFullScreenMode = 8 }; enum QTSizingModeEnum { qtControlFitsMovie = 0, qtMovieFitsControl = 1, qtMovieFitsControlMaintainAspectRatio = 2, qtMovieCenteredInControl = 3, qtManualSizing = 4 }; enum QTOpenMovieFlagsEnum { qtOpenMovieFlagActive = 1, qtOpenMovieFlagDontResolveDataRefs = 2, qtOpenMovieFlagDontAskUnresolvedDataRefs = 4, qtOpenMovieFlagDontAutoAlternates = 8, qtOpenMovieFlagAsyncOK = 256, qtOpenMovieFlagIdleImportOK = 1024, qtOpenMovieFlagDontInteractWithUser = 2048, qtOpenMovieDefaultFlags = 1025 }; enum QTFullScreenFlagsEnum { qtFullScreenFlagHideCursor = 1, qtFullScreenFlagAllowEvents = 2, qtFullScreenFlagDontChangeMenuBar = 4, qtFullScreenDefaultFlags = 6 }; enum QTFullScreenSizingModeEnum { qtFullScreenMovieFitsMonitor = 1, qtFullScreenMovieFitsMonitorMaintainAspectRatio = 2, qtFullScreenMovieCenteredInMonitor = 3, qtFullScreenManualSizing = 4 }; enum QTStatusCodeTypesEnum { qtStatusCodeTypeControl = 0, qtStatusCodeTypeMovieLoadState = 2 }; enum QTStatusCodesEnum { qtStatusNone = 0, qtStatusConnecting = 2, qtStatusNegotiating = 5, qtStatusRequestedData = 11, qtStatusBuffering = 12, qtStatusURLChanged = 4096, qtStatusFullScreenBegin = 4097, qtStatusFullScreenEnd = 4098, qtStatusMovieLoadFinalize = 4099, qtMovieLoadStateError = -1, qtMovieLoadStateLoading = 1000, qtMovieLoadStateLoaded = 2000, qtMovieLoadStatePlayable = 10000, qtMovieLoadStatePlaythroughOK = 20000, qtMovieLoadStateComplete = 100000 }; enum QTErrorEventOriginEnum { qtErrorEventOriginControl = 0, qtErrorEventOriginMovie = 1, qtErrorEventOriginQuickTime = 2 }; struct __declspec(uuid("89f5e74b-641d-48bd-bf81-dadce7dc83fc")) IQTControl : IDispatch { // // Property data // __declspec(property(get=GetBorderStyle,put=PutBorderStyle)) enum BorderStylesEnum BorderStyle; __declspec(property(get=GetBorderColor,put=PutBorderColor)) OLE_COLOR BorderColor; __declspec(property(get=GetURL,put=PutURL)) _bstr_t URL; __declspec(property(get=GetMovie)) IQTMoviePtr Movie; __declspec(property(get=GetQuickTime)) IQTQuickTimePtr QuickTime; __declspec(property(get=GetErrorCode)) long ErrorCode; __declspec(property(get=GetBackColor,put=PutBackColor)) OLE_COLOR BackColor; __declspec(property(get=GetIsQuickTimeAvailable)) VARIANT_BOOL IsQuickTimeAvailable[]; __declspec(property(get=GetQuickTimeVersion)) long QuickTimeVersion; __declspec(property(get=Get_MovieHandle,put=Put_MovieHandle)) long _MovieHandle; __declspec(property(get=Get_MovieControllerHandle)) long _MovieControllerHandle; __declspec(property(get=GetMovieControllerVisible,put=PutMovieControllerVisible)) VARIANT_BOOL MovieControllerVisible; __declspec(property(get=GetScaleX,put=PutScaleX)) float ScaleX; __declspec(property(get=GetScaleY,put=PutScaleY)) float ScaleY; __declspec(property(get=GetFullScreenMonitorNumber,put=PutFullScreenMonitorNumber)) long FullScreenMonitorNumber; __declspec(property(get=GetFileName,put=PutFileName)) _bstr_t FileName; __declspec(property(get=GetFullScreenSizing,put=PutFullScreenSizing)) enum QTFullScreenSizingModeEnum FullScreenSizing; __declspec(property(get=GetFullScreen,put=PutFullScreen)) VARIANT_BOOL FullScreen; __declspec(property(get=GetErrorHandling,put=PutErrorHandling)) long ErrorHandling; __declspec(property(get=GetNewMovieFlags,put=PutNewMovieFlags)) long NewMovieFlags; __declspec(property(get=GetSizing,put=PutSizing)) enum QTSizingModeEnum Sizing; __declspec(property(get=GetVersion)) _bstr_t Version; __declspec(property(get=GetFullScreenFlags,put=PutFullScreenFlags)) long FullScreenFlags; __declspec(property(get=GetFullScreenEndKeyCode,put=PutFullScreenEndKeyCode)) long FullScreenEndKeyCode; __declspec(property(get=GetFullScreenHWND)) long FullScreenHWND; __declspec(property(get=GetAutoPlay,put=PutAutoPlay)) _bstr_t AutoPlay; __declspec(property(get=GethWnd)) long hWnd; __declspec(property(get=GetBaseURL,put=PutBaseURL)) _bstr_t BaseURL; // // Wrapper methods for error-handling // HRESULT ShowAboutBox ( ); void PutBackColor ( OLE_COLOR pclr ); OLE_COLOR GetBackColor ( ); void PutBorderColor ( OLE_COLOR pclr ); OLE_COLOR GetBorderColor ( ); void PutBorderStyle ( enum BorderStylesEnum pstyle ); enum BorderStylesEnum GetBorderStyle ( ); long QuickTimeInitialize ( const _variant_t & InitOptions = vtMissing, const _variant_t & InitFlags = vtMissing ); HRESULT QuickTimeTerminate ( ); _bstr_t GetURL ( ); void PutURL ( _bstr_t pVal ); _bstr_t GetFileName ( ); void PutFileName ( _bstr_t pVal ); HRESULT _get_DataRef ( long * pDataRef, long * pDataRefType ); HRESULT _put_DataRef ( long inDataRef, long inDataRefType, const _variant_t & inNewMovieFlags = vtMissing ); HRESULT CreateNewMovie ( const _variant_t & movieIsActive = vtMissing ); HRESULT CreateNewMovieFromImages ( _bstr_t bstrFirstFilePath, float rate, VARIANT_BOOL rateIsFramesPerSecond ); IQTMoviePtr GetMovie ( ); IQTQuickTimePtr GetQuickTime ( ); long GetErrorCode ( ); _variant_t Get_Property ( long propertyClass, long propertyID ); void Put_Property ( long propertyClass, long propertyID, const _variant_t & pVal ); VARIANT_BOOL GetIsQuickTimeAvailable ( long howToCheck ); long GetQuickTimeVersion ( ); long Get_MovieHandle ( ); void Put_MovieHandle ( long pVal ); long Get_MovieControllerHandle ( ); long GethWnd ( ); VARIANT_BOOL GetMovieControllerVisible ( ); void PutMovieControllerVisible ( VARIANT_BOOL pVal ); float GetScaleX ( ); void PutScaleX ( float pVal ); float GetScaleY ( ); void PutScaleY ( float pVal ); HRESULT SetScale ( float x, const _variant_t & y = vtMissing ); void PutFullScreen ( VARIANT_BOOL pVal ); VARIANT_BOOL GetFullScreen ( ); void PutFullScreenFlags ( long pVal ); long GetFullScreenFlags ( ); void PutFullScreenMonitorNumber ( long pVal ); long GetFullScreenMonitorNumber ( ); void PutFullScreenEndKeyCode ( long pVal ); long GetFullScreenEndKeyCode ( ); long GetFullScreenHWND ( ); void PutFullScreenSizing ( enum QTFullScreenSizingModeEnum psizingOption ); enum QTFullScreenSizingModeEnum GetFullScreenSizing ( ); void PutErrorHandling ( long pVal ); long GetErrorHandling ( ); void PutSizing ( enum QTSizingModeEnum psizingOption ); enum QTSizingModeEnum GetSizing ( ); _bstr_t GetVersion ( ); void PutNewMovieFlags ( long pVal ); long GetNewMovieFlags ( ); _bstr_t GetAutoPlay ( ); void PutAutoPlay ( _bstr_t pVal ); _bstr_t GetBaseURL ( ); void PutBaseURL ( _bstr_t pVal ); HRESULT MovieResizingLock ( ); HRESULT MovieResizingUnlock ( ); HRESULT SetSizing ( enum QTSizingModeEnum sizingOption, VARIANT_BOOL forceSizeUpdate ); // // Raw methods provided by interface // virtual HRESULT __stdcall raw_ShowAboutBox ( ) = 0; virtual HRESULT __stdcall put_BackColor ( /*[in]*/ OLE_COLOR pclr ) = 0; virtual HRESULT __stdcall get_BackColor ( /*[out,retval]*/ OLE_COLOR * pclr ) = 0; virtual HRESULT __stdcall put_BorderColor ( /*[in]*/ OLE_COLOR pclr ) = 0; virtual HRESULT __stdcall get_BorderColor ( /*[out,retval]*/ OLE_COLOR * pclr ) = 0; virtual HRESULT __stdcall put_BorderStyle ( /*[in]*/ enum BorderStylesEnum pstyle ) = 0; virtual HRESULT __stdcall get_BorderStyle ( /*[out,retval]*/ enum BorderStylesEnum * pstyle ) = 0; virtual HRESULT __stdcall raw_QuickTimeInitialize ( /*[in]*/ VARIANT InitOptions, /*[in]*/ VARIANT InitFlags, /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall raw_QuickTimeTerminate ( ) = 0; virtual HRESULT __stdcall get_URL ( /*[out,retval]*/ BSTR * pVal ) = 0; virtual HRESULT __stdcall put_URL ( /*[in]*/ BSTR pVal ) = 0; virtual HRESULT __stdcall get_FileName ( /*[out,retval]*/ BSTR * pVal ) = 0; virtual HRESULT __stdcall put_FileName ( /*[in]*/ BSTR pVal ) = 0; virtual HRESULT __stdcall raw__get_DataRef ( /*[out]*/ long * pDataRef, /*[out]*/ long * pDataRefType ) = 0; virtual HRESULT __stdcall raw__put_DataRef ( /*[in]*/ long inDataRef, /*[in]*/ long inDataRefType, /*[in]*/ VARIANT inNewMovieFlags = vtMissing ) = 0; virtual HRESULT __stdcall raw_CreateNewMovie ( /*[in]*/ VARIANT movieIsActive = vtMissing ) = 0; virtual HRESULT __stdcall raw_CreateNewMovieFromImages ( /*[in]*/ BSTR bstrFirstFilePath, /*[in]*/ float rate, /*[in]*/ VARIANT_BOOL rateIsFramesPerSecond ) = 0; virtual HRESULT __stdcall get_Movie ( /*[out,retval]*/ struct IQTMovie * * pVal ) = 0; virtual HRESULT __stdcall get_QuickTime ( /*[out,retval]*/ struct IQTQuickTime * * pVal ) = 0; virtual HRESULT __stdcall get_ErrorCode ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall get__Property ( /*[in]*/ long propertyClass, /*[in]*/ long propertyID, /*[out,retval]*/ VARIANT * pVal ) = 0; virtual HRESULT __stdcall put__Property ( /*[in]*/ long propertyClass, /*[in]*/ long propertyID, VARIANT pVal ) = 0; virtual HRESULT __stdcall get_IsQuickTimeAvailable ( /*[in]*/ long howToCheck, /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0; virtual HRESULT __stdcall get_QuickTimeVersion ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall get__MovieHandle ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall put__MovieHandle ( /*[in]*/ long pVal ) = 0; virtual HRESULT __stdcall get__MovieControllerHandle ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall get_hWnd ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall get_MovieControllerVisible ( /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0; virtual HRESULT __stdcall put_MovieControllerVisible ( /*[in]*/ VARIANT_BOOL pVal ) = 0; virtual HRESULT __stdcall get_ScaleX ( /*[out,retval]*/ float * pVal ) = 0; virtual HRESULT __stdcall put_ScaleX ( /*[in]*/ float pVal ) = 0; virtual HRESULT __stdcall get_ScaleY ( /*[out,retval]*/ float * pVal ) = 0; virtual HRESULT __stdcall put_ScaleY ( /*[in]*/ float pVal ) = 0; virtual HRESULT __stdcall raw_SetScale ( /*[in]*/ float x, /*[in]*/ VARIANT y = vtMissing ) = 0; virtual HRESULT __stdcall put_FullScreen ( /*[in]*/ VARIANT_BOOL pVal ) = 0; virtual HRESULT __stdcall get_FullScreen ( /*[out,retval]*/ VARIANT_BOOL * pVal ) = 0; virtual HRESULT __stdcall put_FullScreenFlags ( /*[in]*/ long pVal ) = 0; virtual HRESULT __stdcall get_FullScreenFlags ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall put_FullScreenMonitorNumber ( /*[in]*/ long pVal ) = 0; virtual HRESULT __stdcall get_FullScreenMonitorNumber ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall put_FullScreenEndKeyCode ( /*[in]*/ long pVal ) = 0; virtual HRESULT __stdcall get_FullScreenEndKeyCode ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall get_FullScreenHWND ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall put_FullScreenSizing ( /*[in]*/ enum QTFullScreenSizingModeEnum psizingOption ) = 0; virtual HRESULT __stdcall get_FullScreenSizing ( /*[out,retval]*/ enum QTFullScreenSizingModeEnum * psizingOption ) = 0; virtual HRESULT __stdcall put_ErrorHandling ( /*[in]*/ long pVal ) = 0; virtual HRESULT __stdcall get_ErrorHandling ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall put_Sizing ( /*[in]*/ enum QTSizingModeEnum psizingOption ) = 0; virtual HRESULT __stdcall get_Sizing ( /*[out,retval]*/ enum QTSizingModeEnum * psizingOption ) = 0; virtual HRESULT __stdcall get_Version ( /*[out,retval]*/ BSTR * pVal ) = 0; virtual HRESULT __stdcall put_NewMovieFlags ( /*[in]*/ long pVal ) = 0; virtual HRESULT __stdcall get_NewMovieFlags ( /*[out,retval]*/ long * pVal ) = 0; virtual HRESULT __stdcall get_AutoPlay ( /*[out,retval]*/ BSTR * pVal ) = 0; virtual HRESULT __stdcall put_AutoPlay ( /*[in]*/ BSTR pVal ) = 0; virtual HRESULT __stdcall get_BaseURL ( /*[out,retval]*/ BSTR * pVal ) = 0; virtual HRESULT __stdcall put_BaseURL ( /*[in]*/ BSTR pVal ) = 0; virtual HRESULT __stdcall raw_MovieResizingLock ( ) = 0; virtual HRESULT __stdcall raw_MovieResizingUnlock ( ) = 0; virtual HRESULT __stdcall raw_SetSizing ( /*[in]*/ enum QTSizingModeEnum sizingOption, /*[in]*/ VARIANT_BOOL forceSizeUpdate ) = 0; }; struct __declspec(uuid("614e1495-1014-44f8-b350-5344c0770c1e")) _IQTControlEvents : IDispatch { // // Wrapper methods for error-handling // // Methods: HRESULT QTEvent ( long EventClass, long EventID, long Phase, struct IQTEventObject * EventObject, VARIANT_BOOL * Cancel ); HRESULT SizeChanged ( long Width, long Height ); HRESULT Error ( long ErrorCode, long Origin ); HRESULT StatusUpdate ( long StatusCodeType, long StatusCode, _bstr_t StatusMessage ); HRESULT MouseDown ( short Button, short Shift, short x, short y ); HRESULT MouseUp ( short Button, short Shift, short x, short y ); HRESULT MouseMove ( short Button, short Shift, short x, short y ); }; struct __declspec(uuid("9b1b71f6-6c61-463e-abdb-88667073d16b")) IQTControlParams : IUnknown {}; struct __declspec(uuid("24ba3caf-4be8-4aec-a7c8-6f47d5684602")) QTControl; // [ default ] interface IQTControl // [ default, source ] dispinterface _IQTControlEvents // interface _IQTControlFireEvent struct __declspec(uuid("a6c538c6-4a26-4839-b0d2-bf0406a4b299")) QTControlPropPage; // [ default ] interface IUnknown // // Wrapper method implementations // #include "c:\users\razz.desktop3\source\repos\quicktime4gm\quicktime4gm\release\qtocontrol.tli" } // namespace QTOControlLib #pragma pack(pop)
Что я уже пробовал:
Я не могу ничего сделать, чтобы исправить это, потому что я не знаю, в чем проблема. Я везде гуглил, и это все, что я мог сделать, но безуспешно.
Richard MacCutchan
Такого рода ошибки обычно указывают на то, что в источниках отсутствует какая-то существенная информация. Скорее всего, некоторые #define или #include, которые требуются заголовком QT. Документация должна помочь выяснить, что это такое.
time-killer-games
где находится документация? Я искал его повсюду буквально месяц.
Richard MacCutchan
Поскольку у вас есть заголовки QuickTime в вашей системе, я предполагаю, что вы получили их с веб-сайта QuickTime. Это казалось бы логичным местом для поиска документации или даже справочных форумов.
time-killer-games
У меня нет никаких заголовков quicktime. Я скачал quicktime и DLL-файлы activex control, которые шли вместе с ним, - это все, что у меня есть. Я была бы очень признательна, если бы вы не захотели помочь мне хотя бы не вести себя саркастично, как будто я глупая или что-то в этом роде.
time-killer-games
Тот, кто оценил этот вопрос на 1 звезду, похоже, не понимает, что я объяснил свою ситуацию как можно лучше.