![]() On the display, it had to manipulate pixels in the frame buffer. The code in GDI needed to translate drawing commands to operations on specific devices. These extra layers on top of DOS had to be shared across all running Windows programs, not just to enable Windows to work in a machine with less than a megabyte of RAM, but to enable the programs to co-operate with each other. The Drawing API, Graphics Device Interface (GDI), was implemented in a DLL called GDI.EXE, the user interface in USER.EXE. All higher-level services were provided by Windows Libraries "Dynamic Link Library". All operating-system level operations were provided by the underlying operating system: MS-DOS. Every program was meant to co-operate by yielding the CPU to other programs so that the graphical user interface (GUI) could multitask and be maximally responsive. The first versions of Microsoft Windows ran programs together in a single address space. Examples of such DLLs include icon libraries, sometimes having the extension ICL, and font files, having the extensions FON and FOT. As with EXEs, DLLs can contain code, data, and resources, in any combination.ĭata files with the same file format as a DLL, but with different file extensions and possibly containing only resource sections, can be called resource DLLs. The file formats for DLLs are the same as for Windows EXE files – that is, Portable Executable (PE) for 32-bit and 64-bit Windows, and New Executable (NE) for 16-bit Windows. These libraries usually have the file extension DLL, OCX (for libraries containing ActiveX controls), or DRV (for legacy system drivers). ![]() I wont go any further to avoid confusing you with other details.Application/-executableĬom.microsoft.windows-dynamic-link-libraryĭynamic-link library ( DLL) is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. Now bringing an OCX control to life inside a Window without using MFC nor ATL is the closest thing to a punishment from hell you can ever come across in your lifetime and by bringing it to life I mean displaying it as a control inside a Window, why? because you need to code a control container in your C++ aplication if you want to, that means implementing lots of interfaces. Now if you are using the Microsoft compiler, you are ready to use the interfaces using some nifty templates like com_ptr if I remember correctly. ![]() You could do that if you are not using a MIcrosoft compiler. What I did a couple of years ago to overcome this was creating a separate program that would read Import Libraries, and it would spit a C++ header file that would include the definitions of the COM object's interfaces defined inside said Import Libraries. So, if you are not using the Microsoft compiler, the import directive wont work. Once having these interface definitions, you can get access to the interfaces implementd by the COM objects, without interface defitions you can not access the COM objects unless said COM objects implement the IDispatch interface. ![]() Inside this header file generated at precomiplation time, live the interface definitions of the COM objects included in the import library. Note: Import libraries may live inside DLL or OCX files. What this directive does is reading any COM related import library and generate a C++ header file (at pre-compilation time). The import directive is a Microsoft compiler's propietary prepocessor directive. If anyone can provide me some ideas or sample code to read this file would be greatful. MSDN help suggested me that it can be done throuch " #import "file_name" " However, the description is not descriptive and helpful. I need to open this file in C++ and not in MFC. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |