各位大牛们,小弟使用labview的cln模块,调用vs2005生成的dll文件,在wince6.0的系统上运行,运行结果倒是能显示出来,但是,界面几乎没反应,要等好几分钟才能显示出结果。这个问题怎么解决呢?
vs2005的dll代码如下:
// SmartADC.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#include <winioctl.h>
// constants define
#define IOCTL_ADC_START \ CTL_CODE(FILE_DEVICE_UNKNOWN, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) //60???
//全局变量
HANDLE hAdc;
extern "C" __declspec(dllexport) int GetDeviceValue(unsigned int *output)
{
DWORD dwBytesRead;
DWORD convalue;
hAdc = CreateFile(TEXT("ADC1:"),GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); //打开wince的ADC驱动文件
DeviceIoControl (hAdc, IOCTL_ADC_START, NULL, 0, NULL, 0, NULL, NULL); //进行硬件交互
//while(1)
//{
//MessageBox(NULL, _T("2"), _T("2"), MB_OK);
//WaitForSingleObject(hThread, INFINITE);
ReadFile(hAdc, &convalue, sizeof(DWORD), &dwBytesRead, NULL); //读取ADC数据寄存器的值
*output = convalue; //数据能正确读取,也能在控件上显示出来,但是结果要过好长时间才能显示在控件上,并且labview的界面超卡
//}
return TRUE;
}
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
return TRUE;
}
函数功能是,将开发板上的AD采集结果convalue,显示在labview的数值控件上。 小弟在此先谢谢了,各位大牛帮帮小弟吧!