Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

Visual Studio debugger and referenced libraries

Допустим, в своем проекте MyProgram Вы используете некую библиотеку MyLibrary. Как обычно, подключаете MyLibrary.h, MyLibrary.lib. Все компилируется отлично, а вот при попытке запуска...

---------------------------
MyProgram.exe - Unable To Locate Component
---------------------------
This application has failed to start because MyLibrary.dll was not found. Re-installing the application may fix this problem.
---------------------------
OK
---------------------------

Если вы столкнулись с этой ошибкой - читайте дальше.

Сообщение об ошибке говорит, что MyLibrary.dll was not found. Windows ищет dll в следующих местах:

  1. The directory where the executable module for the current process is located.
  2. The current directory.
  3. The Windows system directory. The GetSystemDirectory function retrieves the path of this directory.
  4. The Windows directory. The GetWindowsDirectory function retrieves the path of this directory.
  5. The directories listed in the PATH environment variable.

Вероятно, ни в одном из вышеперечисленных источников MyLibrary.dll не была найдена. Соответственно, для решения проблемы следует положить MyLibrary.dll в одно из этих мест. Пункты 3 и 4 отшибаем сразу, а остальные случаи разберем подробнее.

  1. The directory where the executable module for the current process is located.

    Наверное, это папка bin/Debug проекта, где линкер создает MyProgram.exe. MyLibrary.dll туда можно скопировать путем создания Post Build Event. Мне эта идея не нравится.

  2. The current directory.

    Можно попросить отладчик менять стартовый каталог запускаемого приложения. Для этого есть настройка проекта Debugging->Working Directory. Мне эта идея тоже не нравится.

  3. The directories listed in the PATH environment variable.

    Можно изменить пользовательскую (или системную) переменную PATH (System Properties->Advanced->Environmental Variables->User variables for %USERNAME%), добавив туда каталог с MyLibrary.dll.

    Но мне больше всего нравится следующий трюк: Visual Studio Debugging Environment

Space between items in horizontal list

Только что придумал, как в HTML отделить элементы горизонтального списка с помощью CSS:
.hor-list-item + .hor-list-item {
   margin-left: 20px;
}
В результате, каждый элемент с классом hor-list-item будет отдален на 20 пикселей от предыдущего элемента с этим же классом. А первый элемент в этот селектор не попадает!

Oxford's Dictionary QuickTime 7 Vista problem

After resolving the problem with Longman Dictionary of Contemporary English 2005 Updated Edition I've got another headache - Oxford Advanced Learner's Dictionary 7th Edition.

The QuickTime Plug-in requires the QuickTime System extension version 5 or later.

That is what I've got. I hate QuickTime and I hate Apple.

After looking at the C:\Program Files\Oxford\OALD7\ folder's structure I realized that Oxford and Longman programs are somehow similar in libraries they use. So the solution is simple - copy plugins folder from QuickTime 7 installation to C:\Program Files\Oxford\OALD7\ with overwrite. That's all!

Longman Dictionary QuickTime 7 Vista problem

Longman Dictionary of Contemporary English 2005 Updated Edition doesn't work with QuickTime 7. However there is a Longman's patch that should solve the problem, but not in case of Windows Vista...

How did I overcome the issue? I've installed QuickTime 6 from Longman's CD and used cracked ldoce4.exe. If you need QuickTime 7 - follow the instructions below.

  1. Uninstall QuickTime 6.
  2. Intall QuickTime 7.X.
  3. Extract contents of this archive to installation folder, overwrite any files.
  4. Copy all files from QuickTime 7's plugins folder to Longman's plugins folder with overwrite.
  5. Apply Longman's patch.
  6. Run program with administrative privileges and enjoy!

After those manipulations I have sound with Vista and QuickTime 7!

Shared Source Solutions for Developers

Вот наткнулся на Майкрософтовский список свободно распостраняемых библиотек, примеров, дополнений и утилит.
Почти все ссылается на CodePlex.

Code Standarts Circus

В документе о код стандарте. Просто цирк.

Verify is always executed and is preferable to Assert unless the condition is expensive to check or the Verify is inside a hot loop. Try to verify all your assumptions about the executing behavior. Lowry suggests that every 5th line of code should be an Assert or Verify.

Best RSS Reader

Когда я только начал использовать RSS, то первым запросом в Гугл стал этот. Результаты, конечно, бестолковые, но Google Reader был замечен и оценен.

Я не люблю, когда мальчикам доверяют мужскую работу. Поэтому всегда по-возможности предпочитаю десктопные приложения. У Google Reader, правда, есть одно существенное преимущество - возможность просматривать RSS не отрываясь от браузера (кстати, плагин Wizz RSS для Мозиллы тоже неплох).

Ладно. К черту веб. Приложение, на котором я остановился - FeedDemon. Альтернатив с таким функционалом просто нет. Правда, хитрые дядьки для отображения контента используют IE Host :).

Enterprise Management

Американцы и японцы решили устроить соревнование по гребле. Обе команды долго и упорно тренировались, чтобы достичь высшей спортивной формы. И вот в один прекрасный день, они решили, что уже готовы. Японцы победили, обогнав американцев на одну милю.

Американская команда была горько разочарована своим проигрышем. Просто пала духом. Корпоративное руководство постановило, что надо найти причину разгромного поражения и потому наняло консалтинговую фирму, чтобы разобраться, в чем проблема и получить совет, что следует предпринять. Консалтинговая компания выяснила, что в японской команде восемь человек гребли, а один был на руле, тогда как в американской был один гребец и восемь рулевых. После года изысканий и миллионов долларов, потраченных на анализ проблемы, консалтинговая фирма пришла к выводу, что в американской команде было слишком много рулевых и слишком мало гребцов.

Итак, по мере того как в следующем году приближался день повторных соревнований, структура руководства американской команды была полностью реорганизована. В новой структуре было четыре менеджера по рулению, три менеджера в области руления и новая система оценки выступления гребца, чтобы обеспечить рабочую инициативу.

На следующий год японцы обогнали американцев на две мили. Униженная американская корпорация уволила гребца за плохое выступление и выдала менеджерам премию за выявление проблемы.

ATL Server attributes are not supported by Orcas

Только что выяснил, что Visual Studio 2008 больше не поддерживает attributed ATL. Плохо.
Copyright 2007-2011 Chabster