使用PB编写dll文件
2009-09-08 16:54
239 查看
原文出处:http://www.wangchao.net.cn/bbsdetail_58124.html
在Windows CE中,所有的驱动程序都以dll形式存在。Dll文件可以用EVC来开发,也可以使用PB来开发,使用PB开发驱动程序,可以跟NK同时进行编译,要比EVC来的方便一点。这篇文章就只要介绍用PB来进行dll库开发的方法。
使用PB来开发,首先应该在你的工作平台下面建立一个目录,用来存放源文件,同时要修改dir文件,使得编译的时候能够进到源文件所在的目录。
编写dll的方法这里就不说了,反正就是写一堆的函数,这里主要解释一下使用PB编译,需要增加的文件。
第一个文件是sources文件,这里给出了一个sources文件的例子:
TARGETNAME=led
使用TARGETNAME来指示生成目标的文件名(不包含扩展名,扩展名PB会自动加上)
RELEASETYPE=PLATFORM
RELEASETYPE指示该文件将要生成的类型,一共有五个取值:
SDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%/Oak目录,而lib文件被放置到%_PUBLICROOT%/Sdk目录
DDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%/Oak目录,而lib文件被放置到%_PUBLICROOT%/Ddk
PLATFORM:使用该类型将使得生成的文件受平台控制
LOCAL:该类型使得生成的文件全部放置到当前路径
CUSTOM:该类型使得生成的文件放置到TARGETPATH制定的位置(也就是说必须要有TARGETPATH参数设置)
TARGETTYPE=DYNLINK
生成的目标类型,LIBRARY表示是一个lib库,DYNLINK则表示是dll,而PROGRAM则是一个exe文件
TARGETLIBS=
$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib
TARGETLIBS指示连接需要的库的名字
SOURCELIBS=mm.lib
SOURCELIBS指示将于某一个lib一起连接。上面一个lib是需要什么就取什么,而这个lib则是连接所有的。
DEFFILE=led.def
DLL文件的def文件名
INCLUDES=../../inc
指定include的路径
SOURCES=
led.c
指定参与该规则的所有的源文件
第二个则使makefile文件,该文件只需要!INCLUDE $(_MAKEENVROOT)/makefile.def就可以了,建议不要修改(我也不知道如何修改)
第三个文件是def文件,下面是一个该文件的实例
LIBRARY led
生成的库(.lib)文件名(PB自动生成扩展名)
EXPORTS
mm_init
EXPORTS指定了需要导出的函数名称
建立好这些文件之后,选择PB的build菜单的open build releasee directory,到达所在的目录,执行build -c,如果没有错误,就按照我们的要求生成文件了
在Windows CE中,所有的驱动程序都以dll形式存在。Dll文件可以用EVC来开发,也可以使用PB来开发,使用PB开发驱动程序,可以跟NK同时进行编译,要比EVC来的方便一点。这篇文章就只要介绍用PB来进行dll库开发的方法。
使用PB来开发,首先应该在你的工作平台下面建立一个目录,用来存放源文件,同时要修改dir文件,使得编译的时候能够进到源文件所在的目录。
编写dll的方法这里就不说了,反正就是写一堆的函数,这里主要解释一下使用PB编译,需要增加的文件。
第一个文件是sources文件,这里给出了一个sources文件的例子:
TARGETNAME=led
使用TARGETNAME来指示生成目标的文件名(不包含扩展名,扩展名PB会自动加上)
RELEASETYPE=PLATFORM
RELEASETYPE指示该文件将要生成的类型,一共有五个取值:
SDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%/Oak目录,而lib文件被放置到%_PUBLICROOT%/Sdk目录
DDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%/Oak目录,而lib文件被放置到%_PUBLICROOT%/Ddk
PLATFORM:使用该类型将使得生成的文件受平台控制
LOCAL:该类型使得生成的文件全部放置到当前路径
CUSTOM:该类型使得生成的文件放置到TARGETPATH制定的位置(也就是说必须要有TARGETPATH参数设置)
TARGETTYPE=DYNLINK
生成的目标类型,LIBRARY表示是一个lib库,DYNLINK则表示是dll,而PROGRAM则是一个exe文件
TARGETLIBS=
$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib
TARGETLIBS指示连接需要的库的名字
SOURCELIBS=mm.lib
SOURCELIBS指示将于某一个lib一起连接。上面一个lib是需要什么就取什么,而这个lib则是连接所有的。
DEFFILE=led.def
DLL文件的def文件名
INCLUDES=../../inc
指定include的路径
SOURCES=
led.c
指定参与该规则的所有的源文件
第二个则使makefile文件,该文件只需要!INCLUDE $(_MAKEENVROOT)/makefile.def就可以了,建议不要修改(我也不知道如何修改)
第三个文件是def文件,下面是一个该文件的实例
LIBRARY led
生成的库(.lib)文件名(PB自动生成扩展名)
EXPORTS
mm_init
EXPORTS指定了需要导出的函数名称
建立好这些文件之后,选择PB的build菜单的open build releasee directory,到达所在的目录,执行build -c,如果没有错误,就按照我们的要求生成文件了
相关文章推荐
- 使用PB编写dll文件---看介绍source文件的地方
- Eclipse for C/C++ (三)编写DLL文件之def文件的使用
- JNI 使用总结 (JAVA 调用C语言编写的DLL/SO/SL文件)
- .dll 文件编写和使用
- 在 WPF 中,使用 C++ 编写的 DLL 文件
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- 22.Silverlight使用WebService调用C++,Delphi编写的DLL文件
- vs2010下编写dll使用.def文件无法起到相应作用的原因
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- PB8调用使用C++与C#分别编写生成解压缩带有密码的zip压缩文件的动态链接库dll(部分内容转自互联网)
- vs2005中Def文件的使用方法(DLL编写无法找到函数名称)
- 自己编写的一个库文件,还在不断丰富中,欢迎使用
- 黑马程序员_ADO.Net(配置文件的两种写法与使用方法,手动编写SqlHelper类)
- 使用Java语言编写的Demo:上传文件至百度网盘(Baidu PCS)
- Visual studio2010 编写dll 及 使用dll
- QT使用记录关于调用DLL库文件出现的问题
- [转]如何使用lib,dll等文件
- 使用def文件简化dll导出
- 动态库dll使用module.def文件导出函数(像静态库一样使用)
- 【Visual Studio】使用 pexports 根据 VS 的 .dll 动态链接库生成 .lib 库文件