本工程只提供了USB设备虚拟端的核心部分代码,驱动代码属于WDM工程,非WDF框架。
同时提供了完整的例子程序,包括USB数据采集端和USB虚拟端,可以一起模拟一个USB设备的远程访问效果。
驱动目录可以用WDK7编译,同时也可以使用带WDK10的vs2015编译。
在不到两个月时间里既要学习研究USB协议和Windows平台下USB系统的框架流程(感谢ReactOS提供的接近windows内核的源码),同时要实现USB数据采集端,也要实现USB虚拟设备端,同时还要实现虚拟USB控制器和根集线器。
因而时间比较紧,错误难免,还望不吝提出和纠正本工程的BUG。
本代码和例子程序供学习和研究使用,不可不经修改直接用于商业盈利目的。
若你的工程引用了本工程的代码,请在引用的地方注明原始开发作者。
本工程对应的博客地址http://blog.csdn.net/fanxiushu/article/details/51420096以及后续章节。
2022/9/2 20:23:25 518KB WINDOWS USB 驱动
1
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发stringls_urlstringls_datastringls_ddstringls_zfqd//【交易类型--传入平台用】ifrb_1.checked=truethen ls_zfqd="WXPAY"endififrb_2.checked=truethen ls_zfqd="ALIPAY"endififrb_3.checked=truethen ls_zfqd="YLPAY"endif//【生成请求地址===从配置参数中维护请求地址的一部分】ls_url=gs_pos_requesturl+"sdkBarcodePay.json"//【判断输入金额能否符合要求】ifdec(em_1.text)<=0.00then messagebox("系统提示【MYSOFT】","所输金额不正确!~r~n请重新输入!") em_1.setfocus() returnendif//【判断商户订单号能否为空】ifsle_4.text=""then messagebox("系统提示【MYSOFT】","订单号不能为空!") returnendif//【判断能否扫描付款码】ifsle_code.text=""then messagebox("系统提示【MYSOFT】","付款码不能为空!") sle_code.setfocus() returnendif//【判断能否扫描付款码】iflen(sle_code.text)=0then messagebox("系统提示【MYSOFT】","请扫描服务对象付款码......") sle_code.setfocus() return-1endif//【判断订单号能否为空】iflen(sle_4.text)=0then messagebox("系统提示【MYSOFT】","订单号不能为空!") sle_4.setfocus() return-1endif//【初始化伪随机数发生器,让应用程序每次运用不同的伪随机数序列。
】randomize(0)//【清除is_keys[]is_value[]】inv_wxpay.of_clear()//====================生成公共请求参数==============================================================//【操作系统:3-直连】inv_wxpay.of_add_pos("opSys","3")//【字符集:00-GBK】inv_wxpay.of_add_pos("characterSet","00")//【机构号,从配置参数维护】inv_wxpay.of_add_pos("orgNo",gs_pos_orgno)//【商户号,从配置参数维护】inv_wxpay.of_add_pos("mercId",gs_pos_mercid)//【设备号,从配置参数维护】inv_wxpay.of_add_pos("trmNo",gs_pos_trmno)//【商户单号,不能重复,若重复则返回:数据库错误】inv_wxpay.of_add_pos("tradeNo",sle_4.text)//【设备端交易时间:yyyymmddhhmmss】inv_wxpay.of_add_pos("txnTime",string(now(),"yyyymmddhhmmss"))//【签名方式:MD5】inv_wxpay.of_add_pos("signType","MD5")//【版本号:默认V1.0.0】inv_wxpay.of_add_pos("version","V1.0.0")//==================生成商户主扫请求参数============================================================//【实付金额:分为单位】inv_wxpay.of_add_pos("amount",string(long(dec(em_1.text)*100)))//【订单总金额:分为单位】inv_wxpay.of_add_pos("total_amount",string(long(dec(em_1.text)*100)))//【扫码支付授权码】inv_wxpay.of_add_pos("authCode"
2015/6/24 6:08:54 11.64MB PB POWERBUILDER
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡