【问题标题】:Porting from Visual Studio Application to Qt Application从 Visual Studio 应用程序移植到 Qt 应用程序
【发布时间】:2016-08-13 05:31:38
【问题描述】:

我有一个项目,其 .SLN 文件在那里,我们能够在 Visual Studio 2008 上运行该项目,并且我们在其中添加了我们在项目中使用的 qt 扩展。

我尝试使用以下链接创建 .pro 和 pri: Converting .Sln Project to .pro Project

我可以看到相关的库并设法添加所需的文件。但是代码对 VS 来说太具体了。

我遇到了类似的问题:

1) 无法从 TCHAR 转换为 Const Char*

2)cc1plus.exe:错误:找到一个或多个PCH文件,但它们无效

3)cc1plus.exe:错误:使用 -Winvalid-pch 获取更多信息

4)cc1plus.exe: 致命错误: release\StdAfx.h: No such file or directory

5) 错误:C 函数 'int WinMain(HINSTANCE, HINSTANCE, LPTSTR, int)' 的声明冲突 int _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)

从这些我得出的结论是代码更特定于 Visual Studio。

我正在使用以下工具,如果我没有使用正确的版本,请纠正我:

1)Qt Creator 3.6.1 基于 Qt 5.6.0 (MSVC 2013, 32 bit)

是否有任何特定方法可以将代码从 VS2008 移植到 Qt 5.6 或 5.7。

【问题讨论】:

  • 请编辑问题以包含.pro 文件的内容。

标签: c++ qt visual-studio-2013


【解决方案1】:

您已经做的——我猜——是将 Visual Studio 项目文件迁移到 Qt 文件。但是,如果你想完全迁移到 Qt 并编写一个跨平台的应用程序,你应该将所有 MFC 特定的代码替换为 Qt,这是非常不同的。例如 WinMain 是(如预期的那样)特定于 windows:你应该有一个简单的 main。在那里,您需要定义一个 QApplication,等等...

我的建议可能是从一些小型 Qt 示例开始,然后再进行全面迁移。然后,如果遇到困难,您可以向 stackoverflow 提出更具体的问题。

【讨论】:

    【解决方案2】:

    使用 MSVC 编译器可以解决问题!!!!

    【讨论】:

      【解决方案3】:

      这只是琐事。

      在 Unicode 联盟完成其工作之前,Microsoft 过早地试图将国际字符引入 Windows,并让一切变得混乱。因此,Windows 函数可以将字符串作为各种东西传递,纯 ascii、w_chars、TCHARS 等等。你需要让一切保持一致。每个接受字符串的 Windows 函数都有两种形式,A 代表 ascii 或 W 代表宽。 您需要使所有内容保持一致并确保功能获得正确的形式。这可能涉及插入一些粘合函数来将字符串从宽转换为 ascii 并返回。

      没有什么大错特错,但这是一份工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-18
        • 2018-10-11
        • 2015-01-19
        相关资源
        最近更新 更多