Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351668
  • 博文数量: 157
  • 博客积分: 3001
  • 博客等级: 中校
  • 技术积分: 1330
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 13:47
文章分类

全部博文(157)

文章存档

2011年(1)

2010年(28)

2009年(124)

2008年(4)

我的朋友

分类: WINDOWS

2009-09-30 13:58:21

    这几天一直在研究关于xlslib,一个开源的项目。
    总结下遇到的问题:
1、在VS2005中如何添加Library:
添加lib库:
方法一:
点击菜单命令 “项目/属性”,弹出项目属性对话框;或者在解决方案视图或类视图中,右击项目名称,选“属性”,弹出项目属性对话框;在弹出对话框的活动配置中,选择“ 配置属性/链接器/输入/附加依赖项”,即可输入待加入的lib库文件,添加完毕点击“应用”或“确定”按钮。如果要对所有的配置添加lib库文件,可先将活动配置切换为“所有配置”。
在“配置属性”---“连接器”---“常规”的“附件库目录”填上库所在的目录名,这个目录名最好是在工程文件夹中建一个专门放lib的文件夹。
方法二:
#pragma comment(lib,"libname.lib")
添加头文件:
项目/属性---"C/C++"---"常规"的"附加包含目录"中添加头文件所有目录即可。
 
2、包含头文件:
在将里面的源代码全部包含进来后,在所有的cpp文件里总是说,**.h文件找不到。
解决方法:
Project-> Properties->C/C++  右侧的Additional Include Directories中添加所有头文件所在的路径,添加完成后,如下:D:\ExcelDevelop\xlslib\src\xlslib;D:\ExcelDevelop\xlslib\src\oledoc;D:\ExcelDevelop\xlslib\src\common
 
3、编译的时候,总是遇到下面的错误:
1>d:\program files\microsoft visual studio 8\vc\include\xlocale(1832) : error C3861: '_ASSERTE': identifier not found、
解决方法:
将文件 config.h中的红色部分注释掉,原因是它将VS2005中的库文件crtdbg.h里的 _ASSERT 给注释掉了。好奇怪的问题。
// Older versions of MSVC++
// Fakes the inclusion of crtdbg.h to avoid duplicated symbols
// of (inlined) new() and delete() operators
//#define _INC_CRTDBG 
 
4. 运行mainCPP.cpp 中的下面代码全部出现访问越界的错误:
 RandomTest(3,100,100);    
 RandomCellAndFormatTest(1,15,10);  
 RandomCellAndFormatTestProf(1,15,10);
 RandomFormatTest(1,30,40);
 
解决方法:
修改文件 worksheet.cpp 中的void worksheet::AddCell(cell_t* pcell)函数,将
 
if(!success) {
   // means we got a duplicate - the user is overwriting an existing cell
   cell_t* existing_cell;    
   existing_cell = *(ret);
   delete existing_cell;
   m_Cells.erase(existing_cell);
   
      
   cellHint = NULL;
  } else {
   cellIterHint = ret;
   cellHint = pcell;
  }
 
中的红色部分改成
delete *ret;  
m_Cells.erase(ret);
 
原因是主要Windows的东西和Linux下的不同吧。呵呵 不过还是被我搞定了啦。
 
 
 
阅读(8395) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~