是的,这是个菜鸟问题……
到目前为止,我的所有项目都在使用Dev-C++,但它已经非常过时了,而且库也在哪里。因此,我打开了我的可视C++副本,并复制了代码。当我编译时,会弹出一百万个错误,就好像我的代码每两行都是狗屎一样。我讨厌从头开始这个项目。
问:为什么Dev-C++和VC++的编译方式不同?我听说他们使用不同的编译器,但仍然是C++。我看到的第一个错误是const char*和std::string之间的无效比较。
不管怎样,有没有办法让VC++对编程不那么严格,就像Dev-C++一样。或者,在Dec-C++和VC++编译器之间有一些我应该知道的主要区别。
大多数错误似乎都与std::string相关,或者是LPCWSTR (我可以自己修复)。
对于这个非常宽泛和无用的话题,我很抱歉,我知道。
-Alex
发布于 2010-08-24 19:53:09
这不会解决所有问题,但可能会有所帮助。
默认情况下,VC++使用unicode,而MinGW (我相信DevCpp基于它)使用ansi。
这可能解释了您关于字符串的问题:您基本上是在传递char*字符串,而大多数函数都需要类似于wchar*的内容。
我建议要么修复代码,使其符合unicode,要么取消定义VC++项目中的UNICODE宏,如果不需要unicode的话。
正如您所说的,您的旧代码是C++,代码也是C++,所以不应该有那么多工作……只要你不依赖于编译器特定的行为。
你能给我们一些严重出错的东西的样本吗?我们也许能更准确地提供帮助。
发布于 2010-08-24 20:09:21
首先,有一些注意事项,因为许多Dev-C++用户感到困惑(我过去也是如此)。
Dev-C++不是编译器。编译器是GCC (或者,更准确地说,是GCC的一个修改版本,这样它就可以在Windows上运行: MinGW)。Dev-C++是一个集成开发环境:一个带有附加按钮的文本编辑器,当单击时,该按钮将使用适当的参数调用MinGW。
没别的了。
Visual Studio也是如此: Visual Studio是集成开发环境,它调用实现VC++的Visual Compiler (vc.exe),这是微软对C++标准的实现。
第二:这不是一个菜鸟问题。您已经发现了可移植性问题,这在C和C++中是一个令人沮丧的领域。StackOverflow上的许多问题都是由于可移植性问题(一个可以在Windows上运行但不能在Linux上运行的代码,等等)。
一般的经验法则是: 1)将编译器的警告级别设置为最大;2)在所有目标平台上并行开发。
希望这能有所帮助。
发布于 2010-08-24 19:52:47
项目设置是否相同?也许您需要链接额外的.libs或添加类似的预处理器指令,就像在Dev-C++中一样。如果您只是将代码复制并粘贴到项目中,那么您实际上是在将项目设置全部重新设置为默认值,这对许多项目来说都会破坏构建。
除此之外,试着在问题中添加你收到的最常见的错误之一,代码行,也许我们可以评论一下。
https://stackoverflow.com/questions/3555938
复制相似问题