110,534
社区成员
发帖
与我相关
我的任务
分享
LONG TH_Layout(VARIANT* rcBoundTop);
public virtual int TH_Layout(ref object rcBoundTop);
/// <summary>
/// 设置转换参数
///
/// HRESULT __stdcall FMTCVT_SetPara(void* handle,void* pDecFileInfo);
/// </summary>
/// <param name="handle">格式转换模块句柄</param>
/// <param name="pDecFileInfo">目的文件信息(目的文件宽高,帧率、码率、文件类型、音频采样率等参数)</param>
/// <returns>返回状态码</returns>
[DllImport("HikFormatConvertDll.dll", EntryPoint = "FMTCVT_SetPara", CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int FMTCVT_SetPara(IntPtr handle, IntPtr pDecFileInfo);
调用
IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(m_pDecInfo));
Marshal.StructureToPtr(m_pDecInfo, ptr, false);
int ret = HikFormatConvertDll.FMTCVT_SetPara(hFMCVT, ptr);
Marshal.FreeHGlobal(ptr);
public static IntPtr hFMCVT; //格式转换模块句柄
...
return HikFormatConvertDll.FMTCVT_Create(ref hFMCVT);
...
HikFormatConvertDll.FMTCVT_Release(hFMCVT);
/// <summary>
/// 创建格式转换模块
///
/// HRESULT __stdcall FMTCVT_Create(void **handle);
/// </summary>
/// <param name="handle">返回格式转换模块句柄</param>
/// <returns>返回状态码</returns>
[DllImport("HikFormatConvertDll.dll", EntryPoint = "FMTCVT_Create", CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int FMTCVT_Create(ref IntPtr handle);
/// <summary>
/// 释放格式转换模块
///
/// HRESULT __stdcall FMTCVT_Release(void *handle);
/// </summary>
/// <param name="handle">格式转换模块句柄</param>
/// <returns>返回状态码</returns>
[DllImport("HikFormatConvertDll.dll", EntryPoint = "FMTCVT_Release", CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int FMTCVT_Release(IntPtr handle);
int[] rcBoundTop = new int[100]
object rcBoundTop1 = rcRoundTop;
TH_Layout(ref rcBoundTop1);
但是报错说“类型不匹配”。