近来研究WIN7的Core Audio API,转换audiopolicy.h中的 IAudioSessionManager2出了问题
IAudioSessionManager2的C头文件定义如下:
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSessionEnumerator(
/* [retval][out] */ IAudioSessionEnumerator **SessionEnum) = 0;我转成了这样:
function GetSessionEnumerator(out SessionEnum : IAudioSessionEnumerator): HResult; stdcall;在调用时:(var audio_session_enumerator:IAudioSessionEnumerator)
执行到
HR:= Audio_Session_Manger2.GetSessionEnumerator(audio_session_enumerator); 报保护错误Project xxxx raised exception class xxxx with message 'zzzzzz'.Process stopped. Use Step or Run to continue.请问:
1、转换的有问题吗?
2、错在哪了?
3、IAudioSessionEnumerator **SessionEnum 是什么意思?
IAudioSessionManager2的C头文件定义如下:
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSessionEnumerator(
/* [retval][out] */ IAudioSessionEnumerator **SessionEnum) = 0;我转成了这样:
function GetSessionEnumerator(out SessionEnum : IAudioSessionEnumerator): HResult; stdcall;在调用时:(var audio_session_enumerator:IAudioSessionEnumerator)
执行到
HR:= Audio_Session_Manger2.GetSessionEnumerator(audio_session_enumerator); 报保护错误Project xxxx raised exception class xxxx with message 'zzzzzz'.Process stopped. Use Step or Run to continue.请问:
1、转换的有问题吗?
2、错在哪了?
3、IAudioSessionEnumerator **SessionEnum 是什么意思?
IAudioSessionEnumerator **SessionEnum把一个实现了IAudioSessionEnumerator接口的对象的指针赋值给SessionEnum。
virtual HRESULT STDMETHODCALLTYPE GetSessionEnumerator(
/* [retval][out] */ IAudioSessionEnumerator **SessionEnum) = 0;意思为你吧一个指针变量的地址做入参传入。