1

很抱歉,如果这个问题已经得到解答,但我找不到。

我试图在调用 C++ 程序中的函数时打开 C# 表单(主程序在 C++-cli 中,表单在 C# 中,它是一个空表单,只是为了尝试它的工作原理)。我正在使用 Visual Studio 2005,我的解决方案中有两个项目。C# 项目只是一个表单,我已将其配置为类库。但是,当我转到 C++ 程序的函数时,我会在开头键入以下内容:

int _stdcall Init(void)
{
...
FormProject::Form1 form1;
form1 = new FormProject::Form1::Form1();
form1.something();
...
}

我在 C++ 方面的经验很少,我尝试过不同的组合,但我很不幸。C++ 项目已与 CLI 兼容。我已经包括了所需的:

#using <System.Windows.Forms.dll>
#using <System.dll>

我知道有一些大错误,但我只需要运行此表单,不再需要。非常感谢你。

编辑:我已经添加了参考。

4

3 回答 3

3

C++/CLI 项目需要添加对 C# 项目的引用,然后才能在 C# 库中使用类型。

于 2009-02-20T15:27:11.387 回答
3

如果我理解你,我认为你需要使用 C++/CLI 的语法增强来实例化 C# 对象。例如,您发布的代码应该是:

FormProject::Form1^ form1;
form1 = gcnew FormProject::Form1::Form1();  // or FormProject::Form1()
form1->something();

我建议您在托管 C++ 中创建一个新的 WinForms 项目,然后查看生成的代码以了解正确的语法。

于 2009-02-20T15:30:37.993 回答
0

您是否在 C++ 项目中添加了对 FormProject 的引用?如果您已经这样做了,您是否为 FormProject 命名空间包含了 #using 语句?

于 2009-02-20T15:27:16.270 回答