网络摄像机SDK怎么进行二次开发,客户端软件怎么调用SDK里的东西

2025-03-28 13:29:27
推荐回答(2个)
回答1:

有两种方法,一种是直接DllImport,就如下面几个的写法,函数名和参数返回值,要跟dll中一至,注意,C#类型与C不一样,如C#中int相当于C++中long等。
[DllImport("kernel32.dll")]//加载dll
public extern static IntPtr LoadLibrary(string path);

[DllImport("kernel32.dll")]//获取函数入口指针
public extern static IntPtr GetProcAddress(IntPtr lib, string funcName);

[DllImport("kernel32.dll")]//释放dll
public extern static IntPtr FreeLibrary(IntPtr lib);

还有另一种方法(某些sdk用这种方法更安全):
1。先定委托类型,定义与dll中函数一至
2.Intptr handle=LoadLibrary("a.dll");//加载动链
3.函数入口 Intprt t=GetProcAddress(handle, "函数名");
4。将函数入口转换为委托 delegate System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(t...)
5.调用委托!

回答2:

看 sdk 中的例子吧。。。。。。