31. CVI中如何使用UDP协议?
答:CVI中没有带有关于UDP协议的fp文件,需要使用winsock来写。
32. CVI下如何编写多线程程序?
答:可以使用函数模版中的Utility Library目录下的函数,首先用CmtNewThreadPool (int Maximum_Number_of_Threads, int *Pool_Handle)函数创建一个线程池(也可以使用程序默认的线程池),然后使用CmtScheduleThreadPoolFunction (int Pool_Handle, ThreadFunctionPtr Thread_Function, void *Thread_Function_Data, int *Thread_Function_ID)函数来指定每个线程的回调函数,以实现不同的操作。最后,记住一定要在结束程序的时候调用CmtDiscardThreadPool (int Pool_Handle)函数释放这些线程的系统资源。
33. 在LabWindows/CVI中如何将自己编写的函数放在函数模版中,使它可以像函数模版中原有的函数那样使用?
答:先新建一个Function Tree,然后在这个Function Tree下新建一个Instrument,并在这个Instrument下建立函数分类(将函数分类管理),再建立一个Function Panel,在上面添加输入输出控件和帮助信息,(如果这个函数没有使用到数采硬件,那么在Option下面将IVI/VXIplug&play Style前的勾去掉)然后选择Tools下的Generate New Source for Fuction Tree,最后只要在自动生成的*.c文件中添加函数的代码并保存,然后就可以像函数面板中的其他函数一样调用了。(下次使用LabWindows/CVI时需要重新载入)
34. 在没有.LIB和.H文件时,CVI怎么调用DLL?
答:使用SDK中的LoadLibary和GetProcAddress以及FreeLibrary可以实现动态DLL的调用。
35. CVI可以做不规则界面吗?
答:这是可以的,可以使用SDK函数实现,VC等编程语言实际上是使用SDK封装后的函数,使用SDK函数编程比较麻烦。