首页

通过调用约定诊断一个常见问题

事情是这样的 有一位开发者朋友问了有关”未能解析的外部引用”的问题。我的一个目标之一是:通过向你展示底层的工作原理,这样你就可以自己解决问题。这里的外部引用问题,是可以通过我之前博文里介绍的调用约定的文章来解决的。 首先,我们来看看具体的报错信息。 Undefined symbol: ‘__stdcall(0) pl_pvcam_init (_pl_pvcam_init@0...

再来说说经理和程序员的区别

再来说说另外一个区别 如果你参加一个PPT演讲,你可以通过观察演讲者的PPT文稿来判断他是否是一名经理还是一名程序员。 如果PPT是黑白风格,文字比较多,没有任何嵌入任何多媒体内容,并且在一页里很少有超过10个项目列表,则演讲者很可能是一名程序员。 如果PPT是彩色风格,有图形,动画,并且PPT页面里充满了让人眼花缭乱的东西,那么,演讲者很有可能是一名经理。 观看经理尝试将其演示文稿翻到特定页面很...

VS2019: 调试版本下的2到3倍性能提升  

好消息一则 我们最近在Visual Studio 的x86/x64 C++编译器中做了大量性能方面的改进,特别是针对VS默认的调试版本配置。 以Visual Studio 2019 v16.10 预览版2为例,我们测试发现,在调试版本下,性能提升可达2到3倍。这些改进主要是因为我们在运行时检查(/RTCs)中去掉了一些性能开销,这个编译器开关是默认就开启的。 默认的调试版本配置 当你在Visual...

最好不要依赖编译器的内存自动初始化功能  

一个安全漏洞来源 读取未初始化的内存是C和C++程序中的一个主要安全漏洞来源。微软已经开发了很多工具来寻找这样的错误,包括编译器警告,静态分析检查,以及最近开发出来的:代码仪表(Code Instrumentation)。 如需了解有关未初始化内存访问带来的安全问题和缓解措施,大家可以到MSRC(微软安全响应中心)的博客里去看看。 今天的这篇文章会总结一下代码分析和代码仪表之间可能的交互操作,以及...

说说经理和程序员的区别

以下为我个人的见解,它不一定对,也不一定不对,各位看官看看就好。 如果在一个会议室中,有一些经理和一些程序员,那么有下面的一个小方法来区分他们。 看他们拿什么东西到会议室的。 他们是否拿这一台笔记本电脑?这台笔记本电脑是否在开会的时候一直开着或者笔记本电脑有一些特别之处,例如它插着一块无线网卡或者它不是一台普通的笔记本电脑,而是一台平板电脑。 如果是这样的话,那么拿这它的八成是一位经理。 如果他开...

拓扑梅尔智慧办公平台(Topomel Box) 2.0发布

今天,2021年05月05日,我们很高兴地宣布:拓扑梅尔智慧办公平台(Topomel Box)的2.0版本正式发布。 在2.0版本中,我们主要是对现有的功能进行了改进,另外对一些Bug的进行了修复。 桌面分享 桌面分享功能中,我们提供了”最佳性能”和”最佳质量”这两种模式,在低速网络环境下,通过切换至”最佳性能”模式,可以提高...

解读各种内存分配函数的差别  

今天我们来讲讲几种容易混淆的内存分配函数的区别,它们分别是:SHGetMalloc, SHAlloc, CoGetMalloc, 和CoTaskMemAlloc。 让我们先从简单的开始吧。 首先,CoTaskMemAlloc实际上等效于:CoGetMalloc(MEMCTX_TASK) + IMalloc::Alloc。 CoTaskMemFree等效于CoGetMalloc(MEMCTX_TAS...

请勿将你的动态链接库命名为Security.dll

让我们听一则历史小故事,放松一下神经吧。 有开发者发现:如果你将动态链接库(以下使用简称DLL)文件命名为security.dll,则会发生奇怪的事情。原因在于:系统DLL里已经有一个同名的文件了,这个DLL是用于系统提供安全方面的接口的组件(Security Support Provider Interface),虽然这个文件现在被命名为了”secur32.dll”,但过...

为什么树结点不能在树控件中重复使用

其实,主要的原因是:我们希望在易用性与通用性之间的取得某种平衡。 从字面意义上来说,你不能在一个树控件中的多个地方使用相同的树结点,因为如果你这样做的话,则树结点的某些属性会产生歧义,例如树结点的父结点TVGN_PARENT或者树结点是否展开TVIS_EXPANDED。(例如,如果一个树被使用到两个不同的地方,则它就会有两个不同的父结点。) 当然了,这个问题可以通过使用树结点的实际内容的不同加以区...

为什么IE浏览器总是创建Links文件夹

我也碰到过这个情况,当时还纳着闷 如果你使用过IE浏览器,则应该会遇到这样一种情况: IE浏览器会自动创建”链接”文件夹,即使你手动删除了,它隔一段时间又会自己重建。为什么? 这个是因为IE浏览器在自己尝试做一些自动修复措施。当它发现链接文件夹丢失的时候,它就心里琢磨着:”不妙,链接文件夹不见了,估计是数据被搞乱了。我最好再创建一个相同的文件夹来修复。̶...