Интересный и оч удобный механизм работы с, в данном случае, критическими секциями. Реализация проста, а избавляет от большого количества головняка...
Идиома владения в применении к объектам синхронизации
25 окт. 2010 г.
22 окт. 2010 г.
C++ Перлы
switch(dwNotifyID)
{
case NOTIFYPARENT_BEGIN_INSTALL_OPERATIONS:
m_cProgressPage.SetPageText(SZ_INSTALL_HEADER_PROGRESS_PAGE_TEXT);
break;
}
return m_rInstall.NotifyParent(dwNotifyID, dwData);
21 окт. 2010 г.
Character GuideLine в Microsoft Visual Studio
В MS Visual Studio нет возможности в диалоговом режиме изменить положение так называемого Character Guidline - вертикальной полоски в окне редактора, очерчивающую визуальную границу ширины строки. ФЙункционально оно ничего не делает, просто показывает, где находится, например, 80-й символ.
Настройка этого параметра производится через правку системного Реестра. В ветке:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\<версия MSVS>\Text Editor]
изменяется строковый ключ Guides, который принимает значение:
"RGB(128,0,0) n1,n2,n3..."
, где n1,n2,n3 - расстояния в символах от левого края окна для каждой из линий, соответствующих каждому n (их может быть до 13 штук), "128,0,0" - RGB-цвет линии.
Настройка этого параметра производится через правку системного Реестра. В ветке:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\<версия MSVS>\Text Editor]
изменяется строковый ключ Guides, который принимает значение:
"RGB(128,0,0) n1,n2,n3..."
, где n1,n2,n3 - расстояния в символах от левого края окна для каждой из линий, соответствующих каждому n (их может быть до 13 штук), "128,0,0" - RGB-цвет линии.
Скрытые возможности С++
Гы. Или как это еще сейчас принято говорить в обществе - LOL. Скрытые возможности С++
О стратегиях выделения динамической памяти
Интересная заметка О стратегиях выделения динамической памяти. Интересен не только конкретный случай, а вообще тенденция.
13 окт. 2010 г.
Стиль кодирования
"Другими словами, чем больше информации о том, что делает код, расположено прямо перед вашими глазами, тем более эффективной будет работа по поиску ошибок." Joel Spolski. Как заставить неправильный код выглядеть неправильно.
7 окт. 2010 г.
Останов консольной программы по окончанию
Понравилось мне использовать
перед return в консольных программках. Оно выполняет консольную команду pause и, соответственно, ждет нажатия на любую клавишу, после чего программа завершается. Для дебагу очень удобно.
::system("pause");
перед return в консольных программках. Оно выполняет консольную команду pause и, соответственно, ждет нажатия на любую клавишу, после чего программа завершается. Для дебагу очень удобно.
6 окт. 2010 г.
Парочка макросов под Visual Studio 2008
Субж:
1. Выделяет активный документ в окне Solution Explorer:
У студии есть настройка Tools/Options/Projects and Solutions/Track Active Item In Solution Explorer, которая позволяет автоматически выделяти активный документ в SE. Этот макрос пользует эту фичу - включил/выключил/активировал окно Solution Explorer.
2. Открывает связанный с активным файл. Если открыт C, CPP, CC, то открывается файл с тем же именем но заголовочным расширением H, HPP, HH, and vice verse.
3. Форматирует в активном файле блоки if( ... ), обрамляя одним пробелом тело условия:
1. Выделяет активный документ в окне Solution Explorer:
Public Sub LocateFileInSolutionExplorer()
DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
DTE.ExecuteCommand("View.SolutionExplorer")
End Sub
У студии есть настройка Tools/Options/Projects and Solutions/Track Active Item In Solution Explorer, которая позволяет автоматически выделяти активный документ в SE. Этот макрос пользует эту фичу - включил/выключил/активировал окно Solution Explorer.
2. Открывает связанный с активным файл. Если открыт C, CPP, CC, то открывается файл с тем же именем но заголовочным расширением H, HPP, HH, and vice verse.
Sub OpenCorrspFile()
Dim sSF, sSP As String
Dim sDF, sDP As String
Dim sSE, sDE As String
sSP = DTE.ActiveDocument.Path
sSF = DTE.ActiveDocument.Name
sSE = LCase(Right(sSF, Len(sSF) - InStrRev(sSF, ".")))
sSF = Left(sSF, InStrRev(sSF, ".") - 1)
If ((sSE = "h") Or (sSE = "hpp")) Then
If ("" <> Dir(sSP + sSF + ".c")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".c")
End If
If ("" <> Dir(sSP + sSF + ".cc")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".cc")
End If
If ("" <> Dir(sSP + sSF + ".cpp")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".cpp")
End If
End If
'======================================================
If ((sSE = "c") Or (sSE = "cpp") Or (sSE = "cc")) Then
If ("" <> Dir(sSP + sSF + ".h")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".h")
End If
If ("" <> Dir(sSP + sSF + ".hpp")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".hpp")
End If
If ("" <> Dir(sSP + sSF + ".hh")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".hh")
End If
End If
End Sub
3. Форматирует в активном файле блоки if( ... ), обрамляя одним пробелом тело условия:
Sub FormatIF()
DTE.Find.FindWhat = "{:b*}if{:b*}:Ps{:b*}{.*}>{:b*}:Pe{:b*}$"
DTE.Find.ReplaceWith = "\1if( \4 )"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = False
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.Execute()
End Sub
Labels:
hack,
Microsoft,
programming,
scripts,
Visual Studio
5 окт. 2010 г.
Наладонник Asus MyPal p526. Грязный хак.
Второй год пользую так называемый PC-Phone Asus MyPal p526. В общем и целом - нормально.
Но есть у него фича, которая сильно меня доставала. У него на правой контекстной кнопке по-умолчанию висит вызов Voice Commander. Утилиты, как по мне, совершенно бесполезной. Тем паче, учитывая ее тормознутость.
Должно было пройти 2 года, чтобы я додумался найти в директории Windows устройства ярлык Voice Commander.lnk, удалить его и заместить ярлыком с тем же именем, но на, в моем случае, калькулятор. Хак грязный, но вынужденный. Ибо штатной возможности переназначить эту кнопку я не нашел.
Но есть у него фича, которая сильно меня доставала. У него на правой контекстной кнопке по-умолчанию висит вызов Voice Commander. Утилиты, как по мне, совершенно бесполезной. Тем паче, учитывая ее тормознутость.
Должно было пройти 2 года, чтобы я додумался найти в директории Windows устройства ярлык Voice Commander.lnk, удалить его и заместить ярлыком с тем же именем, но на, в моем случае, калькулятор. Хак грязный, но вынужденный. Ибо штатной возможности переназначить эту кнопку я не нашел.
4 окт. 2010 г.
Adobe Open Source
Хмм. Никогда не думал, что Adobe будет двигаться в направлении Open Source. Ан нет. Набрел на ресурс Adobe Open Source. Фотошопом они, конечно, делиться не будут, но и открытие исходников нескольких проектов, имхо, тоже показатель...
Подписаться на:
Сообщения (Atom)