VC2005中C运行时库选择不当导致的链接问题及解决方案
VC2005中C运行时库选择不当导致的链接问题及解决方案
在Microsoft Visual C++ 2005中,如果一个EXE主工程应用程序要使用一个或几个静态LIB库,那么链接时经常会遇到符号重复定义的错误,如果排除库不当又会遇到找不到某些符号的问题,如果强制使用 /force选项链接过去又可能发生一些意想不到的运行时问题。
如何完美解决这个问题呢?只需要按照如下步骤进行即可:
1、确保所有LIB工程与EXE主工程的活动配置的如下配置项完全一致:
ü 配置属性->常规->项目默认值->MFC的使用
ü 配置属性->常规->项目默认值->字符集
ü 配置属性->C/C++->代码生成->运行时库
2、在主工程中根据不同的运行时库忽略不同的默认库:
若要使用此运行时库
请忽略这些库
单线程 (libc.lib)
libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多线程 (libcmt.lib)
libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多线程 (msvcrt.lib)
libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
调试单线程 (libcd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
调试多线程 (libcmtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的调试多线程 (msvcrtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
忽略默认库的方法是在如下位置填写要忽略的库:
配置属性->链接器->输入->忽略特定库
条目之间以分号隔开。
经过上面两步,此类问题基本可以解决。
相关文档:
——初步设想
最近一直在学习OSGI方面的知识。买了一本《OSGI原理和最佳实践》,可是还没有到。遗憾的是,OSGI目前的几个开源框架只支持Java,对C和C++都不支持的。可惜我们公司目前主要的开发语言还是c和c++,即便是引进OSGI,所得的好处范围有限。而我对松散耦合的模块化开发向往已久。查了一下OSGI对C++支 ......
C++的实现
#include<fstream>
#include <iostream>
using namespace std;
int main()
{
ofstream logTest("foo.log");
streambuf *oldbuf = cout.rdbuf(logTest.rdbuf());
cout << "输出 ......
HTTP分为请求行,请求头部以及请求内容
那个长度数字值就是请求内容的长度(字节为单位)
给一段例子你就基本明白了:
onst CString getString(int i)
{
CString s;
s.Format(_T("%d"), i);
return s;
}
////////////////////////////////
CS ......
也是中软笔试的算法题,当时并不知道叫杨辉三角,唉。N年不用了,还得再拾起,为了那个梦。
#include <stdio.h>
void main()
{
int a[50][50];
int i,j,n;
printf("Please input Number:");
scanf("%d",&n);
  ......
1、编写一个布尔函数int is_leap_year(int year),判断参数year是不是闰年。如果某年份能被4整除,但不能被100整除,那么这一年就是闰年,此外,能被400整除的年份也是闰年。
#include <stdio.h>
int is_leap_year(int);
int main(){
int i,j;
printf("please input a number:");
scanf("%d",& ......