MinGw与VC++6.0的区别有那些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MinGw与VC++6.0的区别有那些相关的知识,希望对你有一定的参考价值。

多谢……

(1)对标准的支持不同,MinGW较VC6要好好多;
(2)性能差别。这个没有具体比较过,不过应该vc6要比MinGW要好一点;
(3)库的区别。VC6有一个MFC,而MinGW貌似没有带上MFC,不过听说可以编译MFC,可惜没试过。
(4)库的依赖。MinGW生成的纯Win32程序只对msvcrt.dll有依赖,vc6不太清楚。
(5)MinGW其实只是一个编译环境,没有IDE,当然你也可以装上dev-c++这个用MinGW的IDE。而VC6除了可以编译,本身就带一个功能强大的IDE。
参考技术A (1)对标准的支持不同,MinGW较VC6要好好多;
(2)性能差别。这个没有具体比较过,不过应该vc6要比MinGW要好一点;
(3)库的区别。VC6有一个MFC,而MinGW貌似没有带上MFC,不过听说可以编译MFC,可惜没试过。
(4)库的依赖。MinGW生成的纯Win32程序只对msvcrt.dll有依赖,vc6不太清楚。
参考技术B MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。

里面的各个组件对标准的支持比VC++6.0好不知多少倍。本回答被提问者采纳

VC DLL 中 C++ 符号的 MinGw 未定义符号

【中文标题】VC DLL 中 C++ 符号的 MinGw 未定义符号【英文标题】:MinGw undefined symbol for C++ symbols in VC DLL 【发布时间】:2015-11-16 12:37:51 【问题描述】:

我有一个使用 Microsoft Visual Studio 创建的 DLL。它使用

导出函数和类
__declspec(dllexport)

我能够在另一个用 VS 构建的 DLL 中成功使用这个 DLL。 但是,当我尝试使用 MinGW 编译相同的 DLL 时,我不断收到来自该 DLL 的符号的“未定义引用”错误。 我尝试像这样编译它:

g++ -c App.cpp 
g++ -shared -o Live.dll App.o -lTest 

有人可以提示我缺少什么吗?我的意思是,这应该是可能的吧?

我已经尝试了我在 MinGW 网站上找到的各种方法,但仍无法找出问题所在。

谢谢, 杰拉德

【问题讨论】:

类似:***.com/q/9253606/560648 ***.com/questions/22116343/… 等。 【参考方案1】:

我的意思是,这应该是可能的吧?

错了!

您的 DLL 是使用不同的工具链构建的,具有不同的标准库实现,谁知道还有什么。它们不兼容。

使用相同的工具链构建您项目的所有组件。

【讨论】:

那么这里解释的有关 VC 和 MinGW 库的互操作性的信息 (mingw.org/wiki/msvc_and_mingw_dlls) 仅适用于 C 而不是 C++ 库? @nutrina:没有关于支持thiscall 的内容。尽管从您的问题中不清楚您的调用约定实际上是什么。一个测试用例可能会有所帮助。

以上是关于MinGw与VC++6.0的区别有那些的主要内容,如果未能解决你的问题,请参考以下文章

Visual Mingw

VC++ 6.0当中,CString和string这两种类型有啥区别?

vc++6.0和VC2017区别

vc++ 6.0里面的compile、build、go三个按钮是啥区别?

vc++6.0与opencv怎么建立工程? 希望有详细的步骤,谢谢了!!!!!!

程序移植