Offline voice dictation into
In LabVIEW use the pointer
Objective: passing an initialization C strings, the DLL after operation, this string is rewritten to obtain valid information, the text speech recognition. Or you need to use XNode ? LXY A: The need
1 , DLL function declaration int LVmain (char ** OutInfo)
2 , the function calling convention needs to be consistent - __cdecl (/ Gd)
3 , using the pointer parameter passed into labview is not enough, can not be achieved similar to C pass address language function in C language, corresponding to the string pass pass pointers from pointer memory location may be a data manipulation functions. Thereby realizing C language function "Return" to return the value of the plurality of parameters other than. But this operation in labview is not going to work.
4、解决办法是传入一个数值指针int*,这个指针即将需要存储的是指向字符串的指针,char** 。在DLL函数中实际上是产生了一个指向字符串的地址(指针的指针),labview调用库函数节点将此传出,再使用一个XNODE(此节点由国外团队二次开发),解引用指针(解引用这个指针的指针),指定参数类型(字符串),得到结果。
修改DLL函数声明
修改DLL函数声明需至少在两个文件中修改:1)CreateDll.cpp 2)CreateDll.h
项目设置
1)打开Microsoft Visual Studio 2010,选择文件->新建->新建项目。
图一
2)选择Visual C++ ->Win32->Win32控制台应用程序,输入项目名称,然后点击确定键。
图二
3)点击下一步。
图三
4)附加选项选择“空项目”,应用程序类型选择“控制台应用程序”,然后点击完成。
图四
图五
5)鼠标右键点击“源文件”,点击添加->新建项。
图六
6)选择“代码”,输入后缀名为.c的名称,例如“main.c”,点击添加。
图七
7)代码请参考SDK/Windows_SDK/samples下的语音示例。
图八
8)将科大讯飞语音SDK中bin,include,libs文件复制到Demo文件夹下。
图九
3 导入头文件
1)鼠标右键点击Demo项目,选择属性。
图十
2)点击C/C++->常规->附加包含目录,输入相对于工程文件Demo.vcxproj的相对路径,即相对于$(ProjectDir)的路径。
图十一
图十二
4 加载msc.dll
1)加载msc.lib文件:在main.c文件中输入如下图所示代码。(注意:加载路径输入相对于工程文件的相对路径)
图十三
2)将msc.dll所在目录设置为工作目录,即“$(ProjectDir)..\bin\”。
图十四
5 打印日志
运行程序后,bin/msc文件夹下会生成日志。(注意:msc文件夹下需有msc.cfg文件)
图十五
6 运行可执行文件
1)通过属性设置,将可执行文件copy到bin目录下运行,否则会报如图16错误。
图十六
图十七
2)点击“命令行”后边的下拉框,选择“编辑”。
图十八
3)输入“copy $(TargetPath) $(ProjectDir)..\bin\”。
图十九
Inserted from <http://www.xfyun.cn/default/doccenter/doccenterInner?itemTitle=d2luZG93cw==>
23108的真正原因-离线听写服务还没发布