C++ VisualStudio2008 WriteFile

C++ VisualStudio2008 WriteFile,c++,windows-ce,C++,Windows Ce,我正在使用VS2008编译和开发我的应用程序。Im需要获取Adc输入,并通过WinCE6操作系统中的RS232在putty或超级终端等终端上进行串行打印。问题是,当我使用WriteFile函数时,它会给我以下错误 Error 3 error C2440: '=' : cannot convert from 'double' to 'char [32]' c:\Users\Sohan\Downloads\uartdemo\uartdemo\src\main.c 137 Sohan_1

我正在使用VS2008编译和开发我的应用程序。Im需要获取Adc输入,并通过WinCE6操作系统中的RS232在putty或超级终端等终端上进行串行打印。问题是,当我使用WriteFile函数时,它会给我以下错误

 Error  3   error C2440: '=' : cannot convert from 'double' to 'char [32]'  c:\Users\Sohan\Downloads\uartdemo\uartdemo\src\main.c   137 Sohan_1
我想从ADC通道获取输入,然后将其转换为电压后,我必须进行传输。我尝试过使用常量字符字符串,但当我从通道获取输入,然后尝试时,它不起作用

HANDLE portHandle;
DWORD noOfBytesRead = 0;
DWORD bytesTransmitted = 0;   
DWORD firstChoice = 0;
BOOL retVal = FALSE;
char c="hello";

char transmit2Buffer[BUFFER_SIZE] = "7.8888v";

char volt[BUFFER_SIZE];
WriteFile(portHandle, transmit2Buffer, strlen(transmit2Buffer), &bytesTransmitted, NULL);

WriteFile(portHandle, volt, strlen(volt), &bytesTransmitted, NULL); 

第一个写函数工作,但第二个不工作。可变电压将不断变化,因此我应该如何编写它。请帮助..

搜索后,我得到了问题的答案。 这对我很有用。。 您可以像将double转换为字符串一样使用sprintf(),但实际上我建议使用_snprintf(),因为sprintf()不考虑字符串是内存中固定长度的设备,如果您不看它,它会溢出_snprintf()允许您指定输出字符串的长度,但请确保指定的大小小于实际分配的内存块,因为如果必须缩短输出,snprintf()不会存储终止的空字符

使用_snprintf()的示例如下:

在一些网站上得到了这个答案

请参阅:
void ToString(char * outStr, int length, double val)

{

_snprintf(outStr,length,"%f",val);

}