幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!
额 iostream Windows.h 大于号,小于号都不见了
此dll不是之前那个dll. 之前那个SDK确认了是用不了的, 庆幸的是我找到了我这一款的dll和API.
Java:
public class Example {
public interface DeviceTest extends Library {
DeviceTest INSTANCE = (DeviceTest) Native.loadLibrary("XX",DeviceTest.class);
//打开端口
long YY(String zPort);
}
//测试开始
public static void main(String[] args) {
long resultYY = DeviceTest.INSTANCE.YY("USB1");
if (resultYY > 0) {
System.out.println("设备打开成功, 句柄值" + resultYY);
}
}
}
运行结果:设备打开成功, 句柄值1228
C++:
// 源文件 XXWrapper.cpp
#include
#include
#include "XXWrapper.h"
// 加载DLL并获取YY函数的地址
DeviceOpenFunc LoadAndGetDeviceOpenFunc() {
// 加载DLL
HMODULE hDLL = LoadLibraryA("XX.dll");
if (hDLL == nullptr) {
std::cerr << "Error loading DLL: XX.dll" << std::endl;
return nullptr;
}
// 获取YY函数的地址
DeviceOpenFunc deviceOpenFunc = (DeviceOpenFunc)GetProcAddress(hDLL, "YY");
if (deviceOpenFunc == nullptr) {
std::cerr << "Error getting function address: YY" << std::endl;
FreeLibrary(hDLL);
return nullptr;
}
return deviceOpenFunc;
}
// 释放DLL
void FreeDeviceOpenFunc(HMODULE hDLL) {
FreeLibrary(hDLL);
}
int main() {
// 加载DLL并获取YY函数的地址
DeviceOpenFunc deviceOpen = LoadAndGetDeviceOpenFunc();
if (deviceOpen == nullptr) {
std::cerr << "Failed to load and get function address." << std::endl;
return 1;
}
// 调用YY函数
const char* zPort = "USB1"; // 替换为你的端口号
long status = deviceOpen(const_cast(zPort));
// 检查返回值
if (status > 0) {
std::cout << "Device successfully opened on port: " << zPort << std::endl;
}
else {
std::cout << "Failed to open device on port: " << zPort
<< ", error code: " << status << std::endl;
}
// 释放DLL
HMODULE hDLL = GetModuleHandleA("XX.dll");
if (hDLL) {
FreeDeviceOpenFunc(hDLL);
}
return 0;
}
运行结果成功
返回空
谢谢大老,完美解决了
谢谢分享
感谢分享。请教大神,想把服务端改成手机扫描枪的电脑端。改MsgBox, % newTcp.recvText()为SendInput % newTcp.recvText()"{Enter}" ,删除ExitAPP。手机扫描枪app连接192.168.1.* 12345成功,扫第一个条码能正常接收并输出到光标处,后续再扫描的就不能输出了,手机app断开再连接,依然只输出第一个条码。请大神指点迷津,非常感谢!
努力学习,感谢分享