私はGDALコードを少し調整していて、このようなtypedefを使用しています
typedef CPLErr (*MYWriter)( double dfLevel, int nPoints, double *padfX, double *padfY, void * );
このようなクラスで使用されています
class GDALGenerator
{
...blah...
public:
MYWriter pfnWriter;
GDALGenerator( int nWidth, int nHeight, MYWriter pfnWriter, void *pWriterCBData );
...blah...
};
しかし、同じファイルで、GDALGeneratorクラスの下で、関数を作成すると
CPLErr MYWriter( double dfLevel, int nPoints, double *padfX, double *padfY, void *pInfo )
{}
このエラーが発生します
エラー 2 エラー C2365: 'MYWriter': 再定義。以前の定義は「typedef」でした f:\projects\map\somecpp\somecpp.cpp 1330 MyProjectName
標準のGDAL関数がこのように使用されており、正常に動作するため、私は混乱しています(その場合、クラスは別のDLLにあります)。別の名前で関数のコピーを作成しましたが、機能しません。