Новый сайт по новому адресу ignatiev.su - Игнатьев Иван
Если вы что-то искали и не нашли, или у вас возникли вопросы, пишите на e-mail: ivan@ignatiev.su

Новый блог по адресу Блог об ИТ и программировании на русском. Если вы хотите, чтобы я обновил, какие-либо статьи, пожалуйста напишите мне на email.


Microsoft

Feb 06, 2010 Microsoft

Создание плейера Silverlight, без программирования

Никто лучше, чем коллеги из Microsoft об этом не расскажут:
Читать далее →



Oct 04, 2009 Microsoft

Проблема с SQL Server 2008

Если при попытке открытия файла базы данный SQL Server`а *.mdf в Visual Studio , случилась ошибка:

Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.

То не паникуйте, решение очень простое, всего необходимо сделать три вещи:
1. Удалить папку C:\Users\[username]\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS;
2. Перезапустить компьютер или SQL Server;
3. В ConnectionString указать User Instance = False.

И вуа ля все работает как нужно.



Sep 14, 2009 Microsoft / Задачи программирования

Управление потоками в Windows

Основой из основ распределенных вычислений я считаю потоки приложений. На базе них можно реализовать распределенный вычисления на локальной машине, как с общей памятью(если функция потока будет изменять глобальную для приложения область памяти ), так и с разделенной (если функция потока будет работать с собственными локальными переменными/памятью).
В работе с потоками в Windows задействовано, две основные функции:

  • Первая – это функция из API отвечающая за создание потокаCreateThread();
  • Втораяфункция самого потока, которая задается пользователем – ThreadProc().

Не буду многословен, вот пример:

#include <windows.h>
#include <stdio.h>
 
void *mainThread;
DWORD * id;
 
// Наша ThreadProc
DWORD WINAPI treadFunction(LPVOID lpParameter) {
     DWORD exitCode;
     while (GetExitCodeThread(mainThread,&exitCode) && exitCode == STILL_ACTIVE) { // пока не выйдем из программы
           // что-то делаем в отдельном потоке
           printf("-----------------  Hello from sub thread\r\n");
           Sleep(5000); // сделаем паузу чтобы вывод не превратился в "мясо на экране"
     }     
     return 0; 
}
 
int main() {
       mainThread = GetCurrentThread(); // достаем ссылку на поток текущего приложения
       CreateThread(NULL,0,treadFunction,NULL,0,id); // создаем новый поток
 
       while(true) {
                   //  программа тоже делает что-то свое
                   printf("Hello from main thread\r\n");
                   Sleep(1000); // аналагично комментарию к Sleep выше
       }
       return 0; // выходим из программы
}

Данный пример будет выводить в консольное окно каждые 5 секунд “—————– Hello from sub thread” из созданного потока и “Hello from main thread” каждую секунду. Что подтверждает одновременную работу функции потока, и основного потока программы.

P.S. Сегодня сменил дизайн блога, со стандартного на Cleanr, сам за создание дизайна не взялся, потому что давно этого уже не делал, да и как-то не охота.



Sep 11, 2009 Microsoft

Создаем MP3-плеер на Microsoft Silverlight Три

Продолжаю работу над изучением технологии Silverlight, тем более, что сегодня узнал две новости:

Сегодня я напишу о основном элементе любого media-приложения на Silverlight – <MediaElement>, оказалось, что есть некотрый подвох в его использовании.

Самый простой вариант кода элемента MediaElement:

<MediaElement Name="MP3Elem" Source="[Адрес]" AutoPlay="[True|False]"/>

Адрес – адрес к файлу на локальном компьютере, либо расположенном на удаленном сервере (поддерживаются HTTP и HTTPs протоколы). Про форматы и прочее рекомендую прочитать все в книге.

И тут все бы хорошо, но я столкнулся с неожиданным подвохом. ! Сначала я создал silverlight-приложение без Web-хоста (просто при Buildе создавался файлик TestPage.html, который я открывал в браузере и смотрел в результат ). Так вот, получилось так, что если наше творение не на хосте, при попытки открытия удаленного медиа-файла по HTTP возникает ошибка AG_E_NETWORK_ERROR, но как только я разместил его на веб-сервере и обратился к нему по http://localhost/…, чудесным образом все заработало.

Работающий пример кода элемента:

<MediaElement Name="MP3Elem" Source="http://nezname.com/music/piano_podcast_11.mp3" AutoPlay="True"/>

Будет воспроизводить вам Piano podcast #11 “Искры”.

Продолжение следует



Jul 24, 2009 Microsoft

Результаты второго шага

Во втором шаге, как я писал ранее мы напишем калькулятор. Первое что необходимо сделать, это сформировать постановку задачи. Кто работал – тот знает, что “сделайте калькулятор, как в windows (linux, mac os etc.)” понятие растяжимое. Поставим задачу, например такую:
Читать далее →