工作日志2011-06-02

关于第三方库的编译问题。
   我们可以把第三方库进行静态编译,将会生成静态库(*.lib)是一个很大的文件,
注意区别于动态库的lib导入库(较小,只有导入信息),同时要将该库用于MFC 需要

image

 

进行导入设定。同时注意的是编译第三方库的时候,下面选项要注意与你实际项目中相同位置中的设定相同。

image

否则实际项目中编译的时候将会出现,link2005 重定义之类的错误。

     关于C++ 等中返回值为指针类型,如字符串指针等的时候,因为该指针指向的位置必须为new出来的,在内存堆里面,所以必然设置一个该堆内存由谁来负责释放的问题,一般情况是谁生成的,谁释放。所以应该由返回该指针的类进行释放,但有一个问题是什么时候开始释放呢,一般的可以在类的析构函数里面进行释放。另外一种,该类可以专门提供一个函数用于被外界显式调用进行分配的内存释放,如很多系统类带有releaseBuffer之类就是这个设计。

    因为需要对之前分配的内存进行释放,所以该类必须有专门保存指向该堆内存的指针,这样在releaseBuffer或析构函数里面才能够进行正确的堆释放。

    在这里,为避免外界对本来应该由A类自己释放的堆空间进行了释放。一个好的做法是返回const 类型的指针。

关于jsonCpp ,jsonCpp要求的字符串格式必须key和value都带双引号(" "),如下是正确的

{"cmdid":"sendFile"}

jsonCpp中如果字符串包含单个 ‘/’(反斜杠) 必须转换成 // (双反斜杠)

------------------------------ 关于内存泄露 ----------------------------------------

发现内存泄露,第一时间应该查找new关键字,看new 完后的指针是否正确释放了

------------------------------- 关于释放资源的方法 ------------------------------------

释放资源的方法必须被执行一次

---------------------- 应用程序名称的更改方法 -----------------------------------------

if (NULL != AfxGetApp()->m_pszAppName)
        {
            delete AfxGetApp()->m_pszAppName;
        }
        LPTSTR szAppName = new TCHAR[256];
        _tcscpy(szAppName,"提醒");

AfxGetApp()->m_pszAppName = szAppName;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值