msclr未被使用

时间:2015-06-14 16:35:10

标签: c++-cli clr

因此,出于某种原因,我认为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':不是类或命名空间名称”,根本没有任何意义。令我难以置信的是,不仅是我的电脑,还有我尝试使用msclr的任何其他电脑。此外,visual studio没有强调任何内容,因此IDE可以识别名称空间。有人可以帮帮我吗?显然,标题正确定位,因此很多网站已经说明了这种情况。提前谢谢。

1 个答案:

答案 0 :(得分:5)

当我在我的机器上构建它时,显示的第一个错误是您提到的C2653错误。但是,它也会显示一些警告,这些警告可以解决问题的核心。我收到的第一个警告是:

warning C4627: '#include <stdlib.h>': skipped when looking for precompiled header use.

使用预编译的标头时,.cpp文件中的第一行非常重要

#include "stdafx.h"

一旦我将该行作为.cpp文件的第一行,一切都正确编译。