java应用程序如何调用硬件并管理?
发布网友
发布时间:2022-05-26 14:25
我来回答
共3个回答
热心网友
时间:2023-10-21 23:01
调用硬件就是调用其驱动dll
javah生成h头文件,然后再写对应的C或者cpp,编译生成dll
然后用这个dll调用你的这个dll
因为jni不能直接调用dll,只能调用符合规范的dll也就是javah一步步生成的dll
所以必须写一个中间dll
热心网友
时间:2023-10-21 23:01
你要做的是 读取 POS 机器的 BARCODE 条码?
首先你要 了解手持* 与 条码的原理
还有 热敏打印机 开钱箱 都需要 代码 与 机器 交流
首先
打印小票 很简单 只要 做个 报表就可以了
硬件的问题你不用考虑 他们的说明书上都有 接口
只有
开钱箱 代码 不公开 我这里有
如果你需要 我发给你
这个是 C#的
using System;
using System.Runtime.InteropServices;
using System.IO;
namespace Common
{
/// <summary>
/// POSPrinter 的摘要说明。
/// </summary>
public class POSPrinter
{
const int OPEN_EXISTING = 3;
string prnPort ="COM1";
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
private static extern IntPtr CreateFile(string lpFileName,
int dwDesiredAccess,
int dwShareMode,
int lpSecurityAttributes,
int dwCreationDisposition ,
int dwFlagsAndAttributes ,
int hTemplateFile);
public POSPrinter()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public POSPrinter(string prnPort)
{
this.prnPort=prnPort;//打印机端口
}
public string PrintLine(string str)
{
IntPtr iHandle = CreateFile(prnPort, 0x40000000, 0, 0, OPEN_EXISTING, 0, 0);
if(iHandle.ToInt32() == -1)
{
return "打开COM1失败";
}
else
{
FileStream fs = new FileStream(iHandle, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
//sw.WriteLine(str)//写数据
//开钱箱
sw.Write(((char)27).ToString()+"p"+((char)0).ToString()+((char)60).ToString()+((char)255).ToString());
sw.Close();
fs.Close();
return "";
}
}
}
}
热心网友
时间:2023-10-21 23:01
工具啊.应该有个包是管理硬件的.找找吧