关于mingw
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mingw相关的知识,希望对你有一定的参考价值。
谁有MinGW制作NT驱动的例子?可不可以发给我一个?相关文档资料更好。
转载也没有关系
精简的IDE,简单的代码完成功能,没有向导,纯手工写代码.怎么看怎么觉得这东西适合Eva,呵呵!
用QuickSys向导了一个空的驱动框架HelloDrv,只改了一行代码:
#include "ntddk.h"
改成
#include "ddk\ntddk.h"
就可以毫不费力的用gcc编译成KMD
D:\wjj\vcwork\hellodrv>gcc -o HelloDrv.obj -O3 -c HelloDrv.c
D:\wjj\vcwork\hellodrv>ld HelloDrv.obj --subsystem=native --image-base=0x10000 --file-alignment=0x1000 --section-alignment=0x1000 --entry=_DriverEntry -nostartfiles -nostdlib -L E:\MinGWStudio\MinGW\lib -l ntoskrnl -o HelloDrv.sys
由于gcc支持C99标准,可以使用动态数组以及随处定义局部变量,虽然同样是用C程序来写驱动,但其实却比VC要灵活很多.另外gcc的代码优化能力相信不用我多说.
没有想到脱离Visual Studio也可以写SDK和DDK程序.开源组织里真的有很多好东东啊!gcc包里的Pascal编译器gpc可以支持Object Pascal,支持AT&T Inline Asm,支持直接使用MMX/SSE/SSE2数据类型及指令,写游戏都没有问题.比起Delphi的编译器dcc32真的是要强到哪里去了,只是没有人知道.
努力......
参考资料:http://kruglinski.bokee.com/3642661.html
参考技术A 使用MinGW编译NT KMD驱动程序关键词: MinGW Gcc DDK KMD
MinGWStudio完整安装后有78M大小比起Vc6+DDK要小很多,而且MinGWStudio安装目录下的MinGW\include\ddk\目录里有一个叫ntapi.h的头文件,里面包括了很多未公开的函数原型及数据结构,感觉很爽啊!还有一个更爽的地方呢!那就是MinGW可以混用Windows XP SDK和DDK头文件却不会出现任何错误,在VC6中只能用namespace来解决这个问题,但MinGW里直接include头文件就行了,用户态程序可以使用用户态可用的未公开函数,记得引入ntdll.a库文件.
精简的IDE,简单的代码完成功能,没有向导,纯手工写代码.怎么看怎么觉得这东西适合Eva,呵呵!
用QuickSys向导了一个空的驱动框架HelloDrv,只改了一行代码:
#include "ntddk.h"
改成
#include "ddk\ntddk.h"
就可以毫不费力的用gcc编译成KMD
D:\wjj\vcwork\hellodrv>gcc -o HelloDrv.obj -O3 -c HelloDrv.c
D:\wjj\vcwork\hellodrv>ld HelloDrv.obj --subsystem=native --image-base=0x10000 --file-alignment=0x1000 --section-alignment=0x1000 --entry=_DriverEntry -nostartfiles -nostdlib -L E:\MinGWStudio\MinGW\lib -l ntoskrnl -o HelloDrv.sys
由于gcc支持C99标准,可以使用动态数组以及随处定义局部变量,虽然同样是用C程序来写驱动,但其实却比VC要灵活很多.另外gcc的代码优化能力相信不用我多说.
没有想到脱离Visual Studio也可以写SDK和DDK程序.开源组织里真的有很多好东东啊!gcc包里的Pascal编译器gpc可以支持Object Pascal,支持AT&T Inline Asm,支持直接使用MMX/SSE/SSE2数据类型及指令,写游戏都没有问题.比起Delphi的编译器dcc32真的是要强到哪里去了,只是没有人知道.
努力......
参考资料:http://kruglinski.bokee.com/3642661.html
参考技术B 好多贴货阿NT的驱动我没写过,需要ms的接口才行啊,我没尝试过去找那部分公开的源码
以上是关于关于mingw的主要内容,如果未能解决你的问题,请参考以下文章