【问题标题】:c++ public function syntax errorc++公共函数语法错误
【发布时间】:2009-08-25 01:13:58
【问题描述】:

我正在尝试使用反射器将 c# 转换为 c++。编译、反汇编和重构的代码产生了这个错误:

1>c:\users\user\documents\visual 工作室 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : 错误 C2059: 语法错误: 'public'

1>c:\users\user\documents\visual 工作室 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : 错误 C2143: 语法错误: 缺失 ';'在'{'之前

1>c:\users\user\documents\visual 工作室 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : 错误 C2447: '{' : 缺少函数 header(旧式正式列表?)

由于我不熟悉 C++ 语法,我不能 100% 确定从哪里开始处理这些错误。我尝试的第一件事是删除所有复杂的代码,让整个事情(它是命名空间中的一个类)只是一个 cout

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

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

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

sn-p:

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++ 的错误吗?

【问题讨论】:

  • 你能列出生成的 C++ 的 sn-p 吗?这听起来很简单。

标签: c# c++ reflector code-translation


【解决方案1】:

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

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

一般来说,这意味着您需要完全重新构建您的应用程序 - 至少是它的展示方面。我通常的经验法则是不要打扰这样做 - 你有一个工作的应用程序,只需保留它。

【讨论】:

  • +1 是的,看起来您的工具旨在转换为 C++/CLI,而不是非托管 C++。
猜你喜欢
  • 2017-06-15
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 2020-01-13
  • 2014-03-06
  • 2014-04-13
相关资源
最近更新 更多