<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[benbencoco的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/benbencoco</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; benbencoco]]></copyright><item><title><![CDATA[获取文件的版本信息和修改时间]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/39230525</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/39230525</guid><author>benbencoco</author><pubDate>Fri, 12 Sep 2014 15:34:28 +0800</pubDate><description><![CDATA[CFile file;
	BOOL bFile = file.Open(csPath, CFile::modeRead);
	if ( !bFile )
	{
		return false;
	}
	
	CFileStatus status;
	file.GetStatus(status);
	char szCreateTime[24];
	int nReturn = sprintf(szCrea]]></description><category></category></item><item><title><![CDATA[cvShowImage失败]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/38111541</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/38111541</guid><author>benbencoco</author><pubDate>Fri, 25 Jul 2014 11:17:38 +0800</pubDate><description><![CDATA[在子线程中调用cvShowImage总是失败，原来必须在主线程中调用]]></description><category></category></item><item><title><![CDATA[VC 窗口透明化]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/35227955</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/35227955</guid><author>benbencoco</author><pubDate>Fri, 27 Jun 2014 10:25:55 +0800</pubDate><description><![CDATA[//ModifyStyleEx(0, WS_EX_LAYERED|WS_EX_TRANSPARENT);
 / 	ModifyStyleEx(0, WS_EX_LAYERED);
	SetLayeredWindowAttributes(0, 128, 2);
	//SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);]]></description><category></category></item><item><title><![CDATA[VC使用Media Player不显示操作栏]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/32115605</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/32115605</guid><author>benbencoco</author><pubDate>Wed, 18 Jun 2014 14:09:18 +0800</pubDate><description><![CDATA[向工程中添加Media Player控件后，绑定]]></description><category></category></item><item><title><![CDATA[批处理bat文件得到当前绝对路径、盘符等]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/26448015</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/26448015</guid><author>benbencoco</author><pubDate>Wed, 21 May 2014 09:53:18 +0800</pubDate><description><![CDATA[echo off


echo 当前盘符：%~d0


echo 当前盘符和路径：%~dp0


echo 当前批处理全路径：%~f0


echo 当前盘符和路径的短文件名格式：%~sdp0


echo 当前CMD默认目录：%cd%


pause
 
点击打开链接]]></description><category></category></item><item><title><![CDATA[VC调用C#Dll之无法声明全局或静态变量变量]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/26222449</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/26222449</guid><author>benbencoco</author><pubDate>Mon, 19 May 2014 10:41:50 +0800</pubDate><description><![CDATA[C++中调用C#，dll，想象着跟调用C++的dll
1>  TestSMS.cpp
1>d:\vs2010\testzhou\testsms\testsms\TestSMSDlg.h(36): error C3265: 无法声明托管“m_ActivityVote”(在非托管“CTestSMSDlg”中)
1>          不能声明全局或静态变量，也不能声明引用 gc 堆中对象的本机类]]></description><category></category></item><item><title><![CDATA[坑爹的CTime，上限是2038年1月18日，下限是1970年1月1日 12:00:00 AM GMT]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/24378173</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/24378173</guid><author>benbencoco</author><pubDate>Wed, 23 Apr 2014 17:36:24 +0800</pubDate><description><![CDATA[今日欲完成一段代码，由于从接口中]]></description><category></category></item><item><title><![CDATA[C++通过CLR调用C#dll--如何定义合适的参数]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/20464533</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/20464533</guid><author>benbencoco</author><pubDate>Tue, 04 Mar 2014 15:53:05 +0800</pubDate><description><![CDATA[C++调用C#的dll的时候，如何正确的定义C#函数是一个问题，本文将告诉你如何解决这个问题]]></description><category></category></item><item><title><![CDATA[临界区的LockCount为何小于-1]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/20122109</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/20122109</guid><author>benbencoco</author><pubDate>Fri, 28 Feb 2014 09:56:15 +0800</pubDate><description><![CDATA[很有用的一篇关于临界区的文章，转与此，备用
 
某日，在浙大国家实验室，与老方和小崔调试监控死锁问题。机柜里一溜架装服务器上出现死锁问题。用WinDbg看，发现其中导致死锁的临界区LockCount值是小于-1的数！！
 
多次重现该问题，发现LockCount经常是负的两三百。
我等本着不十分科学严谨，但又有一点科学严谨的态度，装模作样查了下资料，显示如下：
 
LockCount]]></description><category></category></item><item><title><![CDATA[服务程序中以管理员权限启动其它程序]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/19981657</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/19981657</guid><author>benbencoco</author><pubDate>Wed, 26 Feb 2014 15:41:07 +0800</pubDate><description><![CDATA[项目中的实际问题：需要用一个服务程序来启动并监控另一个程序，而该程序中使用了JavaScript，并且访问百度的地图API，启动该程序后，发现地图总是无法加载，   这个问题纠结了我和外部程序的开发者三天时间了，一直没有头绪，今天写了一个最简单的百度地图的加载代码，结果弹出如下提示框
       
       但是当我自己按照普通的方式直接运行这个外部程序的时候，却能够正常加载，因此推断问]]></description><category></category></item><item><title><![CDATA[VC 用发音函数Beep()播放简谱音乐]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/17679857</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/17679857</guid><author>benbencoco</author><pubDate>Mon, 30 Dec 2013 13:45:18 +0800</pubDate><description><![CDATA[Win32 API中有个非常有意思的发音函数Beep()，可以用它在扬声器上播放简单的音调，如果按简谱来设置播放的内容，就可以播放一些简单的音乐了。
 
函数原型：
BOOL WINAPI Beep(
  __in          DWORD 
dwFreq,
  __in          DWORD 
dwDuration
);
函数说明：
第一个参数表示频率，用Hz为单]]></description><category></category></item><item><title><![CDATA[C++ 弹出U盘]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/14454157</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/14454157</guid><author>benbencoco</author><pubDate>Thu, 07 Nov 2013 17:14:57 +0800</pubDate><description><![CDATA[调研USB弹出，记录结果：
bool CUSBControl::RemoveUSB(CString csDisk)
{
	HANDLE hDevice; // handle to the drive to be examined 
	BOOL bResult; // results flag 
	DWORD junk; // discard results 
	DWORD dwError;]]></description><category></category></item><item><title><![CDATA[ATL服务程序]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/13997273</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/13997273</guid><author>benbencoco</author><pubDate>Fri, 01 Nov 2013 11:16:36 +0800</pubDate><description><![CDATA[使用ATL编写服务程序比较简单，ATL生成向导会自动生成，编译后运行命令：
注册：aaa.exe /Service
卸载服务：停止后运行命令aaa.exe /UnRegServer  
 
重写Run函数，OnStop，OnShutDown，Install，RegisterAppId等函数
可以在Run个函数里面来实现自己的功能
HRESULT Run(int nShowCmd = S]]></description><category></category></item><item><title><![CDATA[警惕, _endthreadex带来的内存泄漏]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/13774909</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/13774909</guid><author>benbencoco</author><pubDate>Thu, 31 Oct 2013 17:10:03 +0800</pubDate><description><![CDATA[unsigned int __stdcall Test(LPVOID lpParam)
{

	CString csUSBID = L"ABC"

	_endthreadex( 0 );

	return 0;
}
 
int main()
{
	HANDLE hThreadUnsafe = NULL;
	hThreadUnsafe = (HANDLE)_beginthreadex(NULL,]]></description><category></category></item><item><title><![CDATA[WMI, CoInitializeSecurity]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/13507819</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/13507819</guid><author>benbencoco</author><pubDate>Tue, 29 Oct 2013 14:38:28 +0800</pubDate><description><![CDATA[错误 0x80010119为：RPC_E_TOO_LATE CoInitializeSecurity has already been called。说明CoInitializeSecurity 已经被调用过，这不算是错误。


判断该函数执行是否成功的方法应为：
HRESULT hr;
...
 
hr = CoInitialzieSecurity();
if (SUCCEED(]]></description><category></category></item><item><title><![CDATA[CPU使用率计算]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/12910593</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/12910593</guid><author>benbencoco</author><pubDate>Mon, 21 Oct 2013 14:27:59 +0800</pubDate><description><![CDATA[int CTestCPUDlg::CPUUsage(int id)
{
	int cpuusage;    
	PVOID pProcInfo = NULL;    
	DWORD dwInfoSize = 0x20000;     
	PPROCESSINFO pProcessInfo;     
	DWORD dwWorkingSet;     
	long ( __stdcall *NtQu]]></description><category></category></item><item><title><![CDATA[ATL可执行文件(.exe)监控USB插拔状态]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/12856649</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/12856649</guid><author>benbencoco</author><pubDate>Fri, 18 Oct 2013 17:30:18 +0800</pubDate><description><![CDATA[ATL可执行文件检测USB插拔]]></description><category></category></item><item><title><![CDATA[遍历并监视，重新启动进程]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/12853139</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/12853139</guid><author>benbencoco</author><pubDate>Fri, 18 Oct 2013 14:28:06 +0800</pubDate><description><![CDATA[#include "tlhelp32.h"
#include 
#pragma comment (lib,"Psapi.lib")


void CTestComExeDlg::MonitorProcess()
{

	while(bRun)
	{
		//CComPtr pComExecute;
		HRESULT hr = ::CoCreateInstance( CLSID_ComExecut]]></description><category></category></item><item><title><![CDATA[Com组件调用JS代码并传递多个参数个JS函数]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/12745799</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/12745799</guid><author>benbencoco</author><pubDate>Tue, 15 Oct 2013 10:39:34 +0800</pubDate><description><![CDATA[项目中经常碰到JS与Com组件交互的问题，通过查找网络资料和项目实际需要，总结如下：
一、Com组件简单回调JS代码
JS中定义函数
    function printMsg(msg1, msg2, msg3, msg4, msg5) {

        alert(msg1);
		alert(msg2);
		alert(msg3);
		alert(msg4);
		alert(m]]></description><category></category></item><item><title><![CDATA[IE使用ATL时不弹出警告框]]></title><link>https://blog.youkuaiyun.com/benbencoco/article/details/12618275</link><guid>https://blog.youkuaiyun.com/benbencoco/article/details/12618275</guid><author>benbencoco</author><pubDate>Fri, 11 Oct 2013 15:56:01 +0800</pubDate><description><![CDATA[在用IE调用编写的ATL组件是，总是会弹出“在此页上的ActiveX控件和本页上的其他部分的交互可能不安全。你想允许这种交互吗？”的对话框，很麻烦，可以通过往接口类中添加如下代码来避免这个问题。
 
代码见图片中红色部分]]></description><category></category></item></channel></rss>