本人最近在做视频监控,现有一个h264解码dll库,想要调用dll,可不知怎么用C#改写h264头文件,希望大虾么不要躲了,赶紧出来帮我解决一下。。#ifndef __H264DEC_H__
#define __H264DEC_H__#ifdef __cplusplus
extern "C" {
#endifvoid* h264_dec_init();
int h264_dec_main(void* pObject,unsigned char *istream,int len);
void h264_dec_stop(void* pObject);void h264_dec_getYUV(void* pObject,unsigned char* pY,unsigned char* pU,unsigned char* pV);
void h264_dec_getRGB(void* pDecoder,unsigned char* pRGB);
void h264_get_pic_wh(void* pObject,int* width,int* height);void* g726_dec_init(int bitrate);typedef struct _H264YUVInfo{
unsigned char* data[3];
unsigned int linesize[3];
}H264YUVInfo;
void h264_dec_getYUV2(void* pDecoder,H264YUVInfo* pInfo);/**
* @param[out] pOutput samples the output buffer
* @param[in,out] pOutputSize frame_size_ptr the output buffer size in bytes. must not less than 16*1024
* @param[in] pStream buf the input buffer
* @param[in] iStreamSize buf_size the input buffer size in bytes
* @return On error a negative value is returned, otherwise the number of bytes
* used or zero if no frame could be decompressed.
*/
int g726_dec_main(void* pObject,short* pOutput,int* pOutputSize, unsigned char* pStream,int iStreamSize);
void g726_dec_stop(void* pObject);
#ifdef __cplusplus
}
#endif#endif用C#改写,我是菜鸟,老是改不好
#define __H264DEC_H__#ifdef __cplusplus
extern "C" {
#endifvoid* h264_dec_init();
int h264_dec_main(void* pObject,unsigned char *istream,int len);
void h264_dec_stop(void* pObject);void h264_dec_getYUV(void* pObject,unsigned char* pY,unsigned char* pU,unsigned char* pV);
void h264_dec_getRGB(void* pDecoder,unsigned char* pRGB);
void h264_get_pic_wh(void* pObject,int* width,int* height);void* g726_dec_init(int bitrate);typedef struct _H264YUVInfo{
unsigned char* data[3];
unsigned int linesize[3];
}H264YUVInfo;
void h264_dec_getYUV2(void* pDecoder,H264YUVInfo* pInfo);/**
* @param[out] pOutput samples the output buffer
* @param[in,out] pOutputSize frame_size_ptr the output buffer size in bytes. must not less than 16*1024
* @param[in] pStream buf the input buffer
* @param[in] iStreamSize buf_size the input buffer size in bytes
* @return On error a negative value is returned, otherwise the number of bytes
* used or zero if no frame could be decompressed.
*/
int g726_dec_main(void* pObject,short* pOutput,int* pOutputSize, unsigned char* pStream,int iStreamSize);
void g726_dec_stop(void* pObject);
#ifdef __cplusplus
}
#endif#endif用C#改写,我是菜鸟,老是改不好
public extern static IntPtr h264_dec_init();
[DllImport("h264.dll")]
public extern static int h264_dec_main(IntPtr pObject, IntPtr istream, int len);
[DllImport("h264.dll")]
public extern static int h264_dec_stop(IntPtr pObject);