0

我在 Visual Studio 2012 中使用 C# 来调用包含在我的项目所需的一组外部库中的函数。该函数需要传入一个双指针,但我不确定确切的语法。单指针对我很有用。我正在使用不安全的关键字。

AVFormatContext _file = new AVFormatContext();

fixed (AVFormatContext* p_file = &_file)
{
   avformat_alloc_output_context2(&p_file,null,null,filename);
}

VS 抱怨“&p_file”语法错误“无法获取只读局部变量的地址”。

任何帮助将非常感激!

4

1 回答 1

6

您不能获取的地址,p_file因为p_file在固定块内是只读的。如果您可以获取其地址,那么这将是可能的:

fixed (AVFormatContext* p_file = &_file)
{
   AVFormatContext** ppf = &p_file;
   *ppf = null; // Just changed the contents of a read-only variable!

因此,您必须获取可以更改的地址:

fixed (AVFormatContext* p_file = &_file)
{
   AVFormatContext* pf = p_file;
   AVFormatContext** ppf = &pf;

现在我们都很好;变*ppf不变p_file

于 2013-06-24T16:31:18.023 回答