Visual Studio 2008 WriteFile
Visual Studio 2008 WriteFile
我使用VS2008编译和开发我的应用程序。我需要在 WinCE232 操作系统中通过 RS6 输入并通过某些术语(如腻子或超级终端(进行串行打印。问题是当我使用WriteFile函数时,它给了我以下错误。
Error 3 error C2440: '=' : cannot convert from 'double' to 'char [32]' c:UsersSohanDownloadsuartdemouartdemosrcmain.c 137 Sohan_1
我想从ADC通道获取输入,然后将其转换为电压后,我必须传输。我尝试使用常量 char 字符串并且它可以工作,但是当我从通道获取输入然后尝试它不起作用时。
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);
第一个写入函数有效,但第二个不工作。 可变电压会不断变化,所以我应该怎么写。请帮忙。
搜索后,我得到了问题的答案。 这对我有用.. 你可以使用 sprintf(( 就像你所做的那样将双精度转换为字符串,但我实际上建议使用 _snprintf(( 来代替,因为 sprintf(( 没有考虑到字符串是内存中固定长度的设备,如果你不看它会溢出。_snprintf(( 允许您指定 out 字符串的长度,只需确保将大小指定为比实际分配的内存块小 1,因为如果 _snprintf(( 必须缩短输出,它不会存储终止的 null 字符。
我们使用 _snprintf(( 的一个例子是:
void ToString(char * outStr, int length, double val)
{
_snprintf(outStr,length,"%f",val);
}
在某些网站上得到了这个答案!!
相关文章:
- Writefile() 无法写入数据,具体取决于数据的长度
- 枚举和二进制或运算符(MISRA C++ 2008,4-5-2)
- 如何使用Visual Studio 2008将字符串映射到函数?
- 使用 2x1 图块平铺 2xM 数组以最大化差异 - INOI 2008,P2
- MSVC 2008,调试过程,无法调试
- 生成可视C++ 2008 项目时出现链接器错误
- Visual Studio 2008 WriteFile
- VS 2008 和 VS 2017 中静态参数的不同行为
- 要检查 SetFilePointerEx、ReadFile 或 WriteFile 是否成功,我是否需要检查 lpNew
- [WIN API]为什么共享相同的 WriteFile(sync) 和 ReadFile(sync) 句柄会导致 Rea
- Windows WriteFile块即使使用File_flag_overlapped也是如此
- Microsoft Visual Studio 2008,版本9.0.30739.1 SP,DLL构建错误
- 如何在何处获取 MSVS 2008(32 位)编译器工具链的编译器,而无需安装 MSVS2008
- 如何防止Visual Studio 2008 C编译器在发生某些错误时停止?
- VS 2008 和 VS 2017 之间的可视化C++内存管理更改
- upper_bound带有binary_function Visual Studio 2008错误
- 找不到 Visual Studio 2008 的生成工具(平台工具集 = 'v90')
- Winapi WriteFile 函数写入一个字节
- C++ windows.h WriteFile function
- 相当于WindowsServer API for VS 2008编译器