<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[丸子头的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/vlily</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; vlily]]></copyright><item><title><![CDATA[nullfilter正常加载，callback不生效]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/132607193</link><guid>https://blog.youkuaiyun.com/vlily/article/details/132607193</guid><author>vlily</author><pubDate>Thu, 31 Aug 2023 17:06:53 +0800</pubDate><description><![CDATA[2，下载微软开源项目中的nullfilter.inf,修改一下：​​​​​​https://github.com/microsoft/Windows-driver-samples/blob/master/filesys/miniFilter/nullFilter/nullFilter.inf。我们可以看到在DbgView中就显示了我们在driver中输出的内容了。点击红色的卸载按钮，我们driver就被成功的卸载掉了，同时在DbgView中也可以看到我们在unload函数中写的输出了。]]></description><category></category></item><item><title><![CDATA[windows中搭载openssl环境]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/74455011</link><guid>https://blog.youkuaiyun.com/vlily/article/details/74455011</guid><author>vlily</author><pubDate>Wed, 05 Jul 2017 16:49:23 +0800</pubDate><description><![CDATA[下载openssl https://www.openssl.org/source/  下载后解压

【注意】openssl代码所在目录中不要带中文，否则“nmake -f ms\ntdll.mak ”可能会提示“宏中非法字符”等错误
一、Openssl WIN7 x64 编译
 环境:WIN7 64位，编译器:VS2010
 需要下载 Perl（如http://downlo]]></description><category></category></item><item><title><![CDATA[python加载模块PyImport_ImportModule返回NULL]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/74322288</link><guid>https://blog.youkuaiyun.com/vlily/article/details/74322288</guid><author>vlily</author><pubDate>Tue, 04 Jul 2017 14:31:46 +0800</pubDate><description><![CDATA[用C++调用python脚本，总出现问题，就想自己生成python文件，用符号进行调试。
调整环境后，发现不论是本机还是虚拟机里加载脚本返回总是有问题，
PyImport_ImportModule--》PyImport_Import()-->PyObject_CallFunction()-->Call_function_tail，也找不出什么问题，最后直接执行一下脚本，就发现了PyImport]]></description><category></category></item><item><title><![CDATA[IDispatch接口 - Dual和Custom]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/70575645</link><guid>https://blog.youkuaiyun.com/vlily/article/details/70575645</guid><author>vlily</author><pubDate>Mon, 24 Apr 2017 11:13:45 +0800</pubDate><description><![CDATA[当用ATL向导来创建一个接口的时候，向导会让我们选择Dual或者Custom.
那么它们到底有什么分别呢？
Dual
鼠标移上去，其实是有个说明的。下面的截图没有显示后面的一些文字，
实际意思是说这个接口同时支持IDispatch方式和vtable方式，这大概也就是双接口（Dual）名字的来源。
vtable调用方式，指的是直接通过接口指针的虚函数表。比如




[html]]]></description><category></category></item><item><title><![CDATA[COM连接点事件event]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/70314817</link><guid>https://blog.youkuaiyun.com/vlily/article/details/70314817</guid><author>vlily</author><pubDate>Fri, 21 Apr 2017 15:34:03 +0800</pubDate><description><![CDATA[COM 中的典型方案是让客户端对象实例化服务器对象，然后调用这些对象。然而，没有一种特殊机制的话，这些服务器对象将很难转向并回调到客户端对象。COM 连接点便提供了这种特殊机制，实现了服务器和客户端之间的双向通信。使用连接点，服务器能够在服务器上发生某些事件时调用客户端。




有了连接点，服务器可通过定义一个接口来指定它能够引发的事件。服务器上引发事件时，要采取操作的客户端会向服务器]]></description><category></category></item><item><title><![CDATA[VARIANT and VARIANTARG 中的byref]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/70314421</link><guid>https://blog.youkuaiyun.com/vlily/article/details/70314421</guid><author>vlily</author><pubDate>Fri, 21 Apr 2017 14:33:48 +0800</pubDate><description><![CDATA[在_IXXXEvent的Fire_onXXX(LONG *Response)函数中，
若把该函数的参数作为返回值，
if(Response)
{
 varResult.byref = Response;
 varResult.vt = VT_I4|VT_BYREF;
}





在客户端的Invoke函数中获取方法：
LONG *lValue = pVarResult-]]></description><category></category></item><item><title><![CDATA[COM组件的接口类添加Event]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/70243732</link><guid>https://blog.youkuaiyun.com/vlily/article/details/70243732</guid><author>vlily</author><pubDate>Wed, 19 Apr 2017 18:32:00 +0800</pubDate><description><![CDATA[自己获取有无event的区别是，在向导中是否勾选：连接点。
红色为添加部分：


import "oaidl.idl";

import "ocidl.idl";

 

[

     object,

     uuid(C74F7F62-D315-4BF6-9422-9B80D68DB4FA),

     dual,

     nonextensibl]]></description><category></category></item><item><title><![CDATA[C++调用Python浅析]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/60574057</link><guid>https://blog.youkuaiyun.com/vlily/article/details/60574057</guid><author>vlily</author><pubDate>Mon, 06 Mar 2017 18:17:34 +0800</pubDate><description><![CDATA[在一个C++应用程序中，我们可以用一组插件来实现一些具有统一接口的功能，一般插件都是使用动态链接库实现，如果插件的变化比较频繁，我们可以使用Python来代替动态链接库形式的插件（堪称文本形式的动态链接库），这样可以方便地根据需求的变化改写脚本代码，而不是必须重新编译链接二进制的动态链接库。灵活性大大的提高了。
通过C++调用Python脚本主要要用到如下的一些Python提供的API，因为实际]]></description><category></category></item><item><title><![CDATA[Solution for link error:Cannot Open File 'python27_d.lib']]></title><link>https://blog.youkuaiyun.com/vlily/article/details/60141766</link><guid>https://blog.youkuaiyun.com/vlily/article/details/60141766</guid><author>vlily</author><pubDate>Fri, 03 Mar 2017 16:14:46 +0800</pubDate><description><![CDATA[引自：http://guangboo.org/2013/01/17/solution-link-errorcannot-open-file-python27_dlib

感谢原作者

使用C调用Python函数或解释器时，在添加了Include Directories和Library Directories等配置后，仍然编译错误："LINK : fatal error LNK1104: c]]></description><category></category></item><item><title><![CDATA[COM在注册表中的相关键值及其意义]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/48525011</link><guid>https://blog.youkuaiyun.com/vlily/article/details/48525011</guid><author>vlily</author><pubDate>Thu, 17 Sep 2015 17:52:11 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/developersupport/archive/2013/06/02/COM-registry.html
概要
当编写好一个COM并将其在系统中注册之后，这些注册表项到底位于Register中的什么位置，系统是如何通过这些注册表项在Runtime时候找到某个COM的，这些都是诊断COM相关的问题至关重要的信息。总的来说，系统是通过GUID来]]></description><category></category></item><item><title><![CDATA[如何删除windows service (How to delete a windows service)]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/48443605</link><guid>https://blog.youkuaiyun.com/vlily/article/details/48443605</guid><author>vlily</author><pubDate>Mon, 14 Sep 2015 19:19:33 +0800</pubDate><description><![CDATA[How to delete a windows service 
 
Recently, I was trying to delete a windows service. Normally it should not be necessary to manually delete a service. Uninstalling an application should remove its]]></description><category></category></item><item><title><![CDATA[Wow6432Node]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/48443531</link><guid>https://blog.youkuaiyun.com/vlily/article/details/48443531</guid><author>vlily</author><pubDate>Mon, 14 Sep 2015 19:18:25 +0800</pubDate><description><![CDATA[64 位版本 Windows 中的注册表分为 32 位注册表项和 64 位注册表项。许多 32 位注册表项与其相应的 64 位注册表项同名，反之亦然。

64 位版本 Windows 包含的默认 64 位版本注册表编辑器 (Regedit.exe) 可显示 64 位和 32 位的 注册表项。WOW64 注册表重定向器为 32 位程序提供了对应于 32 位程序注册表项的不同注册表项。在 64 位]]></description><category></category></item><item><title><![CDATA[32bit程序在64bit操作系统下处理重定向细节]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/48443513</link><guid>https://blog.youkuaiyun.com/vlily/article/details/48443513</guid><author>vlily</author><pubDate>Mon, 14 Sep 2015 19:17:02 +0800</pubDate><description><![CDATA[1. 64bit操作系统的重定向机制以及目的 
   在64bit操作系统中，为了无缝兼容32bit程序的运行,64bit的Windows操作系统采用重定向机制。目的是为了能让32bit程序在 64bit的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与64bit程序冲突。
  微软采用重定向机制的原理很简单,说白了就是 让关键文件/文件夹或者关键注册表有2个副本。 1个副本是给32]]></description><category></category></item><item><title><![CDATA[Uninstall注册表项]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/48436857</link><guid>https://blog.youkuaiyun.com/vlily/article/details/48436857</guid><author>vlily</author><pubDate>Mon, 14 Sep 2015 11:20:02 +0800</pubDate><description><![CDATA[提供卸载程序的方法

;写注册表，以便在“添加/删除程序”中显示
    WriteRegStrHKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Name}""DisplayName" "${Name} ${Ver}"
    WriteRegStrHKLM "Software\Microsoft\Windows\Cur]]></description><category></category></item><item><title><![CDATA[高完整性代理（IE安全模式）]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/47338563</link><guid>https://blog.youkuaiyun.com/vlily/article/details/47338563</guid><author>vlily</author><pubDate>Fri, 07 Aug 2015 14:14:47 +0800</pubDate><description><![CDATA[高完整性代理
在本章前面曾经提到，Windows Vista及更新版本中的IE 8使用UAC，根据完整性级别和权限集来区分数据访问权限与命令。这些功能大多是保护模式的一部分。
由于"按机器ActiveX"控件需要将二进制文件和注册表设置写到高完整性(系统级别)位置，所以浏览器启动分离的代理进程来处理这些安装。当准备安装ActiveX控件时，IE启动ieinstall.exe，在特定情况下还会启]]></description><category></category></item><item><title><![CDATA[完整性级别（Integrity Level）、UAC和LoRIE（涉及IE保护模式）]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/47338327</link><guid>https://blog.youkuaiyun.com/vlily/article/details/47338327</guid><author>vlily</author><pubDate>Fri, 07 Aug 2015 14:04:49 +0800</pubDate><description><![CDATA[完整性级别（Integrity Level）、UAC和LoRIE
在Windows Vista中，微软一开始就对其处于操作系统核心地位的自主访问控制功能进行了扩展。主要的目的是为了在某些情形下实施强制（mandatory）访问控制。举例说明，执行某些动作必须要管理员权限，而在获取管理员权限之前在标准的用户权限识别管理基础上需要额外的授权。微软将这一新的架构扩展称为"强制完整性控制（MIC）"。]]></description><category></category></item><item><title><![CDATA[IE保护模式]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/47338251</link><guid>https://blog.youkuaiyun.com/vlily/article/details/47338251</guid><author>vlily</author><pubDate>Fri, 07 Aug 2015 13:59:42 +0800</pubDate><description><![CDATA[IE保护模式
　　谈到Windows Vista的IE 7安全特性，必须首推其保护模式功能。这个Feature的来头可不小，据说是盖茨亲自点将，可见其重要性。
　　
　　而只有Windows Vista的IE保护模式，才是真正可以做到既方便、又安全，同时又兼容!
　　IE保护模式实际上依赖于Windows Vista三大安全特性：UAC(用户帐户保护)、MIC(强制完整性检测)和UIPI(]]></description><category></category></item><item><title><![CDATA[IDA文件目录简介]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/41811957</link><guid>https://blog.youkuaiyun.com/vlily/article/details/41811957</guid><author>vlily</author><pubDate>Mon, 08 Dec 2014 23:18:46 +0800</pubDate><description><![CDATA[IDA的可执行文件


   idag.exe:IDA的Windows GUI版本。从6.2开始,IDA中不在包含该文件。

   idaq.exe:IDA6.0或更新版本的Windows Qt GUI版本。

   idaw.exe:IDA的Windows文本模式版本。

随着IDA6.0开始采用Qt跨平台GUI库，IDA的原始windows版本（idag.exe）已被废弃，将]]></description><category></category></item><item><title><![CDATA[VC6安装错误解决]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/41806133</link><guid>https://blog.youkuaiyun.com/vlily/article/details/41806133</guid><author>vlily</author><pubDate>Mon, 08 Dec 2014 17:33:04 +0800</pubDate><description><![CDATA[按了无数遍VC6 都没有碰到这个问题，我的可恶的win7上

第一遍没有问题但是VC6不能用? 打开就说有错误

卸载重装遇到这个问题：——Error Launching ......acmboot.exe

今天被我碰到了---Google一下 找到答案

（1）需要修改注册表键值：
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStu]]></description><category></category></item><item><title><![CDATA[treectrl的个性化排序]]></title><link>https://blog.youkuaiyun.com/vlily/article/details/41723709</link><guid>https://blog.youkuaiyun.com/vlily/article/details/41723709</guid><author>vlily</author><pubDate>Thu, 04 Dec 2014 14:31:24 +0800</pubDate><description><![CDATA[﻿﻿

CTreeCtrl有几种方式对其子项进行排序



InsertItem allows
 to insert the child item alphabetically, when specifying TVI_SORT for hInsertAfter可以实现对插入节点按照字母顺序进行排序，前提是在参数hInsertAfter中指定为TVI_SORT.SortChildre]]></description><category></category></item></channel></rss>