VS2005上使用ACE

原创 2007年09月26日 17:02:00
昨天在VS2005上编译了ACE,在ACE_Wrappers/lib下面得到了ACE.dll, ACE.lib, ACEd.dll,
ACEd.lib这些文件,环境变量和各种路径应该设置的没问题,编译了一个例子,结果出了很多两种风格的警告(这个程序在linux下面一点问题也没有,甚至没有警告,但现在公司要求要弄到windows上):
(1)
D:/ACE_wrappers/ace/OS_NS_string.inl(110) : warning C4996: 'strcat'
was declared deprecated
     C:/Program Files/Microsoft Visual Studio 8/VC/include
/string.h(78) : see declaration of 'strcat'
     Message: 'This function or variable may be unsafe. Consider using
strcat_s instead. To disable deprecation, use
_CRT_SECURE_NO_DEPRECATE. See online help for details.'
(2)
D:/ACE_wrappers/ace/OS_NS_string.inl(222) : warning C4996: 'strdup'
was declared deprecated
     C:/Program Files/Microsoft Visual Studio 8/VC/include
/string.h(205) : see declaration of 'strdup'
     Message: 'The POSIX name for this item is deprecated. Instead,
use the ISO C++ conformant name: _strdup. See online help for
details.'
经过我google,baidu,group请教,原来这两个警告是无害的。这两个警告都是暗示涉及的函数可能会出现缓冲溢出。2005的编译器比之前的都更加严格,针对缓冲溢出,做了不少改进,2005中的一些函数,如 sprintf都建议使用 sprintf_s一类的来进行缓冲区溢出的保护.这跟ACE中相关的实现有关系,但ACE中并没有处理这些问题。
还遇到一个问题,看见google上很多人遇到过,就是UNICODE和非UNICODE问题,这需要再编译ACE的之前,在config.h中定义:
#define ACE_USE_WCHAR
#define ACE_HAS_WCHAR
并且在主程序中,不能再使用int main(int, char*[])方式,必须使用int ACE_TMAIN(int, ACE_TCHAR*[])。如果一定要使用前者,那么一定要记得在main中调用ACE::init() 和ACE::fini(),否则就会出现一个很莫名其妙的问题。具体的原因可以参考APG中关于宽字符的讲解。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ACE在VS2005和linux编译

1 下载ACE http://download.dre.vanderbilt.edu/ 下载ACE-6.0.5.zip,解压到到E:\learn\GNU_source\目录下,生产一个文件夹E:\le...

VS2005编译ACE

ACE的安装ACE的安装是一件比较麻烦的事情,这里简单的记录了我在VS2005下安装ACE的过程,希望能给大家一个参考。 安装环境: 操作系统:Windows XP 专业版 编译环境:VS2005中文...
  • sky04
  • sky04
  • 2011-01-04 11:10
  • 1033

使用VS2005做效能分析

下面通过一个简单的例子来讲解VS2005是如何做效能分析的。 1、编写一个排序程序 程序代码如下(采用冒泡排序算法): using System; using System.Collectio...

在 VS2005 下使用 CppUnit 的准备工作

在网上找了很多关于在 VS2005 下使用 CppUnit 的方法的文章,都不如意(要么针对的 VC 的版本太老,要么就是不详细),因此经过几番摸索,总算找到了一种方法。小结一下,备忘。 分为以...

android 调试NDK的C++代码 使用VisualGDB+VS2005

我们有项目,由于跨平台需要,部分模块使用C++开发,做成so库给android上层调用,这部分C++代码,在手机环境的调试一直不方便,不能直接打断点看变量调试,只能靠log输出定位问题,效率底下 ...
  • cz666
  • cz666
  • 2017-07-13 16:05
  • 104

VS2005(VC8) 使用 Boost

VS2005(VC8) 使用 Boost 2008-10-10 14:53:02 转自:http://chuiwenchiu.spaces.live.com/blog/cn...

使用VS2005编译freetype的动态链接库--我加了一些错误修改的记录

转载的 使用VS2005编译freetype的动态链接库 我加了一些错误修改的记录。所以,算是原创吧。(*^__^*) 嘻嘻…… 使用freetype是2.3.8版本,freetype2.3.8包解...

VS2005中BackgroundWorker组件的使用经验

在VS2005中添加了BackgroundWorker组件,该组件在多线程编程方面使用起来非常方便,然而在开始时由于没有搞清楚它的使用机制,走了不少的弯路,现在把我在使用它的过程中的经验与诸位分享一下...

初学者VS2005 .Net WebService使用(二)- 调用WebService三步曲

友情提醒:本人是.Net 菜鸟,觉得学习一项新技能不容易,所以把所学到的东西跟大家分享,如果中间有错误,还请指正。                &...

关于使用VS2005编译时出现的错误

>D:\DevelopPlatform\Microsoft Visual Studio 8\VC\include\iosfwd(34) : error C2146: 语法错误 : 缺少“;”(在标识符...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)