我需要修复一些包装了flexlm 11的遗留代码。这些代码显然可以在早期的flexlm版本中工作,并且在版本11中的LM_BORROW_STAT中肯定有一些变化。
该代码使用检索借用的许可证
lc_get_attr(_jobData->_job, LM_A_BORROW_STAT, (short*) &pBorrowStatus)在LM_BORROW_STAT结构中返回,如下所示:
typedef struct _lm_borrow_stat {
struct _lm_borrow_stat *next;
char feature[MAX_FEATURE_LEN+1];
char vendor[MAX_VENDOR_NAME + 1];
time_t start;
time_t end;
char code[MAX_CRYPT_LEN + 1];
int borrow_binary_id;
} LM_BORROW_STAT;问题是结束日期总是返回0 --特性、供应商和开始日期正常工作,所以LM_BORROW_STAT end的结构或定义一定有什么变化。我知道结束日期正确地存储在借用的许可证中,因为flexlm认为许可证是有效的。
由于flexlm将过期的借用许可证保存在注册表中,并在枚举时返回它们,因此我需要访问结束日期来查看哪些借用的许可证仍然有效和可用。
不幸的是,我找不到任何flexlm 11的开发人员/API参考资料。
有没有人知道读取flexlm 11借用许可的结束日期的正确方法,或者只是检索有效/未过期的借用许可?
发布于 2015-11-02 22:35:03
从版本11开始,FlexLM应用程序接口似乎确实发生了变化。
由于我也没有找到版本11的文档(Flexera文档区有完全不同的东西?),我只能告诉你,结构和end中似乎有两个新值。
typedef struct _lm_borrow_stat {
struct _lm_borrow_stat *next;
char feature[MAX_FEATURE_LEN+1];
char vendor[MAX_VENDOR_NAME + 1];
time_t start;
long new_var_1;
time_t end;
long new_var_2;
char code[MAX_CRYPT_LEN + 1];
int borrow_binary_id;
} LM_BORROW_STAT;在我看来,这固定了end的值,这也意味着,在后台,他们直接从内存中读取这个结构。
https://stackoverflow.com/questions/27187310
复制相似问题