• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 奇怪的问题,ATL开发COM组件时如何产生随机数,用rand在Release模式下出错

奇怪的问题,ATL开发COM组件时如何产生随机数,用rand在Release模式下出错

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 奇怪的问题,ATL开发COM组件时如何产生随机数,用rand在Release模式下出错等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 奇怪的问题,ATL开发COM组件时如何产生随机数,用rand在Release模式下出错
描述:

这两天在写一个组件,是个DLL,不支持MFC,我想要产生随机数,用了rand()这个函数,在Debug模式下一切OK,但是我使用Release模式时确出错了,
LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
ReleaseMinSize/Calc.dll : fatal error LNK1120: 1 unresolved externals
说是无法解析这个外部标识,
我查了一下MSDN,发现rand()是在stdlib.h中声明的,我把这个文件包含进来还是出错,
MSDN中关于rand()函数还有这个说明:
Libraries
All versions of the C run-time libraries.
这是不是说使用这个函数需要C run-time libraries?有什么帮助没有。
各位大侠,有什么办法解决这个问题,怎样在ATL使用产生随机数的函数啊?


解决方案1:

将Project   Release设置中的预定义_ATL_MIN_CRT去掉就可以了 
原因
在使用 ATL 时,您可能希望达到的两个目标是: 
最大限度地减小图像的大小 
最大限度地减少对运行时 DLL 的依赖 
然而,可能需要利用 CRT 提供的某些函数。由于静态链接会增加图像大小,而动态链接使您依赖于运行时 DLL,因此使用 CRT 可能使您达不到这些使用 ATL 的主要目标。
为了帮助解决这个两难局面,ATL 提供了一个解决方案,即 _ATL_MIN_CRT 宏。通过将常规属性选项“在 ATL 中最小使用 CRT”设置为“是”可激活 _ATL_MIN_CRT 宏,这个宏为许多本来需要 CRT 启动代码的公共 CRT 函数提供了替换实现。
记住,使用 _ATL_MIN_CRT 宏并不能保证不需要 CRT 函数。如果使用的函数需要 CRT 启动代码才能正常运行,则将得到下列链接器错误:
LIBCMT.LIB(crt0.obj) : error LNK2001: unresolved external symbol _main
提供自己的 _main 实现并不能解决这个问题:必须消除对需要 CRT 启动代码的函数的依赖,或者必须在图像中静态链接启动代码或动态链接到 CRT。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 奇怪的问题为什么我更新了控件,可是我原来的应该程序没有办法看到新的方法?
  • 奇怪的问题,ATL开发COM组件时如何产生随机数,用rand在Release模式下出错
  • 奇怪的问题,ATL开发COM组件时如何产生随机数,用rand在Release模式下出错

相关文章

  • 2017-06-05 调了IHTMLTxtRange的execCommand后怎么去除高亮啊
  • 2017-06-04 有关复制接口的问题?
  • 2017-06-05 如何导出DLL中的对话框资源?
  • 2017-06-05 有关dll和smtp的一些问题,高手们帮忙啊!
  • 2017-06-04 asp中调用com报一个错误“不能运行进程外组件”,请问如何处理,大侠们帮忙啦?
  • 2017-06-04 我看了一下有关com的介绍!觉得一头雾水,能不能推荐几本初学者的好书!
  • 2017-06-04 一个新新手关于WTL中类定义的一个白痴问题!
  • 2017-06-04 建立的应用程序,在其他机器上不能正常运行!急死我了!!!
  • 2017-06-05 VB6调用VC写的常规DLL会退出
  • 2017-06-05 为什么dll连接会出错?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何防止进程在任务管理器中被终止
    • 多线程的简单问题,高手帮忙!
    • 利用vc如何取得word文档中多个表格中的第二个?
    • 请问用ATL写的程序,在win98下面需要些什么文件支持?
    • VC操作excel问题~
    • 关于连接点实现的问题(IDispEventImpl),大虾帮忙啊
    • 简单问题,有源码,怎么解除4k限制
    • UI自动化指的都是什么呢?哪位大侠能给具几个实例呢。想自动化里的控件的操作,是鼠标在自己移动的点么。
    • word中的TextBox
    • 请问能不能把一个基于模版的类写进com?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有