4

我之前关于同一个项目的问题:。没有必要阅读它们;只知道我正在尝试在 Visual C++ 项目中使用本机 C++ SDK。这比我最初想象的要棘手得多,但是这个关于使用托管代码扩展本机 C++ 项目的网站已经对我有很大帮助。

根据最后一个链接的说明,我已将一个表单添加到我的本机 C++ 项目中,该项目已自动将项目转换为 CLR 项目。不过,只有MainForm.cppand Interface.cpp(允许本地 C++ 代码创建和显示 MainForm 的文件)是用/clr标志编译的;其他文件保持原生。

我现在遇到的问题是 Visual Studio 似乎无法识别MainForm.h. 因此,在以下几行中:

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

这个词System总是用红色下划线,有相应的错误:

error C2653: 'System' is not a class or a namespace name

对于每一行。

它也不识别单词gcnew和其他应该在 CLR 中毫不费力地工作的东西。

谁能告诉我我可能做错了什么?我的猜测是它非常小。一些我忘记更改的标志,缺少参考或类似的东西,但我就是不知道它是什么。

4

1 回答 1

4

你在哪里包括MainForm.h- 直接和间接?
如果您包含MainForm.hin Interface.h,则您也将其间接包含在您包含的任何位置Interface.h。这意味着,如果您随后在Interface.h任何未使用./clrnamespace Systemgcnew

因此,您应该MainForm.h只在.in 中包含Interface.cpp和使用前向声明Interface.h

于 2013-04-02T12:05:23.147 回答