gpt4 book ai didi

c# - C++公共(public)函数语法错误

转载 作者:行者123 更新时间:2023-11-27 23:34:53 25 4
gpt4 key购买 nike

我正在尝试使用反射器将 C# 转换为 C++。编译、反汇编和重构代码生成此错误:

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : error C2059: syntax error : 'public'

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : error C2143: syntax error : missing ';' before '{'

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : error C2447: '{' : missing function header (old-style formal list?)

由于我不熟悉 C++ 语法,所以我不能 100% 确定从哪里开始处理这些错误。我尝试的第一件事是删除所有复杂的代码,让整个代码(它是命名空间中的一个类)只是一个 cout << "test";在命名空间和类中。删除了“ref”关键字,它删除了最重要的错误(这会导致一百万个新错误,所有功能都已到位),但随后被告知如果使用 clr 标志编译,则只能使用 namespace ,这会在某种程度上破坏我正在尝试做的事情。

谁能推荐一条我可以低头着手的测试路径?否则,谁能推荐一种更好的方法将 windows.form c# 程序转换为非托管 c++?我应该自己做吗? (无论如何,我最终还是想这样做,但是拥有这该死的东西并能够浏览并快速看到差异将是一个巨大的帮助,我需要尽快为自己准备这个程序)。

非常感谢您提供的任何帮助、建议或指导。

我理解演示方面的困难,实际上我并不期望它会起作用,我只是出于梦想的希望而问。但是,我想翻译一下最初是控制台应用程序的应用程序的“后端”。我只是将其作为类文件添加到我的 Windows 窗体设计中。仅仅这个类就有1000行左右。

片段:

public ref class RProgram {
public:
static System::String ^KeywordsLog = "Keywords.log"; // WHERE THE PROGRAM KEEPS ITS LOG

// classes. . . functions. . . the errors are reported on the first lines

};

为此,我明白了,并承认我认为那是不可能的,但是有人可以帮助我解决阻止其编译为托管 c++ 的错误吗?

最佳答案

将任何合理的复杂 Windows 窗体 应用程序从 C# 转换为非托管 C++ 会非常困难。

您将无权访问任何 .NET 框架库,这意味着没有 Windows 窗体。您需要为窗口选择不同的 API,例如 MFC。

一般来说,这意味着您需要完全重新构建您的应用程序 - 至少是它的表示方面。我的一般经验是不要费心这样做 - 你有一个可以工作的应用程序,只需保留它即可。

关于c# - C++公共(public)函数语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1325579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com