В целом фильм вызывает смешаные чувства, куча роялей и контрастов. Собрали кучу маленьких фильмецов и вот вам чудо кино. Местами интересно, местами хочется выйти из зала. Книжку я читал, и сочинение по ней писал в школе в каких лохматых годах того столетий. Но Черт возьми, книга явно имеет другой окрас и другую интонацию чем фильм ! Кровавые сцены порой вызывают тошные чувства, а сцена казни...
Небольшая рецензия.
http://www.filmz.ru/pub/7/16435_1.htm
Патриотическое кино - Тарас Бульба
Автор: master на 2:17 0 коммент.
Tips & tricks WinForms .NET 2
Перемещение окна за любое место
const int HTCAPTION = 2;
const int HTCLIENT = 1;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_NCHITTEST && (int)m.Result == HTCLIENT)
m.Result = (IntPtr)HTCAPTION;
}Syhi-подсветка кода
Автор: master на 23:37 0 коммент.
Ярлыки: .NET
Shell COM для Window x64
Много программ хорошо работает как под x32 так и под x64 виндами. Но есть то что не будет работать - это расширения для Shell x64 винды, написаные для x32 ( можно зарегать под x32 проводник, но этот путь не для настоящих джедаев ).
Создать расширение для оболочки Windows x64, оказывается на поверку тривиальной задачей.
Для начала понадобится компилятор x64 - в VS2008 уже включен.
Compiling 64 bit DLL/EXE
1. Open your Visual C++ Solution
2. Choose Build->Configuration Manager menu
3. Inside the Configuration Manager window, change the ‘Active solution platform’ to x64. If you don’t have any, you would need to create one by selecting the ‘New..’ drop down item. Copy settings from your Win32 platform.
4. Now rebuild your solution.
Если возникли ошибки связаные с типами, меняем : INT_PTR <- int. DWORD_PTR <- DWORD.
Специфичный код обрамляем в соотвествующие макросы _WIN64 и _WIN32.
Регистрация осуществляется с помощью : C:\Windows\System32\regsvr32.exe (64 bit)
Для висты требуются админские права.
Автор: master на 2:33 0 коммент.
Восстановление устройства в DirectX
Немного кода...
// c девайсом пока ничего не случилось
if ( false == m_bDeviceLost )
{
if ( hr == D3DERR_DEVICELOST )
{ // произошли проблемы
m_bDeviceLost = true;
OnLostDevice();
}
}
// если девайс не сбросили надо его сбросить
if ( hr == D3DERR_DEVICENOTRESET )
{
hr = m_pD3DDevice->Reset ( &m_d3dpp );
if ( hr == D3D_OK )
{
OnResetDevice();
// девайс в порядке
m_bDeviceLost = false;
}
else
if ( hr == D3DERR_DEVICELOST )
{
// произошли проблемы
m_bDeviceLost = true;
OnLostDevice();
}
}Syhi-подсветка кода
Этот код достаточно вставить перед вызовом BeginScene для девайса.
OnLostDevice - релизим все ресурсы которые с типом D3DPOOL_DEFAULT,
OnResetDevice - аналогично пересоздаем все ресурсы с типом D3DPOOL_DEFAULT, для всех ID3DX интерфейсов вызываем соответствующие методы.
Если у вас происходит ресайз окна достаточно вызвать последовательность методов
OnLostDevice, затем Reset девайсу, OnResetDevice.
Mожно вставить проверки на возвращаемые значения для BeginScene (), EndScene (), Present ().
Автор: master на 0:29 0 коммент.
Ярлыки: DirectX
"Open source" от microsoft
В последнее время озаботился тулзами и всякими либами для .NET (бесплатные и желательно с открытыми сорцами). Вот те на http://www.codeplex.com/ - чудо сайт "CodePlex is Microsoft's open source project hosting web site. Start a new project, join an existing one, or download software created by the community." - описание с сайта подняло настроение.
http://www.codeplex.com/ScintillaNET ( контрольчик для подсветки синтаксиса, для тех кто из тундры или с другой планеты ) - эта тулза так вапще находка для токаря. Ковыряние с исходниками и написание своего маленького теста (посветка кода lua, xml), мое настроение улетело в горы ! Все работает как часики.
Автор: master на 10:47 0 коммент.
Ярлыки: .NET
Tips & tricks WinForms .NET
"Отзывчивое окно"
У class System.Windows.Forms.Form, есть свойство Opacity, достаточно установить его значение в 99%, и мы получаем отзывычивое окошко если на заднем фоне имеется, какое то окно с активной перерисовкой. Нет тормозов при перемещении окна. Думаю это аппаратный альфебленд, на видеокарте.(такой трюк провернуть через WIN 32 API, не удалось появлялись глюки с выпаданием пикселей).
"WinFormSingleton" NoneSafeThread
Как сделать из Form подобиее синглтона ? смотрим ниже код
private FormSingleton m_oFormSingleton = null;
private void ShowFormSingleton(object sender, EventArgs e)
{
if (null == m_oFormSingleton)
{
m_oFormSingleton = new FormSingleton();
m_oFormSingleton.Show();
m_oFormXmlTrackSettings.Closed += new EventHandler(FormSingleton_Closed);
}
}
private void FormSingleton_Closed(object sender, EventArgs e)
{
m_oFormSingleton.Closed -= new EventHandler(FormSingleton_Closed);
m_oFormSingleton = null;
}
#endregionSyhi-подсветка кода
Автор: master на 4:59 0 коммент.
Ярлыки: .NET
Дауншифтинг
Ежедневный парс электронный новостей приводит к тому что обрастаешь небольшим сленгом. Непереводимые слова, транслит и прочее... на этом фоне весьма любопытным для меня оказалось слово "Дауншифтинг".
Дауншифтинг (англ. downshifting, замедление или ослабление какого-то процесса) —сленговый термин, обозначающий жизненную философию «жизни ради себя», «отказа от чужих целей» (также применяется синоним Simple living).
В классическом понимании дауншифтинг — это всегда выбор между доходами и стрессами и душевным комфортом за меньшее вознаграждение. Обычно, уходя из бизнеса или со стрессовой работы, люди преследуют такие цели, как получение большего количества времени на увлечения или на семью. (содрано с вики).
Все желающие могут поподробнее изучить это по двум линкам -
http://ru.wikipedia.org/wiki/%D0%94%D0%B0%D1%83%D0%BD%D1%88%D0%B8%D1%84%D1%82%D0%B8%D0%BD%D0%B3
http://community.livejournal.com/ru_downshift
Автор: master на 10:18 0 коммент.
Установка имени потока в msvc.
При отладке в Microsoft Visual Studio 2005/2008 (с++), потокам в режиме debug-breakpoints можно задать имена. Поиск по мсдн ничего толком не дал. По остальным источникам, оказалось что есть вот такая функция, даже работает. (проверено )) Вот исходный код, пользуемся.
void SetThreadName ( DWORD nThreadID, const char* pThreadName )
{
struct
{
DWORD dwType; // Должно быть 0x1000
LPCSTR szName; // Указатель на строку с именем
DWORD dwThreadID; // Идентификатор потока ( -1 для текущего )
DWORD dwFlags; // Зарезервировано ( должно быть 0 )
}
info = { 0x1000, pThreadName, nThreadID, 0 };
__try
{
// 0x406D1388 - магическое число, которое сообщает отладчику имя потока
RaiseException ( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&info );
}
__except ( EXCEPTION_CONTINUE_EXECUTION )
{
}
}Syhi-подсветка кода
Автор: master на 6:43 1 коммент.
Ярлыки: WinAPI