从Visual Studio应用程序移植到Qt应用程序

时间:2016-08-13 05:31:38

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

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

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

我能看到相关的lib并管理添加所需的文件。但该守则对VS来说太具体了。

我正在接受问题:

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

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

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

4)cc1plus.exe:致命错误:发布\ StdAfx.h:没有这样的文件或目录

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位)

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

3 个答案:

答案 0 :(得分:1)

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

我的建议可能是在处理完整的迁移之前先从一些小的Qt样本开始。如果你遇到困难,你可以回过头来讨论stackoverflow的更具体的问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这只是琐事。

微软试图在Unicode联盟完成其工作之前过早地将国际字符引入Windows,并且一切都在扭曲。所以Windows函数可以传递字符串作为各种东西,简单的ascii,w_chars,TCHARS等。你需要让一切都保持一致。每个带字符串的Windows函数都有两种形式,A表示ascii,W表示宽。 您需要使所有内容保持一致,并确保功能正在获得正确的表单。这可能涉及插入一些胶水功能,将字符串从宽变换为ascii和返回。

没有什么不妥,但这是一项工作。