WinPRT中的“公共成员签名包含本机类型”错误

时间:2013-02-12 07:01:34

标签: visual-c++ windows-phone-8 windows-phone winprt

我正在尝试创建一个支持windows phone 8的运行时组件。我有一个c ++源代码,目前它不支持windows phone 8,所以我将它们转换为windows phone运行时组件来制作它适用于Windows手机。

现在问题是我创建了它们,但在下面显示错误,

    #pragma once
    #include "Encoder.h"

    namespace YakPRT
    {
     public ref class YakPRTComponent sealed
    {
      public:
        YakPRTComponent();
        void yakEncode(paTestData *yakData, uint8_t *rawData, int rawDataSize);
        void EncodeData(paTestData *yakData, uint8_t *rawData, int rawDataSize);
        void signalHandler( int signum );
                int yakRecordCallback( const void *inputBuffer, void *outputBuffer,
                           unsigned long framesPerBuffer,
                           const StreamCallbackTimeInfo* timeInfo,
                           StreamCallbackFlags statusFlags,
                           void *userData );
        PaError yakAudioStreamOpen(paTestData *yakData);
        PaError yakAudioStreamStart(paTestData *yakData);
        PaError isYakAudioStreamNotStopped(paTestData *yakData);
        PaError yakCloseAudioStream(paTestData *yakData);
    private:
        Encoder *_encoder;
      };
      }

来自上述代码的以下错误

错误C3987:'yakEncode':公共成员的签名包含本机类型'paTestData *'

错误C3992:'getYakCodec':公共成员的签名包含无效类型

注意:paTestData是一个结构,

    typedef struct
    {
         int          frameIndex;  /* Index into sample array. */
   FILE        *recFileStream; /* Record the stream into File */
   uint8_t     *encoderOutput;
   int         allocOutputSize; /* memory size allocated */
   int         encoderOutputSize;
   PaStream    *recordStream;   /* PaStream opened to record Audio callback. */
   AVContext *c;
    } paTestData;

我对c ++不好,有人请告诉我这个错误是什么,以及如何纠正这个问题。

1 个答案:

答案 0 :(得分:9)

我从link

获得了它

创建Windows Phone运行时组件时非常有用。 。