最近项目中需要使用NIST搜库功能,奈何手上只有NIST11完整软件包,可以用NIST自带的exe搜库但是如何将搜库功能集成到自己的项目中是一个难题。中间的过程不多说了,简单记录一下技术路线吧。
首先是新建一个C#类库项目。在此项目中调用NIST软件包的DLL,需要摸清整个搜库流程,需要哪些配置、怎么搜,搞清楚输入与输出,再将整个搜库的配置函数、搜库函数封装成方便调用的接口,得到CS的dll;
第二步是新建CLR类库项目。这是因为.net框架下生成的dll文件无法在QT框架下直接使用,需要用CLR项目对C#生成的dll函数库再次封装,得到的dll才能在QT项目中调用。此项目中的难点是CLR语言的使用及参数传递,包括指针、数据、字符串的传递。本步骤即可生成CLR版本的dll;
第三步即可在QT项目中调用CLR版本的dll,跟其他dll的使用方式一样。最终得到了完美效果,见附图。
图1 最终效果
当然在QT平台中调用其他.net库应该也是类似的技术路线,可以参考。