msclr 未被使用
msclr is not being used
因此,出于某种原因,我认为出于某种原因,msclr 未在运行时使用。这是代码:
#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>
#include "stdafx.h"
using namespace System;
using namespace msclr::interop;
int main()
{
const char* message = "Test String to Marshal";
String^ result;
result = marshal_as<String^>(message);
return 0;
}
我收到此错误:"C2653: 'msclr' : is not a class or namespace name" 这根本没有任何意义。令我感到困惑的是,不仅是我的电脑,还有我尝试使用 msclr 的任何其他电脑。此外,visual studio 没有强调任何内容,因此 IDE 可以清楚地识别名称空间。有人可以帮我吗?显然,header 的位置正确,正如许多网站所说的那样。提前致谢。
当我在我的机器上构建它时,显示的第一个错误是您提到的 C2653 错误。但是,它还会显示一些触及问题核心的警告。我收到的第一个警告是:
warning C4627: '#include <stdlib.h>': skipped when looking for precompiled header use.
使用预编译的 header 时,.cpp
文件中的第一行是
非常重要
#include "stdafx.h"
一旦我将该行作为 .cpp
文件的第一行,所有内容都会正确编译。
因此,出于某种原因,我认为出于某种原因,msclr 未在运行时使用。这是代码:
#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>
#include "stdafx.h"
using namespace System;
using namespace msclr::interop;
int main()
{
const char* message = "Test String to Marshal";
String^ result;
result = marshal_as<String^>(message);
return 0;
}
我收到此错误:"C2653: 'msclr' : is not a class or namespace name" 这根本没有任何意义。令我感到困惑的是,不仅是我的电脑,还有我尝试使用 msclr 的任何其他电脑。此外,visual studio 没有强调任何内容,因此 IDE 可以清楚地识别名称空间。有人可以帮我吗?显然,header 的位置正确,正如许多网站所说的那样。提前致谢。
当我在我的机器上构建它时,显示的第一个错误是您提到的 C2653 错误。但是,它还会显示一些触及问题核心的警告。我收到的第一个警告是:
warning C4627: '#include <stdlib.h>': skipped when looking for precompiled header use.
使用预编译的 header 时,.cpp
文件中的第一行是
#include "stdafx.h"
一旦我将该行作为 .cpp
文件的第一行,所有内容都会正确编译。