msvc编译器的字符编码问题

 已解决:字符编码问题。用记事本将文件编码改为unicode即可


   

 制作制图功能时,我决定直接原样照抄copy源码,将QgsComposer类改为fComposer,调试一下删除不用的功能。再在主界面的类中把源码主界面的QgsApp类中涉及到composer的功能全部复制过来。

稍作修改后,惊奇地发现,新建和删除composer的两个函数死活通不过编译,而且报的错非常奇怪:

error: C2039: “createNewComposer”: 不是“MainWindow”的成员

error: C2039: “deleteComposer”: 不是“MainWindow”的成员

    /** Creates a new composer and returns a pointer to it*/
    QgsComposer* createNewComposer( QString title = QString() );
    /** Deletes a composer and removes entry from Set*/
    void deleteComposer( QgsComposer *c )

 

测试了大半天,偶然发现,似乎是因为我把doxygen注释修改成中文造成的问题。

    /** 创建一个新的composer并返回指针*/
    fComposer* createNewComposer(QString title = QString());

    /** 删除指定composer并从Set移除*/
    void deleteComposer( fComposer *c );

       把注释改为双斜杠或者改回英文就好了。不过我还是没有摸清bug的规律,因为这两个函数下面明明紧接着又是一个doxygen+中文注释的函数,从始至终却异常安静没有报错。事实上,当我为了写这个博客改回doxygen+中文注释试图重现bug时,deleteComposer函数却又不报错了!

总之以后慎用doxygen注释,老老实实用双斜杠好了。

 

转载于:https://www.cnblogs.com/freeza/p/7816931.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值