首页

BSTR到底该怎么用?

搞明白BSTR和WCHAR *的区别是很重要的一件事 如果你曾经使用C/C++开发过涉及COM组件的应用,则下面的代码你应该不会陌生: STDMETHODIMP CFo:Bar(BSTR bstrABC) { // … 这个BSTR是个什么神仙玩意儿?它和WCHAR *之间有什么区别吗? 像C/C++这种低层语言给予了开发者十分大的自由度,开发者可以自己决定一串二进制位采用何种模式来抽...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:04月14日 |
  • 浏览:148 |
  • 评论已关闭 条评论

C++ final指示符带来的性能提升  

final指示符简介 C++中的final指示符可以将一个类或者虚函数标记为不可继承或重写。让我们先看看如下的代码: 如果我们尝试创建一个新类并继承自[derived],则我们会得到一个编译错误,如下图所示: final指示符向类的客户明确传递了这样的信息:这个类不应该用来被继承,并且使用编译器来保证这一点。同时,使用这个标识符可以使用去虚拟化(Devirtualization)来优化代码的性...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:03月05日 |
  • 浏览:263 |
  • 评论已关闭 条评论

是时候考虑为你的团队定制AI化的IntelliSense了  

让IntelliCode更加智能化 在你敲代码的时候,你正在舒服的享受着自动完成列表所带来的编码快感,这一切都依赖着IntelliCode组件在幕后所做的辛勤工作。在之前的一篇关于IntelliCode文章中,我们解释了IntelliCode是如何通过对几千个GitHub开源项目里的代码进行机器学习,然后作出更加智能化的编码建议。 对于一些类似于标准库的公共API,基于社区知识库的检索分析方式是十...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:02月25日 |
  • 浏览:240 |
  • 评论已关闭 条评论

DNE LightWeight Filter导致的虚拟机ping不通的问题  

今天被一个问题折腾了一整天了,怒写一篇文章以示纪念。 问题 虚拟机采用桥接方式接入到网络,并通过DHCP服务器获取动态IP。 宿主通过有线方式接入网络并通过DHCP获取到动态IP。 虚拟机中无法ping通宿主机,同时宿主机也ping不通虚拟机。 尝试过的方法 1) 修改虚拟机桥接方式,不适用自动绑定网卡,而是绑定到一个具体的宿主机网卡,无效。 2) 修改虚拟机中的网卡工作方式,从1Gbps修改为1...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:09月26日 |
  • 浏览:2088 |
  • 评论已关闭 条评论

新玩意儿更新:C++编码规则及最佳实践

朋友,你是否也和我一样:咋样都行,就是无法容忍构建结束时出现的编译警告。 对于稍微有点完美主义的我来说,我希望能尽自己最大的能力,消除一切的编译警告。但有时候,我也会感到沮丧:有些警告是无法清除的,至少在目前的开发环境里是没有这种可能性的。 此话怎讲? 比如,我曾经碰到一个关于menifest的格式兼容性报警,要解决此问题,需要升级我电脑里的某一个DLL,但是这个升级需要联系Microsoft售后...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:08月24日 |
  • 浏览:847 |
  • 评论已关闭 条评论

实战经验:在Windows平台编译x264  

最近想研究一下大名鼎鼎的x264库,由于本人功力实在薄弱,单单是为了能在Windows平台编译这玩意,也花了不少功夫。在摸爬滚打的过程中,也碰到了一些坑,这里记录下来,希望能帮助有需要的朋友。 一. MSYS2配置 1) 首先去MSYS2官网安装包,因为我的电脑是64位系统,所以,这里我选择x86_64版本。MSYS2可以根据需要安装32位和64位版本的mingw和编译工具链,而且还有个十分好用的...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:08月13日 |
  • 浏览:2041 |
  • 评论已关闭 条评论

实战经验:WM_COPYDATA在不同权限进程中的接收问题

问题 在一次开发中,需要使用到WM_COPYDATA方式来实现两个进程之间的数据传输。在网络上可以找到很多关于WM_COPYDATA的示例代码,而且代码结构也比较简单易懂,所以WM_COPYDATA的示例代码不是今天要详细讨论的内容。 今天的问题存在于两个不同权限的进程,例如发送端进程运行在普通用户账户下,而接收端进程则运行在管理员账户下。在这种情况下,发送端发送的WM_COPYDATA消息,将不...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:05月25日 |
  • 浏览:1115 |
  • 评论已关闭 条评论

实战经验:给应用程序添加代码签名  

问题 在一次开发过程中,碰到了这样一个问题:应用程序在VS2010中已经启用了”需要管理员权限”,但是当UAC提示框出现时,应用程序因为Windows安全机制的限制,无法访问UAC,也即应用程序无法使用SendInput来模拟鼠标和键盘操作。经过一番研究,发现应用程序需要做如下的配置,才能实现UAC界面的访问: 1) 强制应用程序以管理员权限启动,这个可以在VS2010中设...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:05月14日 |
  • 浏览:1638 |
  • 评论已关闭 条评论

实战经验:使用CFileDialog实现多个文件选择  

问题 最近需要实现文件选择的功能,要求是需要弹出系统标准的文件选择对话框,另外,允许用户选择多个文件。 解决方法 MFC中有一个类CFileDialog就是用来做这件事的,而且功能还挺丰富,今天只是使用它的一小部分特性。 直接上代码 以下代码实现了一个方法,该方法弹出文件选择对话框,允许用户选择多个文件,让点击确定时,以列表的形式,返回用户选择的所有文件。 vector<CString&...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:04月28日 |
  • 浏览:1711 |
  • 评论已关闭 条评论

实战经验:CRichEditCtrl插入图片(不止是位图)

问题 在一次功能开发中,我希望可以在CRichEditCtrl控件中插入一些图片,这些图片可能是位图(bmp),也可能是其他格式(jpg, png等)。   以下是一种思路 1) 图片文件可以通过GDI+中的Bitmap类来加载。 2) 如果要插入图片到CRichEditCtrl,则需要涉及到OLE对象的插入。可以这样理解,每一个图片文件都是一个OLE对象,这些OLE对象通过CRichE...
  • 阅读全文 |
  • 分类:技术 |
  • 发表于:04月21日 |
  • 浏览:1612 |
  • 评论已关闭 条评论