这两天将 barcode 库编译成 dll,测试时 调用 Barcode_Version 函数直接程序跑死。刚开始一直怀疑是我生成的 dll 有问题。后来用自带的 sample.c 测试却没问题。所以肯定是 Barcode_Version 函数出了问题。单步跟进去还真发现这个函数有个重大bug。下面是代码片段,大家一看就明白了。
for (it = PACKAGE_VERSION; it; it++)
/// ^ 这里应该是 *it ,it 不会变为0.
{
没想到 GNU 的代码库还能出这种低级错误。。。