无法将参数 1 从"cli::array<Type> ^"转换为"无符号短整型"
cannot convert parameter 1 from 'cli::array<Type> ^' to 'unsigned short'
如何创建枚举值数组?我无法摆脱此错误:
无法将参数 1 从"cli::数组 ^"转换为"无符号" 短'
enum class CS_SENSOR_RESULT {
OPERATION_PASSED = 0,
OPERATION_FAILED,
}
array<CS_SENSOR_RESULT>^ GetResults()
{
array<SENSOR_RESULT>^ result = gcnew array<SENSOR_RESULT>(size);
return result[x]=(CS_SENSOR_RESULT)(int)d5->setDoorState(fa, door, left, right); // Here I got error
}
setDoorState 的第一个参数是 unsigned short 类型的标量值,但您正在传递一个数组。这就是编译器告诉你的。我们无法具体告诉您要传递什么,因为我们不知道任何细节,但显然传递数组并不好!
您返回的是单个元素 result[x],而不是数组 result。您需要分配元素,然后返回数组。
result[x] = (CS_SENSOR_RESULT) (int) d5->setDoorState(...);
return result;
我(CS_SENSOR_RESULT)(int)(...)
更改为static_cast<CS_SENSOR_RESULT>(...)
并且它起作用了。以下是完整的代码:
array<CS_SENSOR_RESULT>^ GetResults(int size)
{
array<SENSOR_RESULT>^ result = gcnew array<SENSOR_RESULT>(size);
for(int x=0;x<size;x++)
{
result[x] = gcnew CS_SENSOR_RESULT();
SENSOR_RESULT doorresult= d5->setDoorState(fa, door, left, right);
result[x]=static_cast<CS_SENSOR_RESULT>(doorresult);
}
}
相关文章:
- EASTL矢量<向量<int>>连续的
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 在 QVector<std::unique_ptr 上使用 std::find<Type>>
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 控制到达非空函数clang(-Wreturn-type)的末尾
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- 将系数存储在头文件的数组中("does not name a type"错误)
- 尝试打开 ifstream 时出现"Incomplete type"错误
- 将成员函数作为构造函数参数调用时出错 "Variable is not a type name"
- 在"结构提升::enable_if<提升::is_pod<T>,无效>"中没有名为"type"的类型
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- OpenCV CV_16F type
- C++ "错误:在'类 std::result_of< ... >"中没有名为'type'的类型"
- 将内存分配返回值强制转换为 TYPE 数组
- C++ 一个lambda浅拷贝const Type&如果它被赋予一个命名捕获,如[copy=val](){}?
- reference_wrapper导致"incomplete type is not allowed"
- 继承类时"invalid use of incomplete type ‘class tree_node_t’"
- 由于"error C4430: missing type specifier - int assumed. Note: C++ does not support default-int",我现在无法编
- 如何解决"'mutex' in namespace 'std' does not name a type"?