DLL Hell Redux One Way Around the Latest Dynamic Link Library Problem by Dino Esposito

Total Page:16

File Type:pdf, Size:1020Kb

DLL Hell Redux One Way Around the Latest Dynamic Link Library Problem by Dino Esposito DLL Hell Redux One way around the latest dynamic link library problem By Dino Esposito emember the notorious DLL In addition to top commercial suites not, you must first download binaries Hell problem? About a of user interface controls, you’ll find to the development machine and then decade ago, before the ad - quite a few well-done, free open browse your hard disk in order to ref - vent of the .NET platform, source libraries . erence them in the new project. Rmost applications were based on dy - Increasingly, .NET software projects Sometimes you must repeat the oper - namic link libraries, and multiple apps are based on a variety of third-party ation for multiple assemblies. And often shared DLLs. components. On average, a project sometimes you also have to enter At that time, DLLs were identified can use six or seven of them. For ex - changes in the configuration file of the primarily by name, and version info ample, an ASP.NET MVC project may .NET application and add ad hoc often wasn’t recorded properly. If a have an IoC framework, a mocking li - source files to the project. With few new application inadvertently re - brary, ELMAH or something similar exceptions, referencing a third-party placed a shared DLL component, for error handling, perhaps the Mi - component is painful. other apps that used that component crosoft Enterprise Library, DotNe - would break. The solution to this tOpenAuth for authentication against Free Package Manager problem came with the .NET plat - social networks, NHibernate or some NuGet is a free package manager form and Global Assembly Cache, Entity Framework extensions, jQuery application aimed at making it easier which gives registered components and friends, maybe some other facili - for developers to reference third- strong names that contain details such ties for mobile and HTML5 views and party libraries from within a Visual Studio project. NuGet provides a command line and GUI front end so NuGet saves developers time packages can be quickly installed and and ensures that they only access uninstalled. It acts as a host for up - loaded packages and lets developers an approved set of libraries . discover them by name and tag-based searches. as version and author information. client-side validation. The list goes on Integrated in Visual Studio 2010, With this problem solved , develop - and on. NuGet lets developers reference a com - ers now are grappling with a new one: There are two problems with third- monly used third-party library with the third-party DLL Hell. party components. Companies must one click. You open the package man - In the beginning of the .NET era, ensure that developers can only use an ager, scroll the list of available pack - applications used only a few commer - approved set of libraries. And develop - ages, pick up the one you’re looking cial third-party libraries, mostly for ers face the problem of repeatedly go - for, accept the license agreement (set user interface needs. The number of ing through the same (often cumber - by the package author, not Microsoft), these components per application some) configuration procedure for a and download. was low, and managers knew which given library—a frustrating and time- Each NuGet package contains files ones they were because they had to consuming operation. (sources, data, help, and binaries) to pay for them. Referencing some of these third- be added to the Visual Studio project Today, many more high-quality, party components isn’t as easy as ref - and instructions for the manager. third-party components are available. erencing an assembly. More often than Once the download is complete, the informationweek.com Oct. 17, 2011 47 Copyright 2011 UBM LLC. Important Note: This PDF is provided solely as a reader service. It is not intended for reproduction or public distribution. For article reprints, e-prints and permissions please contact: Wright’s Reprints, 1-877-652-5295 / [email protected] package manager Xcopies the files and open source projects. A large and upload custom packages for others to sets up the project as appropriate. growing number of .NET developers use. And, unlike the Apple App Store This means, for example, that assem - use it, and just the fact that adding a and Windows Phone 7 marketplaces, blies in the package are added to the dependency is so easy represents a there’s no approval workflow for sub - list of existing project references, and good reason to add more third-party mitted packages . changes required to the configuration components and libraries. ( I think NuGet can be configured to point file are merged with the current con - this is similar to what happened in to a shared folder on the intranet , let - figuration file. the ’90s with Visual Basic and VBX ting a company have its own local In a couple of clicks, you’re set. components.) NuGet installation . Developers enjoy NuGet definitely saves time. Companies often put strict bound - the benefits of NuGet, while man - aries around which frameworks agers ensure that developers access Vibrant .NET Community and libraries their developers can only an approved set of libraries. In According to Phil Haack, one of the use, and they often designate a select addition, you no longer need to NuGet architects , the utility’s primary group of people to approve the third- produce internal documentation on goal is to foster a vibrant .NET open party components that can be used. how to locate and install approved source community by simplifying the Open access to NuGet’s repository libraries. way in which .NET developers share doesn’t necessarily break these and use open source libraries. policies. Dino Esposito is the author of a num - In this regard, NuGet was a great NuGet package managers read the ber of books about Microsoft pro - success. Launched less than a year feed of available libraries from a Mi - gramming technology. Write to us at ago, it’s one of the most compelling crosoft website where developers can [email protected]. Windows 8 And Developer Madness Get ready for another costly migration very 10 years or so, Microsoft accumulate, especially for sites that, for like kiosk software with brightly col - informs its programmer com - one reason or another, can’t migrate ored boxy buttons and no complex, Emunity that it’s radically chang - applications to the new platforms. messy features like dialog boxes. ing platforms. In the early 1990s, it (Those that can, of course, still bear the Metro UIs can be written in HTML5 moved developers from DOS-based price of migration, but presumably this and CSS, or by using an XML-like in - APIs to Win32 by forcing them is a one-time cost.) terface definition called XAML. UIs through a painful series of API sub - At least the migration from DOS to written in HTML5 and CSS run on a sets: Win16 to Win32s and Win32g Win32 had compelling motivators: a JavaScript engine; those using XAML to Win32. In the early 2000s came GUI interface and a 32-bit operating talk directly to a new OS library, the push to migrate to .NET. Now system. The migration from Win32 to called Windows Runtime, principally comes a new migration: to Windows .NET had a less obvious benefit: so- using C/C++. 8’s constellation of new technologies called “managed code,” which in Desktop apps can still be written in announced at the Build conference in theory eliminated a whole class of bugs .NET and use Silverlight, for example, September. and provided cross-language portability. but Microsoft hasn’t put forth a long- In both the Win32 and .NET migra - It’s not clear that the first benefit war - term road map for these suddenly tions, Microsoft supported backward ranted rewriting applications, nor that legacy technologies. It has strongly compatibility. But by changing the UI, the second one created lasting value. hinted, though, that the future will limiting updates, and providing dimin - The just-announced Windows 8 look more like Metro and that devel - ished support, Microsoft obliged com - technologies are for writing “Metro” opers must get on board. Given the panies to either rewrite their existing apps. (All previous software is now lack of stated benefits, however, it’s code or, at least, write future code for grouped into the legacy category of hard to see how or why they should go the preferred platforms. desktop apps.) Metro apps have a with the new paradigm, or even why The costs of these past migrations wholly new UI derived from Microsoft’s they should care. have been enormous and continue to mobile offerings and intended to look —Andrew Binstock ([email protected]) 48 Oct. 17, 2011 informationweek.com.
Recommended publications
  • Programming with Windows Forms
    A P P E N D I X A ■ ■ ■ Programming with Windows Forms Since the release of the .NET platform (circa 2001), the base class libraries have included a particular API named Windows Forms, represented primarily by the System.Windows.Forms.dll assembly. The Windows Forms toolkit provides the types necessary to build desktop graphical user interfaces (GUIs), create custom controls, manage resources (e.g., string tables and icons), and perform other desktop- centric programming tasks. In addition, a separate API named GDI+ (represented by the System.Drawing.dll assembly) provides additional types that allow programmers to generate 2D graphics, interact with networked printers, and manipulate image data. The Windows Forms (and GDI+) APIs remain alive and well within the .NET 4.0 platform, and they will exist within the base class library for quite some time (arguably forever). However, Microsoft has shipped a brand new GUI toolkit called Windows Presentation Foundation (WPF) since the release of .NET 3.0. As you saw in Chapters 27-31, WPF provides a massive amount of horsepower that you can use to build bleeding-edge user interfaces, and it has become the preferred desktop API for today’s .NET graphical user interfaces. The point of this appendix, however, is to provide a tour of the traditional Windows Forms API. One reason it is helpful to understand the original programming model: you can find many existing Windows Forms applications out there that will need to be maintained for some time to come. Also, many desktop GUIs simply might not require the horsepower offered by WPF.
    [Show full text]
  • GOTOHELL.DLL: Software Dependencies and The
    GOTOHELL.DLL Software Dependencies and the Maintenance of Microsoft Windows Stephanie Dick Daniel Volmar Harvard University Presented at “The Maintainers: A Conference” Stephens Institute of Technology, Hoboken, NJ April 9, 2016 Abstract Software never stands alone, but exists always in relation to the other soft- ware that enables it, the hardware that runs it, and the communities who make, own, and maintain it. Here we consider a phenomenon called “DLL hell,” a case in which those relationships broke down, endemic the to Mi- crosoft Windows platform in the mid-to-late 1990s. Software applications often failed because they required specific dynamic-link libraries (DLLs), which other applications may have overwritten with their own preferred ver- sions. We will excavate “DLL hell” for insight into the experience of modern computing, which emerged from the complex ecosystem of manufacturers, developers, and users who collectively held the Windows platform together. Furthermore, we propose that in producing Windows, Microsoft had to balance a unique and formidable tension between customer expectations and investor demands. Every day, millions of people rely on software that assumes Windows will behave a certain way, even if that behavior happens to be outdated, inconvenient, or just plain broken, leaving Microsoft “on the hook” for the uses or abuses that others make of its platform. Bound so tightly to its legacy, Windows had to maintain the old in order to pro- mote the new, and DLL hell highlights just how difficult this could be. We proceed in two phases: first, exploring the history of software componenti- zation in order to explain its implementation on the Windows architecture; and second, defining the problem and surveying the official and informal means with which IT professionals managed their unruly Windows systems, with special attention paid to the contested distinction between a flaw on the designer’s part and a lack of discipline within the using community.
    [Show full text]
  • A Programmer's Introduction to Visual Basic.NET
    00 2203-x FM 5/25/01 9:57 AM Page i Dear Reader, I wanted to take this opportunity to explain the rationale behind this book showing up on your shelf for free. Quite some time ago, Sams Publishing determined that the next big thing to hit the programmer/developer community would be Microsoft’s Visual Studio.NET and the .NET Framework. After discussions with many of you, our authors and key Microsoft team members, Sams dedicated itself to a strategy that would support your efforts to learn the .NET Framework as efficiently and as quickly as possible. A Programmer’s Introduction to Visual Basic.NET is the perfect example of how our strong relationship with Microsoft and our dedication to bring- ing you authors who are already respected sources in the community suc- cessfully blend and show that Sams Publishing is the source for .NET learning. Bringing you a Beta2 compliant book by May 2001 was not an easy task. Sams called upon a respected author, Craig Utley, to take on this project. Craig holds a unique place in the VB community where he has been devel- oping in VB since version 1.0. He brings years of experience as a trainer, writer, and speaker to this project and gives you the solid reference you need to make the transition from VB to VB.NET. I hope this book gives you the tools you need to begin to learn VB.NET. I invite your comments and ideas as I work to make Sams the publisher you look to as your .NET learning resource.
    [Show full text]
  • Managing the Evolution of .NET Programs
    Managing the Evolution of .NET Programs Susan Eisenbach, Vladimir Jurisic and Chris Sadler Department of Computing Imperial College London, UK SW7 2BZ [sue, vj98]@doc.ic.ac.uk School of Computing Science Middlesex University London, UK N14 4YZ [email protected] Abstract Programs in the .NET environment consist of collaborating software components, and the Common Language Runtime has been designed in such a way that linking occurs ‘just-in-time’. This offers a good platform for transpar- ent evolution, provided that compatibility can be maintained between service- providing components and their clients. One goal of program evolution is to use the most recent version of each com- ponent that will actually link. We propose a model of a cache of interdepen- dent evolving components with operations defined to update this cache safely. A demonstration tool Dejavue.NET implements these ideas. 1 Introduction The dynamic link library (DLL) was invented to allow applications running on a sin- gle system to share code. Sharing code in this way confers several distinct benefits. In the first place, applications both when running in memory and when stored on disk are likely to be smaller because duplicated code has been eliminated. In the second place, applications accessing common code share a common functionality so they all do cer- tain things in the same way. This is good for the users, who get a reliable and predictable user interface. It is also makes the operating system design more straightforward, with provision of access to certain facilities through narrow and well-defined interfaces. The main benefit however, arises when the DLL needs to be corrected or enhanced – in other words, to evolve.
    [Show full text]
  • NET Framework Overview
    .NET Framework Overview .NET Framework, CLR, MSIL, Assemblies, CTS, etc. Svetlin Nakov Telerik Corporation www.telerik.com Table of Contents 1. What is .NET? Microsoft .NET platform architecture 2. What is .NET Framework? .NET Framework Architecture 3. Common Language Runtime (CLR) 4. Managed Code 5. Intermediate Language MSIL 6. Assemblies and Metadata 7. .NET Applications Table of Contents (2) 8. Common Language Infrastructure (CLI) and integration of different languages Common Language Specification (CLS) Common Type System (CTS) 9. Framework Class Library 10. Integrated Development Environment Visual Studio .NET Framework Microsoft's Platform for Application Development What is the .NET Platform? The .NET platform Microsoft's platform for software development Unified technology for development of almost any kind of applications GUI / Web / RIA / mobile / server / cloud / etc. .NET platform versions .NET Framework Silverlight / Windows Phone 7 .NET Compact Framework What is .NET Framework? .NET Framework An environment for developing and executing .NET applications Unified programming model, set of languages, class libraries, infrastructure, components and tools for application development Environment for controlled execution of managed code It is commonly assumed that .NET platform == .NET Framework .NET Framework Components Common Language Runtime (CLR) Environment for controlled execution of programmed code – like a virtual machine Executes .NET applications Framework Class Library (FCL) Standard class library
    [Show full text]
  • Windows XP Technical Overview
    Operating System Windows XP Technical Overview Microsoft Corporation Published: May 2001 Abstract This paper provides a technical overview of what’s new in the Microsoft® Windows® XP operating system. It shows how new technologies and features make it easier to get work done, share information, manage your desktop, stay productive while traveling with a mobile computer, obtain help and support, and perform many other computing tasks. Because this paper is an overview, it does not address any area in detail but provides a broad look at the many new technologies and features in Windows XP. This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein. The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication. This white paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document.
    [Show full text]
  • On the Principles and Future of COM Featuring The
    DEGREE PROJECT 2003:D14 On the Principles and Future of COM Featuring The Random Dot Stereoimage Technology utionen för Informatik och Matematik Anders Alexandersson Avdelningen för datavetenskap vid Instit EXAMENSARBETE Högskolan Trollhättan ⋅ Uddevalla Institutionen för Informatik och Matematik Uppsats för filosofie kandidat i Datavetenskap On the Principles and Future of COM featuring The Random Dot Stereoimage Technology Anders Alexandersson Examinator: Docent Stefan Mankefors Institutionen för Informatik och Matematik Handledare: Andreas Boklund Institutionen för Informatik och Matematik Trollhättan, 2003 2003:D14 i EXAMENSARBETE COM — principer och framtida utveckling exemplifierat med RDS teknologin Anders Alexandersson Sammanfattning Föreliggande arbete är en tillämpning av den komponentbaserade principen för programvaruutveckling, med hjälp av COM - Component Object Model från Microsoft. Inledningsvis finns en analys och beskrivning av de grundläggande principerna för COM, varefter dokumentationen av en komplett implementerad Windowsapplikation finns. Applikationen är utvecklad i C++ och bygger på och exemplifierar den inledande COM teorin, och tar samtidigt principerna för Software Engineering i beaktande. Specifikt är applikationen en RDS (Random Dot Stereoimage) generator, som med hjälp av matematik i tre dimensioner och DirectX skapar äkta tredimensionella bilder på skärmen, vilket är möjligt tack vare människans stereoseende. Resultatet är en syntes av teori och praktik till en sammanhängande bild av den nutida och framtida
    [Show full text]
  • Internet Explorer
    Internet Explorer From Wikipedia, the free encyclopedia Jump to: navigation, search Windows Internet Explorer Wikipedia's Main Page in Windows Internet Explorer 7 running on Windows Vista. Developed by Microsoft Initial release August 1995 (12–13 years ago) Latest release 7.0.5730.13 (Windows XP/Windows 2003 Server) 7.0.6001.18000 (Windows Vista SP1) / 2008 Preview release 8.0.6001.17184 (IE8, Beta 1) / March 5, 2008 OS Microsoft Windows Mac OS System 7 to Mac OS X (discontinued) Solaris and HP-UX (discontinued) Genre Web browser and RSS Reader License Proprietary EULA Website microsoft.com/ie Windows Internet Explorer (formerly Microsoft Internet Explorer abbreviated MSIE), commonly abbreviated to IE, is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems starting in 1995. It has been the most widely used web browser since 1999, attaining a peak of about 95% usage share during 2002 and 2003 with IE5 and 6 but steadily declining since, despite the introduction of IE7. Microsoft spent over 100 million dollars (USD) a year [1] in the late 1990s, with over 1000 people working on IE by 1999. [2] Internet Explorer was first released as part of the add-on package Plus! for Windows 95. Later versions were available as free downloads, or in service packs, and included in the OEM service releases of Windows 95 and later versions of Windows. The most recent release is version 7.0, which is available as a free update for Windows XP Service Pack 2, and Windows Server 2003 with Service Pack 1 or later, Windows Vista, and Windows Server 2008.
    [Show full text]
  • Dot Net Technology Notes (BCA 602)
    Dot Net Technology Notes (BCA 602) BCA VI UNIT I & UNIT II Ms. POONAM VERMA Syllabus The .Net Framework:Introduction Introduction Common Language Runtime (CLR) Common Type System (CTS) Common Language Specification (CLS) Microsoft Intermediate Language (MSIL) Just-In –Time Compilation Framework Base Classes. C -Sharp Language (C#): Introduction Data Types, Identifiers, Variables, Constants and Literals Array and Strings Object and Classes Inheritance and Polymorphism Operator Overloading Interfaces, Delegates and Events Type conversion. C# Using Libraries Namespace- System Input-Output, Multi-Threading, Networking and sockets, Managing Console I/O Operations, Windows Forms, Error Handling. Advance Features using C# Web Services, Window Services, Asp.net Web Form Controls, ADO.Net. Distributed Application in C#, Unsafe Mode, Graphical Device interface with C#. Assemblies and Attributes .Net Assemblies Attributes Generic. 3 Unit-1 Introduction to .Net framework 1. 1 Introduction to Dot Net Framework The .NET is the technology from Microsoft, on which all other Microsoft technologies will be depending on in future. It is a major technology change. Just like the computer world moved from DOS to Windows, now they are moving to .NET. But don't be surprised if you find anyone saying that "I do not like .NET and I would stick with the good old COM and C++". There are still lot of people who like to use the bullock-cart instead of the latest Honda car. .NET technology was introduced by Microsoft, to catch the market from the SUN's Java. Few years back, Microsoft had only VC++ and VB to compete with Java, but Java was catching the market very fast.
    [Show full text]
  • Exploit Development Ch 6: the Wild World of Windows
    Exploit Development Ch 6: The Wild World of Windows Revised 8-3-19 Topics • Win32 API, DLLs, and PE Files • Heaps • Threading • DCOM • Exception Handling • Debuggers Win32 API, DLLs, and PE Files Windows API (Application Programming Interface) • In Linux, a programmer can talk directly to the kernel with syscalls (INT 0x80) • But in Windows the kernel is only accessible through the Windows API • Implemented as a set of DLLs • Changes with each Windows version and Service Pack Windows API (Application Programming Interface) • Every process using the Windows API must use dynamic linking to the DLLs • The Windows API changes more often than Linux Syscalls do • Here's an API call to make a window DLLs (Dynamic Link Libraries) • Pre-compiled library code • Loaded as needed when executable files run • You can see loaded DLLs with Process Explorer – View, Lower Pane View, DLLs – Link Ch 6b PE (Portable Executable) Files • Format used for .EXE and .DLL files – And some other extensions (link Ch 6c) • Can be loaded on every 32-bit (or 64-bit) Windows version • Contains information about all required DLLs • Easy to see with PEView (link Ch 6d) Import Table for Notepad • Windows Server 2008 Version Sections of a PE File • .text – instructions to execute • .data – global variables • .idata – Import descriptors • .rsrc – Resources (icons, etc.) • .reloc – Relocation data Relocating PE Files • DLLs have a Base Address – This is where they are designed to load • But two DLLs might have the same Base Address – And both be used by the same EXE • One of
    [Show full text]
  • Virus Bulletin, August 2000
    ISSN 0956-9979 AUGUST 2000 THE INTERNATIONAL PUBLICATION ON COMPUTER VIRUS PREVENTION, RECOGNITION AND REMOVAL Editor: Francesca Thorneloe CONTENTS Technical Consultant: Matt Ham Technical Editor: Jakub Kaminski COMMENT Divided We Fall 2 Consulting Editors: NEWS & VIRUS PREVALENCE TABLE 3 Nick FitzGerald, Independent consultant, NZ Ian Whalley, IBM Research, USA LETTERS 4 Richard Ford, Independent consultant, USA VIRUS ANALYSIS Edward Wilding, Maxima Group Plc, UK What’s New, PussyCats? 6 TECHNICAL FEATURE IN THIS ISSUE: Moving to Windows 2000 8 • Pack-a-Mac: In the coming months VB will be initiating FEATURE Comparative Reviews for Macintosh products. Full testing The Number of the Beasts 10 protocols, proposed schedules and submission criteria are outlined on p.22. BOOK REVIEW To Boldly Go? 12 • The numbers game: Denis Zenkin is a self-confessed virus prevalence table junkie. He shares his findings over CONFERENCE REPORT the past few years in his Feature on p.10. Tracking Bugs in Ontario 13 • Happy new network? Millennium fever is well and truly OPINION over but what is the reality about moving your corporate network over to Win2K? Péter Ször investigates on p.8. Form, Concept and Other Pleasant Utilities 14 A DAY IN THE LIFE Manic Monday 16 PRODUCT REVIEW VirusBuster for NT 18 REVIEW NEWS Of Macs and Men 22 END NOTES AND NEWS 24 VIRUS BULLETIN ©2000 Virus Bulletin Ltd, The Pentagon, Abingdon, Oxfordshire, OX14 3YP, England. www.virusbtn.com /2000/$0.00+2.50 No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form without the prior written permission of the publishers.
    [Show full text]
  • Vysoké Učení Technické V Brně Brno University of Technology
    VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA AUTOMATICKÉ ZNAČKOVÁNÍ PREZENTACÍ DIPLOMOVÁ PRÁCE MASTER‘S THESIS AUTOR PRÁCE Bc. MICHAL HUŠKA AUTHOR BRNO 2007 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA AUTOMATICKÉ ZNAČKOVÁNÍ PREZENTACÍ AUTOMATIC TAGGING OF PRESENTATIONS DIPLOMOVÁ PRÁCE MASTER‘S THESIS AUTOR PRÁCE Bc. MICHAL HUŠKA AUTHOR VEDOUCÍ PRÁCE doc. Dr. Ing. JAN ČERNOCKÝ SUPERVISOR Mgr. ROBERT BATŮŠEK, Ph.D. BRNO 2007 Zadání diplomové práce Téma: Automatické značkování prezentací Vedoucí: Černocký Jan, doc. Dr. Ing., UPGM FIT VUT Přihlášen: Huška Michal, Bc. Zadání: Úkolem je vyvinout systém, který bude schopen snímat kamerou plátno, na které je promítána prezentace. Pokud dojde na plátně k výměně snímku nebo jiné změně (např. animace), program zaznamená synchronizační značku do souboru. Program má být navržen tak, aby byl schopen provozu na mobilním telefonu a v podmínkách běžné posluchárny. 1. Prostudujte možnosti přístupu ke kameře na mobilních zařízeních. 2. Navrhněte a implementujte algoritmy pro detekci plátna. 3. Navrhněte a implementujte metody pro detekci změny slajdu. 4. Testujte na reálných datech 5. Navrhněte možnosti eliminace vlivu osoby pohybující mezi kamerou a plátnem. Část požadovaná pro obhajobu SP: Body 1. a 2. zadání Kategorie: Zpracování obrazu Implementační jazyk: C++ Operační systém: Windows Mobile Literatura: • podle pokynů vedoucího Komentář: Diplomová práce je společným projektem FIT a ANF Data. Licenční smlouva Licenční smlouva je uložena v archivu Fakulty informačních technologií Vysokého učení technického v Brně.
    [Show full text]