问个关于编译器使用MD模式以及共享DLL下使用MFC的问题

machealx 2015-01-24 10:14:26
今天写了一个软件,然后使用 在静态库中使用 MFC模式编译Release 生成大小300多KB左右,然后拿到一个WINXP系统上,无法打开。疑惑了,静态库中使用MFC不是可以打开的吗?打开之后如下图所示(因为测试我就直接使用生成默认程序来测试了)

于是在代码优化那里看到了运行时库有一个选择,我便选择了多线程调试(/MTd) 这样生成的大小大概是700多KB左右。然后就可以正常打开了。觉得有点奇怪。于是我就继续研究了一下。

看到网上有人说了一句这样的话:/MD和/MDd将是潮流所趋,/ML和/MLd方式请及时放弃,/MT和/MTd在非必要时最好也不要采用了

好像MD很叼的样子,于是我就试试MD的运行时库试试,结果不让我编译,看看那段出错英文,懂了,要求是在共享 DLL 中使用 MFC ,那就设置一下呗。生成的大小是:57KB左右,看到这,我就觉得放到别人的机器上肯定打不开的,但是还是试试。结果竟然打开了。

我就觉得很不可思议,然后我看了一下那台机器上是安装了VC2008 VC2005之类的库,难道是因为这个原因吗?如下图所示。


那这样是不是意味着,只要客户电脑上安装了这些库,我就可以共享DLL中使用MFC并且设置为MD就好了?
...全文
297 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑刀夜 2018-08-17
  • 打赏
  • 举报
回复
楼主这个问题琢磨清楚了吗?
lx624909677 2015-01-27
  • 打赏
  • 举报
回复
没有编译器的环境下打不开?那直接静态编译下。
machealx 2015-01-27
  • 打赏
  • 举报
回复
引用 6 楼 lx624909677 的回复:
4中不同的调试的区别,你先看下:http://zhaofuguang.blog.163.com/blog/static/37873303201121645916364/
你也只是感觉,一个程序在有编译器的环境下能打开,在没有编译器的环境下打不开,你觉得可能是软件代码的问题吗?软件我是直接生成的。。。 你说的这个网址我在找这个答案的时候已经看过无数次了 最后还是谢谢你了,也只有你愿意回我这有问题。。哎。。
lx624909677 2015-01-25
  • 打赏
  • 举报
回复
你按f5来调试运行,看看断在哪里
lx624909677 2015-01-25
  • 打赏
  • 举报
回复
4中不同的调试的区别,你先看下:http://zhaofuguang.blog.163.com/blog/static/37873303201121645916364/
lx624909677 2015-01-25
  • 打赏
  • 举报
回复
我第一次回复的时候给你说了下,那个错误,感觉不应该是因为你说的原因而引起的~!
machealx 2015-01-25
  • 打赏
  • 举报
回复
引用 3 楼 lx624909677 的回复:
你按f5来调试运行,看看断在哪里
我的意思是,本机调试没有任何问题。。。。不知道大大有没有理解我的意思。。。。我在讨论MD模式和共享DLL中使用MFC的问题。。 上面错误出错的截图是在别的计算机上才出现的,而且也说了使用的是什么模式,然后再换到什么模式又怎么怎么样。。。 你是否真的有认真看我说的内容呢?
machealx 2015-01-25
  • 打赏
  • 举报
回复
引用 1 楼 lx624909677 的回复:
你的代码,不管用什么方式编译运行,有能成功的吗?第一个图片报的错误,应该是你代码引起的吧,空指针使用之类的错误
那个报错的是我复制到别的机器上才出错的,在自己机器上编译没出任何问题的,可以执行的。
lx624909677 2015-01-24
  • 打赏
  • 举报
回复
你的代码,不管用什么方式编译运行,有能成功的吗?第一个图片报的错误,应该是你代码引起的吧,空指针使用之类的错误

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧