初学c#做监控界面,调用SDk的dll,把dll中的函数写入一个类,为啥总提示找不到类中的函数?

飞刀杂耍者 2015-08-19 01:18:59
好烦看了我好久求大神,新来没币不好意思。。
关键代码:
namespace MPS.CommonClass
{
class yuntaikongzhi
{
……
[DllImport("NetLib.dll", EntryPoint = "HI_NET_DEV_PTZ_Ctrl_Standard ")]
public extern static Int32 HI_NET_DEV_PTZ_Ctrl_Standard(IntPtr hWndMain, PtzControl u32Command,SpeedControl u32Speed);
……
}
}
然后我再另一个文件先using
using MPS.CommonClass;
namespace MPS
{
……
public void btnUp_Click(object sender, EventArgs e)
{
HI_NET_DEV_PTZ_Ctrl_Standard(this.Handle, PtzControl.HI_NET_DEV_CTRL_PTZ_UP, SpeedControl.HI_NET_DEV_CTRL_PTZ_SPEED_MIN);
}
……
}
感觉没啥问题呀,底面提示:错误 1 当前上下文中不存在名称“HI_NET_DEV_PTZ_Ctrl_Standard” C:\Users\Administrator\Documents\Visual Studio 2010\Projects\监控界面\监控界面\frmmain.cs 22 13 jiankongjiemian 有人能告诉我为啥么。
dll及相关lib头文件我包含在看了方案中了。。谢谢了
...全文
203 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2015-08-19
  • 打赏
  • 举报
回复
貌似楼主是以c 的思维用c#, 以为加了.h头文件,就能直接用函数了; static方法名调用时前面加上类名就可以了
random_2011 2015-08-19
  • 打赏
  • 举报
回复
引用 5 楼 u010046276 的回复:
引用 2 楼 q317379184 的回复:
使用yuntaikongzhi.HI_NET_DEV_PTZ_Ctrl_Standard
层主说得对,试了是好使,谢啦。。那请问能不能有方法直接把这个类(相当于在using中直接把类也点进去)也包括进去,使得和我这个调用一样简单
你的概念混乱了。定义了yuntaikongzhi类以及HI_NET_DEV_PTZ_Ctrl_Standard方法,就没有办法。 你可以尝试使用partial关键字,再将yuntaikongzhi改为你调用类的名字。 或者直接将该方法放到你的调用类里面,作为一个方法。
Poopaye 2015-08-19
  • 打赏
  • 举报
回复
引用 6 楼 u010046276 的回复:
[quote=引用 4 楼 shingoscar 的回复:] 又不是在同一个作用域下 要写全称yuntaikongzhi.HI_NET_DEV_PTZ_Ctrl_Standard
层主说得对,试了是好使,谢啦。。那请问能不能有方法直接把这个类(相当于在using中直接把类也点进去)也包括进去,使得和我这个调用一样简单[/quote] 除非你写在同一个类中 C#规定了所有的方法必须包含在类中
飞刀杂耍者 2015-08-19
  • 打赏
  • 举报
回复
引用 4 楼 shingoscar 的回复:
又不是在同一个作用域下 要写全称yuntaikongzhi.HI_NET_DEV_PTZ_Ctrl_Standard
层主说得对,试了是好使,谢啦。。那请问能不能有方法直接把这个类(相当于在using中直接把类也点进去)也包括进去,使得和我这个调用一样简单
飞刀杂耍者 2015-08-19
  • 打赏
  • 举报
回复
引用 1 楼 wc_ling 的回复:
1.引用SDK文件这是不用说了 2.将所有DLL文件拷贝到Debug文件下 3.using MPS.CommonClass;这个类是干什么的?
这个类是我自己写的包含了一些公共类
飞刀杂耍者 2015-08-19
  • 打赏
  • 举报
回复
引用 2 楼 q317379184 的回复:
使用yuntaikongzhi.HI_NET_DEV_PTZ_Ctrl_Standard
层主说得对,试了是好使,谢啦。。那请问能不能有方法直接把这个类(相当于在using中直接把类也点进去)也包括进去,使得和我这个调用一样简单
  • 打赏
  • 举报
回复
在 MPS.CommonClass;这个类里使用 [DllImport("NetLib.dll", EntryPoint = "HI_NET_DEV_PTZ_Ctrl_Standard ")] public extern static Int32 HI_NET_DEV_PTZ_Ctrl_Standard(IntPtr hWndMain, PtzControl u32Command,SpeedControl u32Speed);呢?
Poopaye 2015-08-19
  • 打赏
  • 举报
回复
又不是在同一个作用域下 要写全称yuntaikongzhi.HI_NET_DEV_PTZ_Ctrl_Standard
random_2011 2015-08-19
  • 打赏
  • 举报
回复
使用yuntaikongzhi.HI_NET_DEV_PTZ_Ctrl_Standard
wc_ling 2015-08-19
  • 打赏
  • 举报
回复
1.引用SDK文件这是不用说了 2.将所有DLL文件拷贝到Debug文件下 3.using MPS.CommonClass;这个类是干什么的?

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧