我有一个工程,VC编译是都要编译自带的标准库中的源文件,请问是怎么回事?

wang1st 2008-05-13 07:17:53
我从网上下了个开源的函数库,这个函数库的头文件是“CPL.h"。
我把这个文件放在我正在工作的工程中的"stdafx.h"中,然后编译,VC居然编译了很多文件,我发现都是VC自己的标准函数库,并且产生了很多错误。
但是我新建一个工程,然后把"CPL.H"加到它的"stdafx.h"中,就不会有问题,请问是什么回事?
...全文
75 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
iyranly 2008-05-14
  • 打赏
  • 举报
回复
要忽略这种警告,在afxstd.h中加入:
#pragma warning(disable:警告编号)
长尾巴的悟空 2008-05-14
  • 打赏
  • 举报
回复
要么就只是在这个工程中替换本身不用的函数库.
Waiting4you 2008-05-14
  • 打赏
  • 举报
回复
咳,没想到这个问题:-P

要是CPL.h有对应的lib出现链接问提的话那只好用其它办法了, 不过一般来说如果一个程序库会与VC的标准库冲突的话往往它会提供预编译开关来避开这个问提,楼主可以找找。
arong1234 2008-05-13
  • 打赏
  • 举报
回复
这样应该会造成链接错误,因为lib里没有所谓的命名空间的信息

[Quote=引用 4 楼 Waiting4you 的回复:]
namespace CPL{
#include <CPL.h> // 用命令空间分隔重名函数
};
#include <...> // 其它头文件
using namespace CPL;

用到CPL.h里的重名函数的地方改成CPL::Func(...);
[/Quote]
snowbirdfly 2008-05-13
  • 打赏
  • 举报
回复
引入的函数库和VC的标准库有冲突(函数名相同的),那可以采用4楼的名字空间来区分~~~
cnzdgs 2008-05-13
  • 打赏
  • 举报
回复
这类问题通常与头文件的包含次序有关,有时候也会与VC和SDK的版本有关,看看函数库有没有相关说明。
Waiting4you 2008-05-13
  • 打赏
  • 举报
回复
namespace CPL{
#include <CPL.h> // 用命令空间分隔重名函数
};
#include <...> // 其它头文件
using namespace CPL;

用到CPL.h里的重名函数的地方改成CPL::Func(...);
wang1st 2008-05-13
  • 打赏
  • 举报
回复
再问一下,引入的函数库和VC的标准库有冲突(函数名相同的),在不修改函数名的情况下,有什么解决办法?
jacklzw88 2008-05-13
  • 打赏
  • 举报
回复
你用的是vc6还是2005
wang1st 2008-05-13
  • 打赏
  • 举报
回复
对比了一下,原来是warning level的原因。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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