内河码头 无法从'UnicodeString'投射到'unsigned char *'
Embarcadero Cannot cast from 'UnicodeString' to 'unsigned char *'
我正在使用Embarcadero的c++构建器XE
String command1 = "FREQ ";
String command2 = " Mhzn";
int index = Form1->ListBox1->ItemIndex;
String full = command1.operator +=(IntToStr((index+2)*10)).operator +=(command2);
TcpClient1->SendBuf((BYTE*)full,13,0);Sleep(30);
在最后一行我得到E2031无法从'UnicodeString'转换为'unsigned char*'
我发送的是我的设备(接收器)的命令,格式为(command, lenght_of_command)。当我把它发送到plan文本中,比如
TcpClient1->SendBuf((BYTE*)"FREQ 330.5 MHzn",15,0);Sleep(30);
一切正常。非常感谢您的帮助。
String
映射到XE中的UnicodeString
。修复代码的最简单方法是使用AnsiString
代替(并停止使用+=
操作符,因为您没有正确使用它):
AnsiString command1 = "FREQ ";
AnsiString command2 = " Mhzn";
int index = Form1->ListBox1->ItemIndex;
AnsiString full = command1 + IntToStr((index+2)*10) + command2;
TcpClient1->SendBuf((BYTE*)full.c_str(),full.Length(),0);
Sleep(30);
另外:
int index = Form1->ListBox1->ItemIndex;
AnsiString full;
full.sprintf("FREQ %d Mhzn", (index+2)*10);
TcpClient1->SendBuf((BYTE*)full.c_str(),full.Length(),0);
Sleep(30);
我就用sprintf
char command[999];
sprintf(command, "FREQ %d MHzn", (index+2)*10);
TcpClient1->SendBuf((BYTE*)command,strlen(command),0);
Sleep(30);
相关文章:
- 如何使用多次 memcpy 转换回 std::vector<unsigned char>?
- 错误:从'void*'到'const uint8_t* {aka const unsigned char*}'的转换无效 [-允许]
- C++ - 从 "int" 到 "unsigned char" 的缩小转换无效
- 让 'std::vector<unsigned char>' 从 'std::string' 中窃取内存
- 使用外部变量会导致"unsigned char"错误LNK2001
- CPPrestsdk (Casablanca) JSON 值到 std::vector<unsigned char>
- memcpy unsigned char to int
- 有没有办法将 vector<unsigned char> 插入 postgresql 表中,具有 bytea 属性,没有 UTF8 编码错误?
- 将数据从 vector<unsigned char> 传输到无符号 char[]
- 如何修复此 OpenCV 错误:断言失败((无符号)i < (无符号)cn) 在 cv::Vec<unsigned char,3>:::运算符 (), 文件
- 你什么时候会使用"signed char"而不是"unsigned char"?
- 错误:初始化时无法将'const unsigned char (*)[7]'转换为'const unsigned char (*)[]'
- 如何将std :: string传递到C 中的const unsigned char **
- 类型 "unsigned char *" 的参数与类型 "const char *" 的参数不兼容
- C 如何在功能调用中从char *转换为unsigned char *
- 从'byte* {aka unsigned char*}'到'dword {aka长unsigned int}'失去精度
- 'unsigned short var'与'unsigned char var [2]' C++
- C++ cast char * to unsigned char
- CORBA IDL to C++ - char vs. unsigned char?
- Arduino:未定义的对"I2CRW::readByte(unsigned char, unsigned char)"的引用