网络摄像机SDK怎么进行二次开发,客户端软件怎么调用SDK里的东西
答案:1 悬赏:30
解决时间 2021-01-23 15:08
- 提问者网友:咪咪
- 2021-01-22 23:17
网络摄像机SDK怎么进行二次开发,客户端软件怎么调用SDK里的东西
最佳答案
- 二级知识专家网友:一把行者刀
- 2021-01-22 23:36
有两种方法,一种是直接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.调用委托!
[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.调用委托!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯