barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком Visual Studio. Показать все сообщения
Показаны сообщения с ярлыком Visual Studio. Показать все сообщения

среда, 7 декабря 2011 г.

Использование WIA Automation в C#

Во-первых, COM-объект wiaaut.dll нужно зарегистрировать в системе, делается это следующим вызовом (из-под администратора):
C:\Windows\system32\regsvr32.exe C:\Windows\system32\wiaaut.dll
Теперь в проекте C# добавляем ссылку на COM-объект. В русскоязычной MS Visual C# Express 2010 это "Обозреватель решений" -> Выбираем текущее решение и проект -> "Ссылки" -> Клик правой кнопкой -> "Добавить ссылку", где переходим на вкладку "COM" и ищем "Microsoft Windows Image Acquisition Library 2.0", после чего нажимаем "ОК".
Всё, теперь в проекте доступно пространство имен WIA, в котором расположены все необходимые интерфейсы. Посмотреть их можно, щелкнув правой кнопкой по "WIA" в Ссылках, и выбрав "Просмотр в обозревателе решений". Например, для получения цветного изображения со сканера  в формате BMP с минимизацией размера получаемого файла используется следующий код:

WIA.CommonDialog dlg = new WIA.CommonDialog();
WIA.ImageFile img = dlg.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType, WIA.WiaImageIntent.ColorIntent,
WIA.WiaImageBias.MinimizeSize, "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}", false, true, false);
Вообще с WIA Automation как-то грустно всё в плане толковой документации и рабочих примеров, особенно на C#, или, не дай Бог, на C++ (есть кое-что на мсдн, но этого явно недостаточно). Как её использовать на чистом (не CLR) C++ я вообще не понял: ни заголовочного файла, ни tlb или idl я так и не нашел, а без них работать становится совсем неудобно. 

четверг, 1 декабря 2011 г.

Сборка C# из командной строки

Для сборки cs-файлов без использования Visual Studio имеется утилита csc.exe, расположенная в директории вроде C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe. Пример вызова:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Security.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll  /target:library project.cs

воскресенье, 20 ноября 2011 г.

MS Visual Studio 2010: cl.exe и "mspdb100.dll not found".

Проблема: при вызове компилятора MS Visual Studio 2010 cl.exe из командной строки получаем ошибку: "The application has failed to start bacause mspdb100.dll was not found ...".
Решение:  перед вызовом непосредственно компилятора cl.exe необходимо запустить в той же командной строке vcvars32.bat.