System::String 在 C++/CLI 中没有成员 Length
System::String has no member Length in C++/CLI
我正在 Visual Studio 2017 年使用 C++/CLI 开发一个将 C++ 与 C# 代码连接起来的 DLL。对于该项目,我在 Project -> Properties -> General
中启用了编译器选项“/clr”。我创建了一个 String^
变量,我想读取它的长度,但我无法这样做,因为 IntelliSense 找不到 属性 Length
,而其他大部分System::String
功能可用,如 Clone, Compare, CompareOrdinal
等
在下面的伪代码示例中,我想将 String
复制到缓冲区,但如果其长度超过某个限制则截断。
void copyToBuffer(String^ message, char* f_buffer)
{
if(message->Length > some limit)
truncate...
copy to buffer...
}
编译失败,因为编译器抛出 class "System::String" has no member "Length"
错误,即使我可以轻松导航到对象浏览器中的 Length
属性。
Length is listed in the Object Browser
缺少什么?
将项目构建 属性 从“/permissive-”更改为“/permissive”
我在测试中这样做后,长度 属性 显得很有用。
我正在 Visual Studio 2017 年使用 C++/CLI 开发一个将 C++ 与 C# 代码连接起来的 DLL。对于该项目,我在 Project -> Properties -> General
中启用了编译器选项“/clr”。我创建了一个 String^
变量,我想读取它的长度,但我无法这样做,因为 IntelliSense 找不到 属性 Length
,而其他大部分System::String
功能可用,如 Clone, Compare, CompareOrdinal
等
在下面的伪代码示例中,我想将 String
复制到缓冲区,但如果其长度超过某个限制则截断。
void copyToBuffer(String^ message, char* f_buffer)
{
if(message->Length > some limit)
truncate...
copy to buffer...
}
编译失败,因为编译器抛出 class "System::String" has no member "Length"
错误,即使我可以轻松导航到对象浏览器中的 Length
属性。
Length is listed in the Object Browser
缺少什么?
将项目构建 属性 从“/permissive-”更改为“/permissive” 我在测试中这样做后,长度 属性 显得很有用。