摘要:
swig可以自动生成从c++到其他语言如Java、Python等转换的中间语言,目前swig已经支持很多c++11的特性了,但是这次项目中发现function特性还没有支持,只能自己生成。 从网上找了一份Java的java - How to use SWIG to wrap std::functio 阅读全文
摘要:
如果分支条件是可预测的,那使用if无疑会提高性能,但分支是随机不可预测的,使用if语句就会让处理器产生更多的错误猜测,肯定会对性能造成影响。 因此在使用if语句时应当对分支进行研究,是否可预测,概率怎么样,是否可去除if语句,或者减少进入分支判断的次数。 具体参见Stack Overflow上的分析 阅读全文
摘要:
char[]创建一个数组,可以用sizeof计算其长度,数组内容可以修改,因此当需要改变字符串内容时建议用char[]; char*为一个指针,用strlen计算内容长度,可以声明变量,事实上,vs2019不允许用char*声明常量,会编译报错。 const char[] 数组内容不可修改,适用于全 阅读全文
摘要:
最近在做流程配置化,选取了libconfig开源库,感觉使用起来很灵活,api也比较友好,也有官方的文档(https://github.com/hyperrealm/libconfig)。 windows下安装直接打开对应sln编译即可,2017以下用2018.sln,以上就用2017.sln。用时 阅读全文
摘要:
指针作为参数传递,是将指针地址的值传入,函数内对指针地址的操作在函数结束后并不会改变指针指向的内容,在函数中应该对指针指向的内容操作,如果是创建新对象,则需传入指针的引用或指针的指针。 class MyClass { public: MyClass() {}; ~MyClass() {}; priv 阅读全文
摘要:
1.回调函数触发时要记得捕获异常,不能将异常处理留给客户做,然而如果客户在回调函数中调用异步等待线程的话,出现异常将无法避免。 2.c++工程移植到Linux时,引用的动态库要和c++使用的版本一致,否则容易报“未定义的引用”错误 3.makelist中链接的动态库名字最好一致,软链接有时会失效,编 阅读全文
摘要:
当调试遇到问题时可以去官网看一看相关调试标签时需要注意的事项,以及相关选项的含义,对于不熟悉操作的通常用处很大 https://docs.microsoft.com/zh-cn/visualstudio/debugger/?view=vs-2019 阅读全文
摘要:
c++调试无法进入断点可能原因: 1.工具-》选项-〉调试-〉编辑并继续-〉启用本机编辑并继续勾选上即可 2.清理解决方案或者项目,重新生成项目(pdb一类文件的更新) 3.vs项目下: 工具-->选项-->调试 >常规,取消要求源文件与原始版本匹配 c++/cli调试断点无法进入可能原因: 将调试 阅读全文
摘要:
在用bind绑定静态重载成员函数时提示“无法确定需要哪个重载函数”错误,在网上找了可以强制绑定的方法。 #include <vector> #include <iostream> #include <string> #include <algorithm> #include <functional> 阅读全文
摘要:
1.c++/cli debug调试时把调试器类型改为mix,调用dll时,如果dll引用的外部组件项目发生异常,会报“系统外部组件发生异常”错误。说明外部功能有问题,需要先将外部功能调通再调试cli项目。 2.c# 引用静态dll时,会根据程序集路径优先选取靠前的dll,因此要注意dll放置在正确的 阅读全文