博客日历
2024年11月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 1 |
存档
2024年03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
在IE10中调试BHO无法进入断点
要调试浏览器的插件(BHO),常见的方法是先设置下面的注册表值:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] "TabProcGrowth"=dword:00000000
但是在64bit系统下的Internet Explorer 10中,设置TabProcGrowth=0之后会导致浏览器的32bit插件(BHO)不能加载。
详见:http://support.microsoft.com/kb/2716529/en-us
要单步调试时,只能编译为64bit版本了。
TabProcGrowth的作用详解:
http://blogs.msdn.com/b/askie/archive/2009/03/09/opening-a-new-tab-may-launch-a-new-process-with-internet-explorer-8-0.aspx
摘录如下:
HKCU\Software\Microsoft\Internet Explorer\Main - TabProcGrowth (string or dword)
Tab Process Growth : Sets the rate at which IE creates New Tab processes.
There are two algorithms used by Internet Explorer:
1. Context-based: By default, the context-based algorithm is used and the curve is chosen based on the amount of physical memory on the machine. In addition, the TabProcGrowth string registry value may be manually forced to:
a) small: Maximum 5 tab processes in a logon session, requires 15 tabs to get the 3rd tab process.
b) medium: Maximum 9 tab processes in a logon session, requires 17 tabs to get the 5th tab process.
c) large: Maximum 16 tab processes in a logon session, requires 21 tabs to get the 9th tab process.
2. The "Max-Number" algorithm: This specifies the maximum number of tab processes that may be executed for a single isolation session for a single frame process at a specific mandatory integrity level (MIC). Relative values are:
a) TabProcGrowth=0 : tabs and frames run within the same process; frames are not unified across MIC levels.
b) TabProcGrowth =1: all tabs for a given frame process run in a single tab process for a given MIC level.
Note: On Terminal Server, the default value is the integer of 1.
c) TabProcGrowth >1: multiple tab processes will be used to execute the tabs at a given MIC level for a single frame process. In general, new processes are created until the TabProcGrowth number is met, and then tabs are load balanced across the tab processes.
Note: that the frame process is no longer allowed to execute at low-MIC. If this is attempted, the process will exit.
分类:Win32/C++ 查看次数:11671 发布时间:2013/10/31 10:26:29
替换CCRC的对比工具为WinMerge
// CCRC 是 IBM Rational ClearCase Remote Client 的缩写
// 编译选项:
// cl ccrc_cleardiffmrg.cpp /link user32.lib
// 使用方法:
// 复制ccrc_cleardiffmrg.exe到下面的目录(注意先备份以前的):
// D:\Program Files\CCRC7.1\CCRC\plugins\com.ibm.rational.clearcase.compare_merge.win32.x86_7.0.1.D061004
#include <stdio.h>
#include <string.h>
#include <windows.h>
int main(int argc,char* argv[])
{
/*
记录CCRC传递给ccrc_cleardiffmrg.exe的参数:
-----------------------------------------
FILE *f=fopen("ccrc.txt","w+");
int i=0;
for(;i<argc;i++)
{
fwrite(argv[i],strlen(argv[i]),1,f);
fwrite("\n",strlen("\n"),1,f);
}
fclose(f);
D:/Program Files/CCRC7.1/CCRC/plugins/com.ibm.rational.clearcase.compare_merge.win32.x86_7.0.1.D061004/ccrc_cleardiffmrg.exe
-fname
test.py@@/main/xxxx/7
-fname
test.py@@/main/xxxx/8
test.py.compare.0
test.py
*/
char szCmdLine[1024];
sprintf(szCmdLine,"\"D:\\Program Files\\WinMerge\\WinMergeU.exe\" \"%s\" \"%s\"",argv[argc-1],argv[argc-2]);
STARTUPINFO si;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
ZeroMemory( &pi, sizeof(pi) );
if( !CreateProcess(NULL,szCmdLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi ))
{
MessageBox( 0,"Create WinMergeU.exe Process failed.","Error",MB_ICONWARNING );
return -1;
}
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return 0;
}
分类:Win32/C++ 查看次数:6546 发布时间:2013/10/28 21:27:06