我目前正在处理一个项目,该项目需要将Code128条形码输出到QRP。这是一个从TD 4.1移植而来的旧项目,它以前使用的barcode.dll无法与6.3一起正常工作。
由于我找不到可以工作的DLL,我决定尝试使用Sample Vault中的Code128bWin项目(https://samples.tdcommunity.net/index.php?dir=&file=Code128bWin.zip(。现在,问题是,那里使用的函数可以很好地生成条形码,但它们不可扫描,我不知道为什么。
我还是团队开发人员的新手,所以也许问题完全显而易见,我只是没有看到它,或者也许有一种更简单的方法来生成条形码,但我已经在这个问题上困扰了好几天,但一无所获。
如果有任何帮助,我将不胜感激。
从显而易见的开始-您是否尝试过"barbarcode.dll"的UNICODE版本,因为TD6.3是基于UNICODE的,或者您现有的版本符合UNICODE,但"工作不正常",因为您没有在api调用中将TD字符串参数和缓冲区大小更改为UNICODE
例如String:LPSTR变为String:LPWSTR,并且在api调用将分配20个字节的存储之前还要记住SalSetBufferLength(20(,但要注意,其中2个字节将用作null终止符。因此,要发送/接收条形码字符串'*4>HR\fpzg',您需要为缓冲区提供22字节的存储空间。这可能是您现有dll无法正常工作的原因。