C#中如何调用自己写的驱动程序

popdrummer 2011-11-17 11:19:03
前段时间写了个GPIO驱动程序,生成了一个dll文件,想用C#开发的应用程序调用这个驱动。查了一些资料,给的方法有用[DLLImport]来调用dll文件,然后声明调用函数;还有说用windows API函数CreateFile,DeviceIOControl,CloseHandle,来对设备进行操作,可是C#中有这些函数么,现在有点迷糊了,烦请高手给一个清晰的思路。
...全文
973 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
popdrummer 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 northcan 的回复:]
CreateFile,DeviceIOControl,CloseHandle这些都是WinCE系统的API函数。
应用程序可以通过这几个API与流驱动进行交互。

应用层调用CreateFile,会间接调用流驱动的XXX_Open,打开流驱动
应用层调用DeviceIOControl,会调用流驱动的XXX_IOControl,针对不同的Ioctls,做相应的工作。
应用层调用CloseH……
[/Quote]
这些我已经搞清楚了,我迷糊就在于我自己写了一个驱动,驱动生成了一个GPIODrv.dll文件,那我在C#中编写应用程序时,需不需要将这个文件用DllImport引用进来,如果需要,如何使用?
popdrummer 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 northcan 的回复:]
回完了帖子才发现楼主的结贴率:0.00%
[/Quote]
呵呵,这是我发的第二个帖子,第一个帖子还没有解答完,谢谢你的回答,我试一下
northcan 2011-11-17
  • 打赏
  • 举报
回复
回完了帖子才发现楼主的结贴率:0.00%
northcan 2011-11-17
  • 打赏
  • 举报
回复
CreateFile,DeviceIOControl,CloseHandle这些都是WinCE系统的API函数。
应用程序可以通过这几个API与流驱动进行交互。

应用层调用CreateFile,会间接调用流驱动的XXX_Open,打开流驱动
应用层调用DeviceIOControl,会调用流驱动的XXX_IOControl,针对不同的Ioctls,做相应的工作。
应用层调用CloseHandle,会调用流驱动的XXX_Close,关闭驱动

c#是托管代码,不像native c++,c++可以直接调用这几个Windows CE的API函数。
c#需要先调用DllImport,引入这些函数的声明,之后就可以像c++一样使用它们了。
具体这几个函数的用法,参考MSDN。
91program 2011-11-17
  • 打赏
  • 举报
回复
CreateFile,DeviceIOControl,CloseHandle 这些函数是 CE 系统的,搞清楚调用方法都可以有。
popdrummer 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 northcan 的回复:]
呵呵,看来你没看懂我的回复。
GPIODrv.dll是驱动

------------
应用
------------
系统
------------
驱动
------------

应用层 需要通过 系统 才能够让驱动完成某种工作。驱动是由系统来管理的。
所以你写应用的时候,不用也不能够去管GPIODrv.dll。

我上面已经说了,你调用的是系统的API,比如Cr……
[/Quote]
已经成功了,谢谢你的帮助,加分结贴!
northcan 2011-11-17
  • 打赏
  • 举报
回复
呵呵,看来你没看懂我的回复。
GPIODrv.dll是驱动

------------
应用
------------
系统
------------
驱动
------------


应用层 需要通过 系统 才能够让驱动完成某种工作。驱动是由系统来管理的。
所以你写应用的时候,不用也不能够去管GPIODrv.dll。

我上面已经说了,你调用的是系统的API,比如CreateFile,系统会去调用你GPIODrv.dll导出的XXX_Open函数。而不是你应用层直接调用GPIODrv.dll的导出函数。

楼主应该补一补操作系统的知识吧。
具体点,在wince下驱动是有驱动管理器device.dll来加载并管理的。你在写应用的时候不会直接调用它。

19,520

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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