winddk中的例子genprint 安装怎么编译

DDK中的例程genprint怎么在VC+ddk+DriverStduio3.2的环境中调试_Java Web 胡说八道 之一_jsp+ajax范例__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
DDK中的例程genprint怎么在VC+ddk+DriverStduio3.2的环境中调试
Java Web 胡说八道 之一
jsp+ajax范例
DDK中的例程genprint怎么在VC+ddk+DriverStduio3.2的环境中调试
DDK中的例程genprint如何在VC+ddk+DriverStduio3.2的环境中调试?作为驱动开发的菜鸟级小菜鸟,最近一直在研究虚拟打印,任务在一步步往前推进的同时问题也在一个个涌现。我是以DDK中的例程genprint为原型来研究我要实现的功能的,想要通过对这个程序的修改来实现虚拟打印的功能。我的思路是想要先找到这个函数的入口,然后像VC中调试win32控制台应用程序那样通过单步执行来了解程序执行的顺序,可是在VC中调试时用DriverStudio在VC中的调试工具栏编译的时候可以正常生成genprint.dll,但是用VC中的调试工具栏编译却会报错,错误信息如下:--------------------Configuration: vprproc - Win32 Free--------------------Linking with DDK linker...
Creating library objfre\i386\vprproc.lib and object objfre\i386\vprproc.expobjfre\i386\vprproc.dll : warning LNK4086: entrypoint '_mainCRTStartup' is not __stdcall with 12 image may not runLIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartupobjfre\i386\vprproc.dll : fatal error LNK1120: 1 unresolved externalsError executing link.exe.vprproc.dll - 2 error(s), 1 warning(s)针对这个错误我一直在网上寻找答案,有很多都说是配置的问题,我是按照网上给出的VC+DDK+DriverStudio平台配置的说明配置的环境,如果是这方面的原因那应该怎么修改配置环境呢?还有一种答案说是DLL工程不能用VC环境进行调试,如果是这种的情况的话我应该怎么去查看程序的入口和执行的过程呢?还有一个附加问题:我在编译的时候编译模式一直都是Win32 Free模式,我知道ddk编译中分为free模式和check模式,这两种模式应该可以自由设置啊,可是我却设置不成功,不知道是怎么样设置的,这两种模式的区别又是什么,应该在什么场景下使用呢?希望各位前辈多多指教,希望给菜鸟指点一下方向。------解决方案--------------------楼主
我也正在研究这个呀
不知道你弄得怎么样了
我也研究到这步了
感觉建立这个项目好像怎么也编译不能通过
有兴趣和你一起来讨论研究
------解决方案--------------------直接用DDK自带的编译就好了VC+ddk+DriverStduio3.2的环境 是指你新建的工程
然后可以通过VC调用DDK的编译工具编译对于DDK自带的例子 都没有考虑使用VC工具的情况如何使用DDK自带的编译工具GOOGLE下寒江独钓啊
张帆的WINDOWS驱动开发技术详解
这些PDF都有详细的步骤
Java Web 胡说八道 之一
Java Web 胡言乱语 之一Tomcat安装及配置篇
1,tomcat安装前,防火墙必须关闭。避免意外问题发生。
2,tomcat 目录介绍:
所有的可执行命令,启动和关闭服务器的命令就在此文件夹之中
2》 conf -- 服务器的配置文件夹,里面保存了各个配置信息
3》 lib ---
Tomcat服务器所需要的各个库文件
4》 logs-- 保存服务器的系统日志
5》webapps
-- web应用程序存放的目录,web项目保存到此目录中即可
6》work --
临时文件夹,生成所有的临时文件(*.java, *.class)
1,显示注释语法
&!-- 注释内容 --&
2,隐式注释语法
&%-- 注释 --%&
前两种隐式注释风格是从 java中演变而来。
-----------------------------
1,在Jsp中最重要的部分就是Scriptlet(脚本小程序)
1》 &%%&:在此Scriptlet中可以定义局部变量,编写语句
2》&%!%&:在此Scriptlet中,可以定义全局变量,方法,类
3》&%=%&:用于输出一个变量或一个具体内容
//定义局部变量
String info="";
out.println("&h2&x =
" + x+ "&/h2&");
out.println("&h2&x =
" + info+ "&/h2&");
public static final String INFO= "";
public int add(int x ,int y){
return x +y;
class Person{
public Person(String name,int age){
this.name =
this.age =
public String toString(){
return "name = "+this.name + ",age = "+
out.println("&h3&INFO = " + INFO +"&/h3&");
out.println("&h3&3 + 5 = " + add(3,5) +"&/h3&");
out.println("&h3&" + new Person("zhangsan",30) +"&/h3&");
&head&&title&哎呦范德萨发生&/title&&/head&
int rows =10;
int cols =10;
&table border="1" width="100%"&
for(int x =0;x&x++){
for(int y =0;y&y++){
&td&&%=x*y%&&/td&
:标签指令必须完结。
JSP开发中尽量使用表达式输出的语法来取代out.println().
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Page指令使用
1,设置MIME类型
&%@ page language="java"
contentType="application/charset=GBK"%&
&head&&title&,这是一个学习的好网站&/title&&/head&
response.setHeader("Content-Disposition","filename=hello_01.docx");
&tr&&td&生发生的发生大幅四大发发生的发生大幅四大发&/td&&/tr&
&tr&&td&团我让他核桃仁和让他和让他忽然&/td&&/tr&
&tr&&td&特瓦尔维尔热热热沃尔沃让我额&/td&&/tr&
JSP中,如果 pageEncoding存在,那么JSP的编码将有pageEncoding决定,如果不存在才有charset决定,如果都不存在了,那么使用IOS-8859-1编码.
2,错误页的设置
满足以下两个条件:
1 指定错误出现时的跳转页,通过errorPage属性指定。
2 错误处理页必须有明确的标识,通过isErrorPage属性指定.
概念:地址栏不改变的跳转,称为服务器端跳转
&error-page&
&error-code&500&/error-code&
&location&/basic_page/error.jsp&/location&
&/error-page&
&error-page&
&error-code&java.lang.NullPointerException&/error-code&
&location&/basic_page/error.jsp&/location&
&/error-page&
3,导入包的操作
import能够出现多次,连接数据库:
&%@ page language="java"
contentType="text/html" pageEncoding="GBK"%&
&%@ page import = "java.sql.*;"%&
&head&&title&,这是一个学习的好网站&/title&&/head&
public static final String DBDRIVER =
"org.gjt.mm.mysql.Driver";
public static final String DBRUL =
"jdbc:mysql://localhost:3306/luckDb";
public static final String DBUSER = "root";
public static final String DBPASS = "123456";
Connection conn =
PreparedStatement pstmt =
ResultSet rs =
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBRUL,DBUSER,DBPASS);
String sql
= "SELECT empno,ename,job,sal,hiredate FROM emp";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
&table border = "1" width="80%"&
&td&雇员编号&/td&
&td&雇员姓名&/td&
&td&雇员工作&/td&
&td&雇员工资&/td&
&td&雇员日期&/td&
while(rs.next()){
int empno =rs.getInt(1);
String ename=rs.getString(2);
String job = rs.getString(3);
= rs.getFloat(4);
java.util.Date date = rs.getDate(5);
&td&&%=empno%&&/td&
&td&&%=ename%&&/td&
&td&&%=job%&&/td&
&td&&%=sal%&&/td&
&td&&%=date%&&/td&
}catch(Exception e){
System.out.println(e);
rs.close();
pstmt.close();
conn.close();
**********************************************************************************
3,包含指令
分为两种包含指令:
方法一:再每一个JPS页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容.
方法二:将工具栏,头部信息,尾部信息都分成各个独立的文件,以后用的时候直接导入进来.
静态包含:
&%@ include file="要包含的文件路径"%&
动态包含:
&jsp:include&指令可以完成动态包含的操作,与静态包含不同的是,动态包含语句,可以自动区分被包含的
页面是静态还是动态。
1&不传递参数:&jsp:include page="{要包含的文件路径|&%=表达式%&}" flush="true|false"&
2&传递参数:
&jsp:include
page="{要包含的文件路径|&%=表达式%&}" flush="true|false"&
&jsp:param name="参数名称" value="参数内容"/&
....可以向北包含页面中传递多个参数
&jsp:include&
静态包含属于先包含后处理,那么如果现在使用的是动态包含呢?
动态包含是 先处理后包含,包含的是处理后的结果
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
语法:&jsp:forward&指令,将一个用户的请求从一个页面传递到另外一个页面。
&%@ page language="java"
contentType="text/html" pageEncoding="GBK"%&
&%@ page import = "java.sql.*;"%&
&head&&title&,这是一个学习的好网站&/title&&/head&
String username = "douglaso";
&jsp:forward page="forward_demo02.jsp"&
&jsp:param name="name" value="&%=username%&"/&
&jsp:param name="info" value=""/&
&/jsp:forward&
jsp+ajax范例
jsp+ajax实例
下面介绍JSP前台表单内容通过Ajax异步提交到后台Servlet进行校验(校验方式多种,包括提取数据库信息,校验用户名是否重复等),异步在JSP表单页面显示校验结果信息的基本过程。 一、说明:
1.由于本文只限于介绍JSP+Servlet+Ajax运用的基本流程,重点不在于后台数据库的访问和校验内容,因此省略Servlet对数据库的访问。 二、基本流程:
1. JSP页面login.jsp提供一个表单“form”,表单中有两个“text”类型的输入框,其中我们将用第一个输入框来做实验。
在第一个输入框中(输入用户名),通过onblur=validate();,当用户光标离开输入框时,触发JS函数validate() ,函数validate()在Ajax.js文件中声明。
%@page contentType="text/html" pageEncoding="UTF-8"%
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
http-equiv="Content-Type" content="text/ charset=UTF-8"
type="javascript" src="Ajax.js"
action="" method="get" name="form"
输入用户名:
type="text" size="10" maxlength="8" id="userName" name="name" onblur="validate()"
输入商品名:
type="text" size="10" maxlength="8"
2、Ajax.js文件声明了一系列函数,用于完成向表单与servlet的中接处理。 2.1、函数validate()要点:
2.1.1、通过document.getElementById(String id)获取表单中有特定id值的输入框的值,即获取用户输入的用户名。
2.1.2、声明一个变量url,存放要访问的servlet:"validate.do?id=" + escape(idField.value),问号?后面表示在url后添加一个值,这个值在validate.do这个servlet中可以通过request.getParameter("id")来获取。
var url = "validate.do?id=" + escape(idField.value);
2.1.3、 通过if()语句以兼容IE,Firefox等多个浏览器版本的方式创建一个XMLHttpRequest对象。
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
2.1.4、调用XMLHttpRequest对象函数open()准备向servlet发送请求(此时只是“准备发送”,并没有发送)
req.open("GET", url, true);
2.1.5、 调用XMLHttpRequest对象函数send(param)向servlet发送请求。param参数的值null(关于send()方法使用请另外查阅)
req.send(null);
2.1.6、调用一个触发事件onreadystatechange,每当 readyState 改变时,onreadystatechange 函数就会被执行。readyState有5个可能值:0:请求未初始化(在调用open()之前);1:请求已经提出(调用send()之前);2:请求已经发送(这里通常可以从响应得到内容头部);3:请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应);4:请求已经完成(可以访问服务器响应并使用它)
req.onreadystatechange =
2.2、function callback()要点:
XMLHttpRequest.status = 200表示服务器已经成功响应。
通过XMLHttpRequest.responseText获取servlet端的getPrintWriter().write()输出的响应。得到的值是 一个String类型数据。
var check = req.responseT
2.3、通过show()函数输出结果到标签标记的位置。
完整的Ajax.js文件:
function validate() {
var idField = document.getElementById("userName");
var url = "validate.do?id=" + escape(idField.value);
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
req.open("GET", url, true);
req.onreadystatechange =
req.send(null);
function callback() {
if(req.readyState == 4 && req.status == 200) {
var check = req.responseT
show (check);
function show(str) {
if(str == "OK") {
var show = "&font color='green'&恭喜!!用户名可用!&/font&";
document.getElementById("info").innerHTML =
else if( str == "NO") {
var show = "&font color='red'&对不起,用户名不可用!!请重新输入!&/font&";
document.getElementById("info").innerHTML =
三、servlet处理:
重点1:通过以下几行代码设置浏览器不进行Ajax处理页面的缓存(如果出现缓存,将导致一些不可预知的麻烦)
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
重点2:通过request.getParameter()来获取Ajax传递的参数。
<div style="padd
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:(简单问题)DDK genprint 虚拟打印机安装打包问题?谢谢了!
[问题点数:100分,结帖人MAX305]
(简单问题)DDK genprint 虚拟打印机安装打包问题?谢谢了!
[问题点数:100分,结帖人MAX305]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。&&&&&&&&&&&
此文参考了
在这里向他表示敬意!
虽然我不懂编程,但是我总是想玩玩,看到那么多人都驱动来驱动去的,我也想驱动一下,无奈我不会编程,我想
我不会编程我总可以编译一个SYS吧,于是我就拉出来Easy Sys,用DDK build了一下,居然没看到SYS,郁闷
于是我就上网找呀找,结果还是没找到,那些文章我也看不大明白,于是我就上群里说了一下子情况,然后sislcb
大牛,他说他用的是DDK Wizard,于是我就让他教我,他给了我个链接,根据那个链接,开始进行配置了,好晕啊
1、去 下载ddkwizard,ddkbuild_bat.zip,ddkbuild_cmd.zip,这两个也要下载
2、拷贝 DDKBUILD.bat 和 DDKBUILD.cmd 到DDK安装根目录,如我的是G:\WinDDK,这里要注意是根目录
3、添加环境变量,我的电脑&#8594;属性&#8594;高级&#8594;环境变量&#8594;在下图中找到path
添加环境变量,我这里安装的目录是G:\WinDDK(安装在D盘式一样的D:\WinDDK),所以我添加的就是G:\WinDDK(如果D盘下面则是D:\WinDDK),如下图,记得加分号,呵呵
4、启动VS2005,工具&#8594;选项&#8594;项目和解决方案&#8594;VC++目录&#8594;添加G:\WinDDK(如果D盘目录下则是D:\WinDDK),如下图
5、根据你所安装的DDK的不同版本添加不同的变量到系统中,注意是新建:&&&&& 同第3步一样,在我的电脑的属性中添加,&&&&& 2000 DDK: W2KBASE&&&&& XP DDK: WXPBASE&&&&& 2003 sp1 DDK: WNETBASE,中的一个.&&&&&& 这里我的是WXPBASE(值为G:\WinDDK\2600,如果是D盘则是D:\WinDDK\2600),如下图
6、开始安装DDKWizard,在安装的最后一步你可以选择编辑ddkwizard的配置文件
7、这样就可以编译驱动了,文件&#8594;新建项目就会看到多出一个DDK Project,如下图
选择Driver就可以了,就会弹出DDK Wizard的配置对话框,配置如下图
把Create PREfast configuration前面的钩去掉,选择XP DDK,因为我装的是XP DDK,然后点击Finish,OK
8、如果这样就生成驱动的话,可能会出现错误,还需要配置,新建一个项目,然后项目&#8594;属性,如下图
9、这样就完全OK啦,生成&#8594;生成解决方案,就会出现Sys了,这样以后就可以用VS2005编译驱动喽,生成的sys文件如下图所示:
OK,剩下的就靠大家自己动手去开发了!
我们一起努力哦!
阅读(...) 评论()初学DDK,请教一下怎么安装genprint.dll?
[问题点数:40分,结帖人Huntercao]
初学DDK,请教一下怎么安装genprint.dll?
[问题点数:40分,结帖人Huntercao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 交叉编译 arm 例子 的文章

 

随机推荐