Sunday, January 31, 2021

Error MSB6006 "midl.exe" exited with code 2214.

Error MSB6006 "midl.exe" exited with code 2214. GL3dOcx C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets 1408

  1. Midl compiler error: 2214
  2. I've some problem with a project (an OCX): when I try to compile in release mode compilation stops with this message:

    "1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(1178,5): error MSB6006: "midl.exe" exited with code 2214."

    I cannot find any information useful to debug the error because is not an error code, is an exit code. What I can do? It stops right after start parsing "oaidl.acf".

    A Solution I was getting the same error when trying to compile an OCX project that was upgraded in VS2013. I had to open the .odl file and move the #include statements inside the library block.

    A Solution You may also be able to fix your problem by removing the /mktyplib203 switch from your MIDL settings.

    Project->Properties->Configuration Properties->MIDL->General->MkTypLib Compatible: Yes (/mktyplib203)

  3. Midl Compiler Error: 2214
  4. This is a paragraph.

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

My Focus on OpenGL

My Focus on OpenGL: oenGL control-lean control

    GLFW on codeproject.com

  1. 2D Drawing with an OpenGL Control
  2. An article explaning how to create a user control for 2D shape drawing with OpenGL

  3. An OpenGL ActiveX Control Developed with MFC
  4. The article focuses on how to develop a OpenGL ActiveX Control (OCX) with MFC, which can be used in VB application or HTML, and how to use the OpenGL ActiveX Control in VB and HTML to develop a 3D application and Internet Webpage. To simplify the demo code, I borrow the 3D Font class which has been posted at Codeguru.

    this need old OPENGL lib files.

  5. GLFW: A (Simple) OpenGL Framework Library
  6. This is a paragraph.

  7. 3D Engine, from GLUT to GLFW
  8. This is a paragraph.

  9. Simple OpenGL Framework
  10. the download link is working now.

    legacy GLUT download

  11. install GLUT and configure Visual Studio to use it
  12. The purpose of this lab is to introduce OpenGL programming and set up your computer so that you can begin developing OpenGL applications.

    In order to display an image, you must create some sort of drawing canvas. In modern operating systems, the basic drawing canvas is a window. With OpenGL, you create a window and then create an OpenGL drawing context assocated with that window, which allows you to use your video hardware to draw 3D objects directly into that window. Opening that window and creating the OpenGL context is cumbersom and varies from system to system. GLUT was developed in order to simplify and unify this initial step.

    In this lab I will show you how to download and install GLUT and configure Visual Studio to use it. After that we will compile and run a sample program to test that everything is working. You can follow these same instructions if you would like to install GLUT on your home computer to work on the homework projects.

  13. GLUT - The OpenGL Utility Toolkit
  14. 2000/03/22 - GLUT 3 specification is now available in PDF format!.

    GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing application programming interface (API) for OpenGL. GLUT makes it considerably easier to learn about and explore OpenGL programming. GLUT provides a portable API so you can write a single OpenGL program that works on both Win32 PCs and X11 workstations.

    GLUT is designed for constructing small to medium sized OpenGL programs. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits like Motif. GLUT is simple, easy, and small. My intent is to keep GLUT that way.

  15. GLUT for Win32
  16. The OpenGL Utility Toolkit (GLUT), originally written by Mark Kilgard, ported to Win32 (Windows 95,98,Me,NT,2000,XP) by Nate Robins. For more information check out the README-win32.txt provided in the distribution for installation instructions, and Win32 specific information..

    The latest version of the library is 3.7.6 (Nov 8, 2001)!

    glut-3.7.6-bin.zip (117 KB) GLUT for Win32 dll, lib and header file (everything you need to get started programming with GLUT).

    glut-3.7.6-src.zip (4.76 MB) GLUT source code distribution (including a whole slew of great example programs + data).

    Documentation for the GLUT API is available in HTML, Postscript and PDF formats. For general information about GLUT, see opengl.org's GLUT page or opengl.org's GLUT FAQ. or sgi's GLUT ftp.

  17. GLUT API Index
  18. The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3
  19. original GLUT API dictionary.

  20. Nate Robin's tutor
  21. Tutors source code package (tutors-src.zip 920KB)

    Source package + Windows executables (tutors-win32.zip 1.24MB)

    The fog tutorial program (shown at right) demonstrates how to use depth cueing (or fog) in OpenGL. It includes command panels that allow dynamic update of the parameters for linear, exponential and exponential2 fog functions. The fog color can also be dynamically changed.

  22. OpenGL & Librairies installer WIN32 v0.2
  23. In few seconds, Install OpenGL, GLU, GLAUX, GLUT, & SDL headers, librairies and .DLLs for Code::Blocks 8.02 on Windows . ( The program suppose that you have installed Code::Blocks in the default location : C:\Program Files\CodeBlocks )

  24. freeGLUT API dictionary
  25. he Open-Source OpenGL Utility Toolkit (freeglut 3.0.0) Application Programming Interface

    it has all definitions of freeGLUT API.

  26. CSc 433/533: OpenGL and GLUT Tutorial
  27. Windows 95/98 With Visual C++ If you would like to develop your program using Windows with Visual C++, a project with the glut .lib file for windows can be downloaded here. This project includes the GLUT/OpenGL example file canvas.c. For more information on canvas.c, click here.

    If you would like the entire GLUT package for windows (the source code), click here. The library must be complied, and it includes a Makefile using nmake which can be read by visual c++.

  28. freeGlut windows development libraries
  29. Whilst at the University of Essex, I took a module called “Interactive Computer Graphics” (or EE222 as we referred to it). Half of the course consisted of using POV-Ray to create images, and then putting them together to make a high quality animation. The other half of the course consisted of programming real-time interactive graphics using C and OpenGL, with the help the GLUT library freeglut. I went on to do my final year project, creating a simulation in C++ and OpenGL. It was the first time I had ever written a real application, and I still have a soft spot for GLUT.

    For my university project, I used Nate Robins’ GLUT for Win32 project for the Windows build, and freeglut for the Linux build. Windows freeglut binary packages are somewhat hard to find, particularly for the MinGW compiler, so I’ve created suitable packages and put them online. You can use them to build freeglut applications using Microsoft’s Visual C++ and MinGW.

  30. Getting started with OpenGL
  31. This is a paragraph.

  32. Tutorial: OpenGL 3.1 The First Triangle (C++/Win)
  33. This is a paragraph.

  34. Getting Started
  35. This is a paragraph.

    JumpStart to FreeLGUT!

  36. OpenGL Geometric Primitives
  37. Learn OpenGL geometric primitives through this interactive program..

  38. Blog/OpenGL/Geometric Primitives/
  39. This is a paragraph.

  40. OPENGL FREEGLUT IN VISUAL STUDIO 2015
  41. This is a paragraph.

  42. CATEGORY ARCHIVES: OPENGL
  43. This is a paragraph.

  44. This is a paragraph.

Saturday, January 30, 2021

OPENGL step by step

OPENGL step by step

  1. OpenGL Software Development Kit :great tutorials & Libraries
  2. OpenGL SDK Welcome to the OpenGL SDK! Here you'll find some of the most valuable resources available to OpenGL developers, all in one place. Use the menu above to navigate to each contribution. Revisit often, as there will be new contributions coming online all the time!

    The OpenGL SDK is a gathering of 3rd party contributions from many of the leaders in the community. In some cases the information and downloads are available directly from the SDK on opengl.org. In other cases, you'll find links to the original materials elsewhere on the web. In all cases, the contributions have been hand selected and represent the best of what's out there.

  3. leanr OPENGL step by step
  4. free PDF file.

  5. GLEW vs GLAD?
  6. I've been seeing a lot of people using GLAD lately and dropping GLEW. Are there any advantages in that library?

    glad all day every day. There's a web service so you don't have to mess around with generating a loader yourself. I've used it in one of my projects and it seriously is the best in my opinion.

    GLAD is a library that you customise for your explicit task, which should be setting off all manner of alarm bells in your head.

    1. GLEW is a library that you can drop into your project and that is the end of it.
    2. This should be the end of the discussion.

  7. OpenGL: best openGL link
  8. Before starting our journey we should first define what OpenGL actually is. OpenGL is mainly considered an API (an Application Programming Interface) that provides us with a large set of functions that we can use to manipulate graphics and images. However, OpenGL by itself is not an API, but merely a specification, developed and maintained by the Khronos Group.

    Image of OpenGL's logo The OpenGL specification specifies exactly what the result/output of each function should be and how it should perform. It is then up to the developers implementing this specification to come up with a solution of how this function should operate. Since the OpenGL specification does not give us implementation details, the actual developed versions of OpenGL are allowed to have different implementations, as long as their results comply with the specification (and are thus the same to the user).

  9. Creating a window
  10. The first thing we need to do before we start creating stunning graphics is to create an OpenGL context and an application window to draw in. However, those operations are specific per operating system and OpenGL purposefully tries to abstract itself from these operations. This means we have to create a window, define a context, and handle user input all by ourselves.

    Luckily, there are quite a few libraries out there that provide the functionality we seek, some specifically aimed at OpenGL. Those libraries save us all the operation-system specific work and give us a window and an OpenGL context to render in. Some of the more popular libraries are GLUT, SDL, SFML and GLFW. On LearnOpenGL we will be using GLFW. Feel free to use any of the other libraries, the setup for most is similar to GLFW's setup.

  11. Why use 'glad' library for opengl initialization? [duplicate]
  12. Glad
  13. Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.

  14. GLFW offical site
  15. GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.

    GLFW is written in C and supports Windows, macOS, X11 and Wayland.

  16. The OpenGL Extension Wrangler Library
  17. The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.

    it has links to sourceforge and github

  18. OpenGL Loading Library
  19. An OpenGL Loading Library is a library that loads pointers to OpenGL functions at runtime, core as well as extensions. This is required to access functions from OpenGL versions above 1.1 on most platforms. Extension loading libraries also abstracts away the difference between the loading mechanisms on different platforms.

    Most extension loading libraries override the need to include gl.h at all. Instead, they provide their own header that must be used. Most extension loading libraries use code generation to construct the code that loads the function pointers and the included headers. Information is available if you wish to perform this manually, but you are encouraged to use one of these libraries yourself.

  20. How to Set Up OpenGL‐GLFW‐GLAD on a Project with Visual Studio
  21. Many programmers prefer OpenGL for graphics. If you are one of them, you are strongly advised by its producer to use a window toolkit (such as GLFW) and an OpenGL loading libraries (such as GLAD). This guide will help you get over the first challenge of using OpenGL with GLFW and GLAD: Installing and setting them up, and creating your first project with OpenGL-GLFW-GLAD Template in Visual Studio 2017 or 2019.

  22. How to Set Up an OpenGL FreeGLUT GLEW Template Project in Visual Studio
  23. Many programmers prefer OpenGL for graphics. If you are one of them, you are strongly advised by its producer, to use a window toolkit (such as freeGLUT) and an OpenGL loading libraries (such as GLEW). This guide will help you get over the first challenge of using OpenGL with freeGLUT and GLEW: Installing and setting them up, and creating your first project with OpenGL-freeGLUT-GLEW Template in Visual Studio 2019.

  24. How to Set Up OpenGL GLFW GLEW GLM on a Project with Visual Studio
  25. This guide will help you get over the first challenge of using OpenGL, GLFW, GLEW, and GLM: Installing and setting them up, and creating your first project with GLFW-GLEW-GLM Template in Visual Studio 2019.

    It will assume your platform is Windows and your IDE is Visual Studio. During the Visual Studio installation, check the Desktop development with C++ workload box.

    Good Books on Amazon.com

  26. Learn OpenGL: Learn modern OpenGL graphics programming in a step-by-step fashion. Paperback – June 17, 2020
  27. After years of continuous work and improvements on the accompanying website learnopengl.com, with the help of thousands of readers, its content has been professionally revised for this physical copy you now find in your hands.

  28. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V 9th Edition
  29. a good boook

  30. Computer Graphics Programming in OpenGL with C++ Hardcover – September 30, 2018
  31. This is a paragraph.

  32. OpenGL Extensions Viewer 6 | realtech VR
  33. tested and it is working.

  34. Computer Graphics Programming in OpenGL with C++ Hardcover – September 30, 2018
  35. This is a paragraph.

  36. Greenlike Chinese Herbal Formula ClearLungs Qingfei Paidu Tang 10g*15bag 清肺排毒汤 冲剂 10g*15bag Brand: Greenlike
  37. This is a paragraph.

Friday, January 29, 2021

OPENGL configuration in Visual Studio

OPENGL configuration in Visual Studio

    OpenGL Kronos group authoritive information

  1. Setup OpenGL with Visual Studio 2017 on Windows 10
  2. this paper talks about glut library from Mark J. Kilgard.

    GLUT is distributed in source code form; compiled libraries for Win32 are also available. The current version, 3.7, is in late beta. The programs and associated files contained in the distrbution were developed by Mark J. Kilgard (unless otherwise noted). The programs are not in the public domain, but they are freely distributable without licensing fees. These programs are provided without gurantee or warrantee expressed or implied.

    Download the GLUT 3.7 beta source distribution (shift Left in Netscape) (Unix tar format) (Windows ZIP format).

  3. Khronos OpenGL® Registry
  4. The OpenGL Registry contains specifications of the core API and shading language; specifications of Khronos- and vendor-approved OpenGL extensions; header files corresponding to the specifications; and related documentation including specifications, extensions, and headers for the GLX, WGL, and GLU APIs.

    API and Extension Header Files Because extensions vary from platform to platform and driver to driver, OpenGL developers can't expect interfaces for all extensions to be defined in the standard gl.h, glx.h, and wgl.h header files supplied with the OS / graphics drivers. Additional header files are provided here, including:

    Almost all of the headers described below depend on a platform header file common to multiple Khronos APIs called <KHR/khrplatform.h >.

    1. < GL/glext.h > - OpenGL 1.2 and above compatibility profile and extension interfaces.
    2. <GL/glcorearb.h > - OpenGL core profile and ARB extension interfaces, as described in appendix G.2 of the OpenGL 4.3 Specification. Does not include interfaces found only in the compatibility profile.
    3. <GL/glxext.h > - GLX 1.3 and above API and GLX extension interfaces.
    4. < GL/wglext.h > - WGL extension interfaces.

    These headers define interfaces including enumerants; prototypes; and, for platforms supporting dynamic runtime extension queries, such as Linux and Microsoft Windows, function pointer typedefs. Please report problems as Issues in the OpenGL-Registry repository.

    Khronos Shared Platform Header (<KHR/khrplatform.h >) The OpenGL headers all depend on the shared <KHR/khrplatform.h > header from the EGL Registry . This is a new dependency, introduced in OpenGL-Registry pull request 183 for increased compatibility between OpenGL and OpenGL ES headers.

  5. OpenGL Overview
  6. this overview contains architecture birdview and greate flow chart:

    The OpenGL Visualization Programming Pipeline flowchart:

    API Hierarchy: flow chart

    Architected for Flexibility and Differentiation: Extensions Although the OpenGL specification defines a particular graphics processing pipeline, platform vendors have the freedom to tailor a particular OpenGL implementation to meet unique system cost and performance objectives. Individual calls can be executed on dedicated hardware, run as software routines on the standard system CPU, or implemented as a combination of both dedicated hardware and software routines. This implementation flexibility means that OpenGL hardware acceleration can range from simple rendering to full geometry and is widely available on everything from low-cost PCs to high-end workstations and supercomputers. Application developers are assured consistent display results regardless of the platform implementation of the OpenGL environment.

    Using the OpenGL extension mechanism, hardware developers can differentiate their products by developing extensions that allow software developers to access additional performance and technological innovations.

    Many OpenGL extensions, as well as extensions to related APIs like GLU, GLX, and WGL, have been defined by vendors and groups of vendors. The OpenGL Extension Registry is maintained by SGI and contains specifications for all known extensions, written as modifications to the appropriate specification documents. The registry also defines naming conventions, guidelines for creating new extensions and writing suitable extension specifications, and other related documentation.

  7. GLUT and OpenGL Utility Libraries
  8. this summarizes the GLU library. opengl registry link is good to explore for more details:

    GLUT is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing application programming interface (API) for OpenGL. GLUT makes it considerably easier to learn about and explore OpenGL Programming.

    GLU Library GLU is the OpenGL Utility Library. This is a set of functions to create texture mipmaps from a base image, map coordinates between screen and object space, and draw quadric surfaces and NURBS. GLU 1.2 is the version of GLU that goes with OpenGL 1.1. GLU 1.3 is available and includes new capabilities corresponding to new OpenGL 1.2 features.

    Please refer to the OpenGL Registry for more information and links.

    Open Source GLUT projects

  9. GLUT in open source
  10. freeglut is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library. GLUT was originally written by Mark Kilgard to support the sample programs in the second edition OpenGL 'RedBook'. Since then, GLUT has been used in a wide variety of practical applications because it is simple, widely available and highly portable.

    GLUT (and hence freeglut) takes care of all the system-specific chores required for creating windows, initializing OpenGL contexts, and handling input events, to allow for trully portable OpenGL programs.

    freeglut is released under the X-Consortium license.

  11. freeglut 3.0.0 MSVC Package
  12. This package contains 32 and 64 bit Windows DLLs, import libraries, and header files, allowing freeglut applications to be written using Microsoft’s Visual C++. The package was built from source code using Visual Studio 2013. The DLL is binary compatible with both my MinGW DLL, and the GLUT for Win32 DLL provided by Nate Robins. The DLL has been tested on Windows 98 SE, Windows ME, Windows 2000, Windows XP, Windows Vista, Windows 7 (64 bit), and Windows 8 (64 bit).

    Download freeglut 3.0.0 for MSVC (with PGP signature and PGP key)

  13. Using OpenGL & GLUT in Visual Studio .NET 2003
  14. This is a paragraph.

  15. Programming OpenGL in C/C++ How To Setup and Get Started
  16. We need the following sets of libraries in programming OpenGL:

    1. Core OpenGL (GL): consists of hundreds of functions, which begin with a prefix "gl" (e.g., glColor, glVertex, glTranslate, glRotate). The Core OpenGL models an object via a set of geometric primitives, such as point, line, and polygon.
    2. OpenGL Utility Library (GLU): built on-top of the core OpenGL to provide important utilities and more building models (such as qradric surfaces). GLU functions start with a prefix "glu" (e.g., gluLookAt, gluPerspective)
    3. OpenGL Utilities Toolkit (GLUT): provides support to interact with the Operating System (such as creating a window, handling key and mouse inputs); and more building models (such as sphere and torus). GLUT functions start with a prefix of "glut" (e.g., glutCreatewindow, glutMouseFunc).  
      Quoting from the opengl.org: "GLUT is designed for constructing small to medium sized OpenGL programs. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits. GLUT is simple, easy, and small." Alternative of GLUT includes SDL, ....
    4. OpenGL Extension Wrangler Library (GLEW): "GLEW is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform." Source and pre-build binary available at http://glew.sourceforge.net/.

    Each of the software package consists of:

    1. A header file: "gl.h" for core OpenGL, "glu.h" for GLU, and "glut.h" (or "freeglut.h") for GLUT, typically kept under "include\GL" directory.
    2. A static library: for example, in Win32, "libopengl32.a" for core OpenGL, "libglu32.a" for GLU, "libglut32.a" (or "libfreeglut.a" or "glut32.lib") for GLUT, typically kept under "lib" directory. An optional shared library: for example, "glut32.dll" (for "freeglut.dll") for GLUT under Win32, typically kept under "bin" or "c:\windows\system32".
    3. It is important to locate the directory path and the actual filename of these header files and libraries in your operating platform in order to properly setup the OpenGL programming environment.

    Good Configuration of OpenGL

  17. [OpenGL] Installation of OpenGL with Visual Studio 2017 (GLFW, GLEW, GLUT)
  18. all GLUT packages, most recent

  19. Installing OpenGL and Running OpenGL Programs on Microsoft Windows 7 and Higher
  20. this is my current installtion. my configuration is local install. no need to install into system folders.

  21. 3. How to set up the OpenGL programming environment?
  22. This page describes the process of setting up the OpenGL Programming environment on Windows. For information on setting up OpenGL on Linux, please visit this page. For Mac computers, please visit this page. GSU students can access Lynda.com through this page and watch the online video tutorial "Up and Running with OpenGL", which contains a short tutorial on how to set up OpenGL and Cmake in OS X.

    To develop OpenGL programs you need opengl32.dll, opengl32.lib, and OpenGL header files. opengl32.dll comes with your graphics driver. openg32.lib and OpenGL header files come with Visual Studio. However, in this class, you also need the following supporting libraries.

    • Freeglut (for window management and user interactions).
      1. You need Freeglut to run many OpenGL samples. I also recommend you use Freeglut to write your own OpenGL programs.
      2. To compile Freeglut, you also need to install Cmake.
    • Glew (for OpenGL extension management)
      1. You need this library to build OpenGL programs on Windows. On Linux and Mac, it'll be different libraries.
    • glm (OpenGL Mathematics) (for math functions)
      1. You need this library for transformations, view, and projections.
    • SOIL (for loading images)
    • Assimp (for loading 3D models)
      1. You need Assimp to load complicated 3D models into your program.
      2. To compile Assimp, you also need to install Cmake.
  23. g-truc / glm
  24. OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specifications.

    GLM provides classes and functions designed and implemented with the same naming conventions and functionality than GLSL so that anyone who knows GLSL, can use GLM as well in C++.

    This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, data packing, random numbers, noise, etc...

    This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physics simulations and any development context that requires a simple and convenient mathematics library.

    GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers:

  25. OPENGL book: Chapter 1: Getting Started
  26. Setting up OpenGL, GLEW, and FreeGLUT in Visual C++

    This post walks you through setting up OpenGL, GLEW, and FreeGLUT support in Visual C++ in order to compile the samples properly. My original thought was to put this in an appendix after all of the chapters were completed, but there's need for it now, so here's the extremely verbose step-by-step explanation:

    I'm assuming that you have Visual Studio installed or at least Visual C++ Express, which you can get for free right here, and and install the Windows SDK as well if you get the Visual C++ Express version, which you can get here.

  27. this contains good configuration tips...

ActiveX control tutorials etc..

ActiveX control tutorials etc..

search: mfc control activeX control

    Focus

    Time Spent On...

  1. GDI+ in ActiveX Controls Using MFC
  2. An article on using GDI+ in an ActiveX control

    the project is in C:\Users\chris_alpha\source\repos. need further look.

    Working List

  3. Flicker Free Drawing In MFC
  4. This is a paragraph.

  5. An OpenGL ActiveX Control Developed with MFC
  6. this is my thought to develop further..

  7. How to select an object using OpenGL
  8. This article explains how to select an object using OpenGL.

  9. Miner3D_viewer ActiveX control (for Miner3D game)
  10. This is a paragraph.

  11. A Complete ActiveX Web Control Tutorial
  12. need to organize

  13. MFC ActiveX Digital Clock
  14. A digital clock ActiveX control.

  15. Creating An ActiveX Control using VC++.NET
  16. This is a paragraph.

  17. Embeddable script editor for MFC applications
  18. This is a paragraph.

  19. Property list ActiveX control
  20. This is a paragraph.

  21. ActiveX Events and MFC State
  22. This is a paragraph.

  23. Digital Clock & Timer ActiveX Control
  24. This is a paragraph.

  25. CCustomTabCtrl - MFC Tab Control
  26. An MFC Curve Control
  27. This is a paragraph.

  28. The Grid Control
  29. The grid is a fully featured control for displaying tabular data. There are MFC and ATL versions that run on everything from CE to Windows 2000

  30. An ActiveX Control for Poker games
  31. This is a paragraph.

  32. Control Subclassing
  33. This is a paragraph.

  34. Drawing complex ATL/ActiveX controls at designtime
  35. This is a paragraph.

  36. A custom-drawn TreeList Control
  37. This is a paragraph.

  38. XGroupBox - an MFC groupbox control to display text and icon
  39. This is a paragraph.

  40. A class wrapper for Matlab(c) ActiveX Control
  41. This is a paragraph.

  42. An ActiveX Control - you can create a Skinable Form in Desgin Time
  43. This is a paragraph.

  44. A Ticker control
  45. This is a paragraph.

  46. VCOMBOBX in MFC - A Virtual Combo Box Control
  47. A MFC based virtual combo box

  48. XIcon - an MFC control to display text and icon
  49. This is a paragraph.

  50. Scientific charting control
  51. This is a paragraph.

  52. Threads with MFC
  53. This is a paragraph.

  54. High-speed Charting Control
  55. This is a paragraph.

  56. NSChart Control
  57. This is a paragraph.

  58. Hex Editor (OCX Control)
  59. This is a paragraph.

  60. Hyperlink control
  61. This is a paragraph.

  62. Fancy Controls
  63. This is a paragraph.

  64. A general purpose ruler control
  65. COMLicenceFinder: A small tool able to retrieve the Runtime Licence text of ActiveX controls
  66. This is a paragraph.

  67. Custom 32-bit RGBA Color MFC Control
  68. This is a paragraph.

  69. CUltraPadWnd - A Simple Syntax Coloring Control Based on the MFC CWnd Class
  70. This is a paragraph.

  71. Dynamic Line Drawing Activex Control
  72. This is a paragraph.

  73. Control Positioning and Sizing using a C++ Helper Class
  74. This is a paragraph.

  75. Using the CEdit control
  76. This is a paragraph.

Wednesday, January 27, 2021

Error MSB6006 "cmd.exe" exited with code 9009.

Error MSB6006 "cmd.exe" exited with code 9009. rcversion C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets 209

  1. MSB6006: “cmd.exe” exited with code 9009
  2. This is a paragraph.

  3. This is a paragraph.

  4. This is a paragraph.

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

Tuesday, January 26, 2021

resource files in VC++ apps research

resource files in VC++ apps research

  1. How to Embed Resources in a Static Library
  2. tested, working well

  3. Easily Load and Format Strings from the String Table
  4. working

  5. Resource DLLs and Language Selection Menu
  6. A ready-to-use class to load resource DLLs and create a Languages menu.

    working well

  7. app translator
  8. This is a paragraph.

  9. Inserting a Doc/Frame/View in a Dialog using a Custom Control
  10. This is a paragraph.

  11. Button with ToolTip and/or Bitmap Resource
  12. This is a paragraph.

  13. Modification of Version Information Resources in Compiled Binaries
  14. This is a paragraph.

  15. Reading and Using Resources in an Executable file
  16. This is a paragraph.

  17. Using MC.exe, message resources and the NT event log in your own projects
  18. This is a paragraph.

  19. Auto Windows Resource (*.rc) version Editor
  20. This freeware allows to edit a Windows Resources File (*.rc) and to produce a file named 'version.h' containing several string constants (#define). It can also synchronize a RC file and version.h with the Classbuilder Master Header File.

  21. Resource ID Organiser Add-In for Visual C++ 5.0/6.0/.NET
  22. This is a paragraph.

  23. ResOrg Overview
  24. Resource ID Organiser Add-In for Visual C++ 5.0/6.0/.NET
  25. This is a paragraph.

  26. Resource Comparer
  27. This is a paragraph.

  28. ResRenum
  29. ResRenum renumbers resource IDs in Visual Studio C++ projects. I wrote the first version of this app in 2001 and I've been using it regularly ever since. For years I've wished it could also remove unused resource IDs, and I finally got around to implementing that recently. That gave me an excuse to release it, so here it is.

  30. This is a paragraph.

  31. This is a paragraph.

  32. This is a paragraph.

  33. This is a paragraph.

  34. This is a paragraph.

DWinLib research

  1. DWinLib - The Guts
  2. A little about how things work behind the scenes in DWinLib!

  3. DWinLib Build Process
  4. Overview of build process for DWinLib programs with or without using libraries

  5. DWinLib 6: Pretty WinAPI Incorporation
  6. This is a paragraph.

  7. dwl::fractalBrowser
  8. This article presents the Mandelbrot set, but you can spend countless hours zooming in and recoloring Mandelbrots to your heart's content!

  9. DWinLib - Creating Modal Dialogs
  10. Need to make a simple, or not-so-simple dialog? The following approach may be just the ticket, even without DWinLib!

  11. Object Oriented Programming with C++
  12. A short introduction to Object Oriented Programming with C++, showing the basics of objects and virtual functions in an approachable manner.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

Monday, January 25, 2021

3D Geometric modeling

3D Geometric modeling

  1. Getting Started with Volume Rendering using OpenGL
  2. Step by step explanation of 3D image rendering using OpenGL

    This article demonstrates texture based rendering. It starts off with the 2D texture approach and explains the issues if we use it, and ends with the 3D texture technique.

  3. A Customizable Architecture for 3D Graphics Applications
  4. Explanation of a consistent 3D graphics software architecture through a basic OpenGL application

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

Error LNK1123 failure during conversion to COFF: file invalid or corrupt

Error LNK1123 failure during conversion to COFF: file invalid or corrupt issigraph C:\Demo_Temp\ISSIGraph_1.41r_win32_src (1)\issigraph\LINK

    Authoritive Fix from Microsoft

  1. Linker Tools Error LNK1123
  2. Input files must have the Common Object File Format (COFF) format. If an input file is not COFF, the linker automatically tries to convert 32-bit OMF objects to COFF, or runs CVTRES.EXE to convert resource files. This message indicates that the linker could not convert the file. This can also occur when using an incompatible version of CVTRES.EXE from another installation of Visual Studio, the Windows Development Kit, or .NET Framework.

    To fix the problem

    • Apply all service packs and updates for your version of Visual Studio. This is particularly important for Visual Studio 2010.
    • Try building with incremental linking disabled. On the menu bar, choose Project, Properties. In the Property Pages dialog box, expand Configuration Properties, Linker. Change the value of Enable Incremental Linking to No.
    • Verify that the version of CVTRES.EXE found first in your PATH environment variable matches the version of the build tools, or the version of the Platform Toolset, used by your project.
    • Try turning off the Embed Manifest option. On the menu bar, choose Project, Properties. In the Property Pages dialog box, expand Configuration Properties, Manifest Tool, Input and Output. Change the value of Embed Manifest to No.
    • Make sure that the file type is valid. For example, make sure that an OMF object is 32-bit and not 16-bit. For more information, see .Obj Files as Linker Input and PE Format.
    • Make sure that the file is not corrupt. Rebuild it, if necessary.

  3. C++ Tools and Features in Visual Studio Editions
  4. The following C++ features are available in Visual Studio 2019. Unless stated otherwise, all features are available in all editions: Visual Studio Community, Visual Studio Professional, and Visual Studio Enterprise. Some features require specific workloads or optional components, which you can install with the Visual Studio Installer.

    to be more specific, it is part of the C++ toolchain to turn resource files (.res) in to compiled objects that can be linked using the linker. – Scott Chamberlain Sep 4 '15 at 19:49

    My Fixes

  5. Error 'LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt' after installing Visual Studio 2012 Release Preview
  6. A Solution Either disable incremental linking, by going to Project Properties -> Configuration Properties -> Linker (General) -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"

    A Solution If disabling incremental linking doesn't work for you, and turning off "Embed Manifest" doesn't work either, then search your path for multiple versions of CVTRES.exe.

    By debugging with the /VERBOSE linker option I found the linker was writing that error message when it tried to invoke cvtres and it failed.

    It turned out that I had two versions of this utility in my path.

    1. One at C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.exe and
    2. one at C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe. After VS2012 install, the VS2010 version of cvtres.exe will no longer work.
    If that's the first one in your path, and the linker decides it needs to convert a .res file to COFF object format, the link will fail with LNK1123.

    (Really annoying that the error message has nothing to do with the actual problem, but that's not unusual for a Microsoft product.)

    Just delete/rename the older version of the utility, or re-arrange your PATH variable, so that the version that works comes first.

    Be aware that for x64 tooling builds you may also have to check C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 where there is another cvtres.exe.

    A Solution To summarize:

    Step1 :

    Project Properties -> Configuration Properties -> Linker (General) -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)" if step1 not work, do Step2

    step 2:

    Project Properties -> Configuration Properties -> Manifest Tool (Input and Output) -> Enable Incremental Linking -> "No" if step2 not work, do Step3 Copy file one of:

    step 3:

    • C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe
    • C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cvtres.exe
    • C:\Program Files (x86)\Microsoft Visual Studio 13.0\VC\bin\cvtres.exe
    Then, replace to C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe With me, do 3 step it work

  7. fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
  8. A SolutionI find out that I have the same problem. The problem is that my project setting is debug version, and the lib I include in the linker-->input is release version. After changing the project to release version, the problem disappear. After changing project to release version, you need to edit all the properties again.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

Sunday, January 24, 2021

Error CVT1100 duplicate resource. type:MANIFEST, name:1, language:0x0409

Error CVT1100 duplicate resource. type:MANIFEST, name:1, language:0x0409 issigraph C:\Demo_Temp\ISSIGraph_1.41r_win32_src (1)\issigraph\CVTRES 1

when I fix this project ISSIGraph, I removed these statements in the .rc file.

    A Good Read

  1. How to resolve CVT1100 in Visual Studio 2010 Ultimate?
  2. Error MessageCVTRES : fatal error CVT1100: duplicate resource. type:VERSION,name:1,language:0x0407

    A Solution I resolved that problem when moving from VC++ 2010 to 2012 by changing the setting under Configuration Properties>Manifest Tool>Input and Output>Embed Manifest to NO. I have no idea what that is all about, but I looked at the contents of the .manifest file, and it sure looks like I can live without it being embedded.

    A Solution This answer is wrong, but no point in creating a new answer since this already has upvotes. You are getting a "duplicate" error because VS is generating its own manifest, and then you have ALSO specified your own manifest under Manifest Tool>Input and Output>Additional Manifest Files. And Embed Manifest to "No" means you don't have a manifest file. The correct solution is leave that as "Yes" to embed your custom additional manifest file, but instead tell VS not to create its own manifest. You'll find that property under Linker>Manifest File>Generate Manifest and set that to "No" – mikew Dec 27 '16 at 18:20

    My Fix

    remove all these statements in .rc file:

    #if defined(WX_CPU_AMD64)
    wxMANIFEST_ID 24 "wx/msw/amd64.manifest"
    #elif defined(WX_CPU_IA64)
    wxMANIFEST_ID 24 "wx/msw/ia64.manifest"
    #elif defined(WX_CPU_X86)
    wxMANIFEST_ID 24 "wx/msw/wx.manifest"
    #endif

  3. olve CVT1100: duplicate resource. type:MANIFEST issue in Visual Studio for MFC/C++
  4. fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409

    If you ever encounter this error while compiling (usually a downloaded project from internet), then remove the manifest file and remove the reference to the manifest file in the .rc file..

    This can be disabled in Project properties->Linker-> Manifest Files -> Generate Manifest set to /MANIFEST:NO and then you can use your own supplied manifest file. The manifest file can be important for your application for instance to always request administrator rights. For more information see http://msdn.microsoft.com/en-us/library/ms235542.aspx[^]

    Nearly the solution!

    The error is often cause by two resources having the same resource ID

    i.e. the same source resource (.rc) values in a (downloaded) library as in your main application.

    This needs to be fixed by making sure any included resources (from a library) do not conflict with your main program resources. A quick edit of the ID numbers will fix the problem (don't forget to alter the next issue number at bottom to the resource file!),

    For our own libraries we ensure they all use different ranges to the main application.

  5. atal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409_CVTRES_Appframe RRS feed
  6. I am porting a application developed in VS6.0 to VS2008. the application uses some third party DLL. While compiling I am getting "fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409"

    I have following settings Project properties->Configuration Properties->Linker-> Manifest Files:

    1. Generate Manifest =>Yes
    2. Allow Isolation => Yes
    3. I added following lines in "Additional Manifest Dependencies"

    "type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'" but it is still giving the same error. What else I need to do to fix this error?

    A Solution This error message shows the given resource was specified more than once. I would suggest you try to set Embed Manifest to No through Project > Properties... > Configuration Properties > Manifest Tools > Input and Output , or try to comment/remove the manifest from .rc file.

    A Solution I know this is a late response, but I had the same issue. I found that if I removed the manifest.xml or whatever extension from the .RC2 file and explicitly put in under MANIFEST TOOLS -> INPUT AND OUTPUT -> Additional Manifest Files: _____ full path \ manifest.xml

    Everything works as it should. This applies for Visual Studio 2013.

  7. C++, VS 2015, fatal error: duplicate resource. type:MANIFEST, name:1, language:0x0409
  8. Everywhere I searched there is only one solution - to set "Embed manifest" as NO in the properties of the project. But I need the manifest for setting my project run under admin privileges (otherwise I can't create raw socket properly). So the question is how this problem can be solved without excluding manifest.. There is a manifest file:

    A Solution Look in your .rc file for multiple MANIFEST sections.

    A Solution you can set "Embed manifest" as NO and manually add to .rc file your file manifest - CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "<path to manifest file >"

    A Solution if you encountered this type of error while convert / upgrade legacy VC++ project code to latest framework VS 2012/15/17, then remove the manifest file from resource folder and remove the reference of manifest file from the resource (.rc) file.

    Clean the solution & build it again..

  9. This is a paragraph.

  10. fatal error CVT1100: duplicate resource. type:MANIFEST
  11. This is a paragraph.

  12. fatal error CVT1100: duplicate resource. type:ICON, name:1 (C++, Visual Studio C++ 2010)
  13. This is a paragraph.

  14. Visual Studio 2017 Prof. 15.5.7: CVT1100: duplicate resource. type:ICON, name:1, language:0x0000
  15. This is a paragraph.

  16. CVTRES: fatal error CVT1100: duplicate resource. Type: MANIFEST, name: 1, language: 0x0409 [error solution]
  17. Description: The errors encountered when converting Visual Studio 2003.NET to 2010 made it impossible to run.

    Solution: Find the rc file under the solution, open it with notepad, comment out the line containing the manifest, and recompile.

  18. 总结】fatal error CVT1100: duplicate resource. type:manifest 错误提示
  19. Results 1 to 8 of 8 Thread: Link : Fatal Error CVT1100
  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

  25. This is a paragraph.

  26. This is a paragraph.

  27. This is a paragraph.

  28. This is a paragraph.

Saturday, January 23, 2021

freeGLUT research

freeGLUT research

    freeglut package

  1. freeglut
  2. A free OpenGL utility toolkit, the open-sourced alternative to the GLUT library. on sourceforge.com

  3. nigels-com/glew
  4. it is most recent version 2.2.0

    GLEW - The OpenGL Extension Wrangler Library The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.

    Windows build

    Visual Studio
    1. Use the provided Visual Studio project file in build/vc15/
    2. Projects for vc6, vc10, vc12 and vc14 are also provided

  5. he OpenGL Extension Wrangler Library
  6. The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.

  7. GLUT for Windows
  8. its glut edition is old 1.9 version. current is 2.0.1 version.

    it has great info on how to install freeglut and glew. plus some good demos.

    GLUT comes in two flavours for Windows. There's an old and unmaintained version called GLUT and an open source alternative called freeglut. The textbook examples rely on freeglut, so I suggest you install that one. You may find code that relies on GLUT that doesn't work with freeglut. The two libraries can coexist on one PC. Follow the Optional installation instructions to install it.

  9. rightarr.cur
  10. download this rightarr.cur

  11. freeglut windows library
  12. Introduction

    Whilst at the University of Essex, I took a module called “Interactive Computer Graphics” (or EE222 as we referred to it). Half of the course consisted of using POV-Ray to create images, and then putting them together to make a high quality animation. The other half of the course consisted of programming real-time interactive graphics using C and OpenGL, with the help the GLUT library freeglut. I went on to do my final year project, creating a simulation in C++ and OpenGL. It was the first time I had ever written a real application, and I still have a soft spot for GLUT.

    For my university project, I used Nate Robins’ GLUT for Win32 project for the Windows build, and freeglut for the Linux build. Windows freeglut binary packages are somewhat hard to find, particularly for the MinGW compiler, so I’ve created suitable packages and put them online. You can use them to build freeglut applications using Microsoft’s Visual C++ and MinGW.

    Get the Sample Code If you’re downloading one of the packages on this page, you’ll probably want some sample code to try it out. If you have Git installed, you can get the sample code for a simple “Hello World” GLUT application by running “git clone https://github.com/TransmissionZero/Hello-GLUT.git”. Alternatively you can download a Hello GLUT source release. You are also encouraged to visit that link to star and watch the repository if you find it useful.

    freeglut 3.0.0 MSVC Package This package contains 32 and 64 bit Windows DLLs, import libraries, and header files, allowing freeglut applications to be written using Microsoft’s Visual C++. The package was built from source code using Visual Studio 2013. The DLL is binary compatible with both my MinGW DLL, and the GLUT for Win32 DLL provided by Nate Robins. The DLL has been tested on Windows 98 SE, Windows ME, Windows 2000, Windows XP, Windows Vista, Windows 7 (64 bit), and Windows 8 (64 bit).

    Download freeglut 3.0.0 for MSVC (with PGP signature and PGP key)

    3D geometry

  13. A Customizable Architecture for 3D Graphics Applications
  14. Explanation of a consistent 3D graphics software architecture through a basic OpenGL application

  15. wxWidgets is a C++ library
  16. wxWidgets is a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base. It has popular language bindings for Python, Perl, Ruby and many other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.

  17. A Quick Guide to Writing Applications
  18. This is a paragraph.

  19. Cross-Platform Development Tips
  20. This is a paragraph.

  21. Hello World Example
  22. This is a paragraph.

  23. Download Writer's Café 2
  24. This is a paragraph.

  25. HTML encoder
  26. Introduction When copying and pasting text into (X)HTML source code, it’s important to remember to escape characters such as ‘<’, ‘>’, and ‘&’. Failure to do so can cause undesired behaviour in your web page, varying from text such as “#include <iostream >” being displayed as “#include”, to entire sections of your web page mysteriously eating themselves up. Worse still, not all browsers deal with this issue in the same way, so whilst your web page might look fine in one browser, it could have serious issues in another browser.

    The tool on this page is intended to handle the task of escaping special characters for you, replacing characters such as ‘<’ with the string “<”. The most common application for this is when you want to display code on your web page, for example HTML and C code both typically make heavy use of the characters ‘<’, ‘>’, and ‘&’—if just one of these is not displayed properly on a web page, the code probably won’t work. But actually, any text you want to copy and paste into (X)HTML source code should be sanitised in this way, to ensure it is displayed correctly.

    Encode Your Text To use the tool, place your text in the “input text” box, press the “encode” button, and the encoded text will appear in the “output text” box. If your browser allows copying to the clipboard, you can use the “copy to clipboard” button to copy the encoded HTML. You can choose whether to enclose the output in a “<pre > <code >” block (useful for source code where you need to preserve spacing), and you can choose whether to encode quotation marks (not needed unless the text is being placed inside an (X)HTML attribute)

  27. freeglut.dll missing
  28. I am reading the OpenGl superbible, and on the very first triangle program it will not run. the program compiles just fine but when i run it, it gave me the error message freeglut.dll is missing from your computer. I downloaded that and put it in the correct directory, and it said that MSVCR71.dll was missing, so i downloaded that and put it in the correct directory and it began to say "The procedure entry point __glutCreateWindowWithExit could not be located in the dynamic link library freeglut.dll." does anyone know what i am doing wrong? i followed all the directions that the book told me.

  29. How to quickly extract .tar.gz files on Windows 10
  30. If you come across a .tar.gz, .tgz, or .gz file, you can use these steps to use the tar command-line tool to extract its content on Windows 10.

  31. This is a paragraph.

  32. This is a paragraph.

  33. This is a paragraph.

  34. This is a paragraph.

  35. This is a paragraph.

Friday, January 22, 2021

DLL(dynamic library): How to create and use it?

DLL(dynamic link library): How to create and use it?

  1. Microsoft Visual C++ Static and Dynamic Libraries
  2. A simple introduction to static and dynamic libraries with Microsoft Visual C++.

  3. Walkthrough: Create and use your own Dynamic Link Library (C++)
  4. This step-by-step walkthrough shows how to use the Visual Studio IDE to create your own dynamic link library (DLL) written in Microsoft C++ (MSVC). Then it shows how to use the DLL from another C++ app. DLLs (also known as shared libraries in UNIX-based operating systems) are one of the most useful kinds of Windows components. You can use them as a way to share code and resources, and to shrink the size of your apps. DLLs can even make it easier to service and extend your apps.

    In this walkthrough, you'll create a DLL that implements some math functions. Then you'll create a console app that uses the functions from the DLL. You'll also get an introduction to some of the programming techniques and conventions used in Windows DLLs..

    To copy the DLL in a post-build event

    1. Right-click on the MathClient node in Solution Explorer and choose Properties to open the Property Pages dialog.
    2. In the Configuration drop-down box, select All Configurations if it isn't already selected.
    3. In the left pane, select Configuration Properties > Build Events > Post-Build Event.
    4. In the property pane, select the edit control in the Command Line field. If you followed the directions to put your client project in a separate solution from the DLL project, then enter this command:

      xcopy /y /d "..\..\MathLibrary\$(IntDir)MathLibrary.dll" "$(OutDir)"
      If your DLL and client projects are in other directories, change the relative path to the DLL to match.

    5. Choose the OK button to save your changes to the project properties.
    6. Now your client app has everything it needs to build and run. Build the application by choosing Build > Build Solution on the menu bar. The Output window in Visual Studio should have something like the following example depending on your version of Visual Studio:

      Output

      1>------ Build started: Project: MathClient, Configuration: Debug Win32 ------
      1>MathClient.cpp
      1>MathClient.vcxproj -> C:\Users\username\Source\Repos\MathClient\Debug\MathClient.exe
      1>1 File(s) copied
      ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    7. How to Create C/C++ Dynamic-link Libraries in Windows
    8. Modularize your program into separate components to ease deployment and installatio.

    9. Create C/C++ DLLs in Visual Studio
    10. In Windows, a dynamic-link library (DLL) is a kind of executable file that acts as a shared library of functions and resources. Dynamic linking is an operating system capability. It enables an executable to call functions or use resources stored in a separate file. These functions and resources can be compiled and deployed separately from the executables that use them.

      A DLL isn't a stand-alone executable. DLLs run in the context of the applications that call them. The operating system loads the DLL into an application's memory space. It's done either when the application is loaded (implicit linking), or on demand at runtime (explicit linking). DLLs also make it easy to share functions and resources across executables. Multiple applications can access the contents of a single copy of a DLL in memory at the same time..

    11. How to create and use DLL (Dynamic Link Library) in (C++)
    12. With the help of DLL (Dynamic Link Library), we can make our project modular and reduce the development time. A DLL increase the performance of the project and promote the reusability of code. It also helps the developer to insert and remove the new functionality in the project without any hurdle.

    13. C++ - Windows - Creating a dynamic-link library (DLL)
    14. Creating a .DLL is an interesting process that allows a better comprehension how a dynamic-link library works on Windows.

      No need to say that we'll use Visual Studio for that..

    15. Use a Dynamic Library in a Microsoft Visual Studio Project
    16. This example shows how to create and configure a simple Microsoft® Visual Studio® project that calls a dynamic library (DLL) generated by MATLAB® Coder™. The example uses Microsoft Visual Studio 2017. In other versions of Microsoft Visual Studio, you might encounter a different procedure..

    17. C++ TUTORIAL - LIBRARIES - 2020
    18. This is a paragraph.

    19. Projects in Visual C++ 2010 – Part 1: Creating a DLL project
    20. This is a paragraph.

    21. Projects in Visual C++ 2010 – Part 2: Project Dependencies
    22. Projects in Visual C++ 2010 – Part 3: Precompiled Headers
    23. This is a paragraph.

    24. Windows Dynamic-Link Libraries 1
    25. DLL - Introduction
    26. This is a paragraph.

    27. DLL - How to Write
    28. This is a paragraph.

    29. DLL - Registration
    30. This is a paragraph.

    31. DLL - Tools
    32. This is a paragraph.

    33. DLL - Tips
    34. This is a paragraph.

    35. Making DLL's in Microsoft Visual C++ 6.0
    36. This is a paragraph.

    37. DLL - Quick Guide
    38. This is a paragraph.

    39. What is a DLL
    40. This article describes what a dynamic link library (DLL) is and the various issues that may occur when you use DLLs. It also describes some advanced issues that you should consider when developing your own DLLs.

    41. Dynamic-link library
    42. Dynamic-link library (DLL) is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension DLL, OCX (for libraries containing ActiveX controls), or DRV (for legacy system drivers). 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. As with EXEs, DLLs can contain code, data, and resources, in any combination.

      Data 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. Examples of such DLLs include icon libraries, sometimes having the extension ICL, and font files, having the extensions FON and FOT.[1]

    43. This is a paragraph.

Migrating Projects Created with Visual Studio Versions Earlier than 2010

Migrating Projects Created with Visual Studio Versions Earlier than 2010

the first post has very good summary and I toook notes for my reference.

  1. 加湿器千万不能这样用!可能造成肺部损伤
  2. Changing the default executable path for Visual Studio 2017 and above
  3. This article explains how to set the default executable path for every new Visual Studio project. This can be useful for binding new custom executables located in a custom directory. This article explains also how to revert to the default settings in the case of a broken path.

  4. Migrating Projects Created with Visual Studio Versions Earlier than 2010
  5. Global IDE Pathing

    Global IDE directory paths are no longer supported, meaning that Tools > Options > VC++ Directories no longer exists. Instead, this has been moved to *.vcxproj file properties, at Project > Properties > Configuration Properties > VC++ Directories.

    Setting Target Names

    One way to resolve the warning is to manually set the Target Name and TargetExt macros in the project properties. To set the Target Name and Target Extension, select Project > Properties and go to the General options to set the Target Name. Use the $(TargetName)$(TargetExt) macro in the project settings for any necessary references.

    Some suggestions for these macro settings are:

    • Target Name: $(ProjectName)
    • Target Ext: exe, dll, lib, etc. as required by your application

    Further suggested settings for these Project properties are:

    1. Set Configuration Properties | Linker | General | Output file to $(OutDir)$(TargetName)$(TargetExt).
    2. Set Configuration Properties | General | Output Directory to “desired directory path”, which could also be prefixed with $(Platform)\$(Configuration)\.
    3. Set Configuration Properties | General | Intermediate Directory to “desired directory path” which could also be prefixed with $(Platform)\$(Configuration)\.
    4. Set Configuration Properties | General | Target Name to “desired name for output file”
    5. Set Configuration Properties | General | Target Extension to “desired output file extension” (include the preceding dot).
    The “desired directory path” is user-defined and should match the end-user’s environment needs.

    Using Precompiled Headers

    To use precompiled header files in a project:

    1. Right click on the project and select Properties. Under Configuration Properties > C/C++ > Pre Compiled Headers, for all configurations, select Use /Yu for the Precompiled Header option. Select OK.
    2. Expand the project in the Solution Explorer and locate the file called stdafx.cpp, or the similar project main cpp file, then right click and select Properties. Under Configuration Properties > C/C++ > Pre Compiled Headers, for all configurations, select Create /Yc for the Precompiled Header option. Select OK.

    Remove MBCS Character Set

    To remove the MBCS as the character set in your project, change the Character Set to Not Set or Unicode under the project settings Configuration Properties > General -> Character Set.

    Suppress MBCS Warnings

    To suppress warnings about MBCS, define the following macro in your stdafx.h or another appropriate header file:

    #define NO_WARN_MBCS_MFC_DEPRECATION

    http://blogs.msdn.com/b/vcblog/archive/2013/07/08/mfc-support-for-mbcs-deprecated-in-visual-studio-2013.aspx Some Stingray samples do not suppress this warning because it is displayed via the inclusion of MFC header files that precede Stingray header files.

    Output Files Warnings

    In Visual Studio 2013, if warnings are issued about being unable to locate vc120.pdb, then change the project properties to use $(IntDir)$(TargetName).pdb or similar in the Configuration Properties > C/C++ > Output Files setting.

    now in Visual Studio 2017, Configuration Properties > C/C++ > Output Files setting has an item Program Database File Name, it is set to: $(IntDir)vc$(PlatformToolsetVersion).pdb. its value is Debug\vc141.pdb

    Deploying to the Target Platform

    When an application has been built with one of the Microsoft Visual Studio platform toolsets, it can then be deployed to the platform for that toolset, assuming the deployment platform has the targeted Windows- and Compiler-specific runtimes (redistributable package) installed. An application will not run on the targeted platform unless the targeted Windows- and Compiler-specific runtimes, especially MFC runtimes, are present.

    For Dynamic Link Library (DLL) applications, any DLLs the application depends on will need to be copied to the target platform machine.

    For information regarding the minimum service pack levels for Microsoft VC++ Redistributable Packages, refer to: http://support.microsoft.com/kb/2661358.

    Redistribution packages can be downloaded from these locations:

    • Download Visual C++ Redistributable Packages for Visual Studio 2015 from https://www.microsoft.com/en-us/download/details.aspx?id=48145
    • Download Visual C++ Redistributable Packages for Visual Studio 2013 from http://www.microsoft.com/en-us/download/confirmation.aspx?id=40784.
    • Download Visual C++ Redistributable Packages for Visual Studio 2012 Update 4 from http://www.microsoft.com/en-us/download/confirmation.aspx?id=30679.

    Target Names

    Projects that have been converted from an earlier version of Microsoft Visual Studio to versions MSVS 2010 SP1 through MSVS 2013, may generate warnings that the Target Name and the Output Name do not match.

    Warning MSB8012 is displayed at the end of the library/assembly build in the output window:

    1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\\Microsoft.CppBuild.targets(1095,5): warning MSB8012: TargetPath() does not match the Library's OutputFile property value ().

      This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).

    This is a known issue, which you can read more about in these locations:

  6. How to: Modify the Target Framework and Platform Toolset
  7. You can edit a Visual Studio C++ project file to target different versions of the C++ platform toolset, the Windows SDK and the .NET Framework (C++/CLI projects only). By default, the project system uses the .NET Framework version and the toolset version that correspond to the version of Visual Studio that you use to create the project. You can modify all these values in the .vcxproj file so that you can use the same code base for every compilation target.

    Platform toolset

    The platform toolset consists of the C++ compiler (cl.exe) and linker (link.exe), along with the C/C++ standard libraries. Since Visual Studio 2015, the major version of the toolset has remained at 14, which means that projects compiled with Visual Studio 2019 or Visual Studio 2017 are ABI-backwards-compatible with projects compiled with Visual Studio 2015. The minor version has updated by 1 for each version since Visual Studio 2015:

    1. Visual Studio 2015: v140
    2. Visual Studio 2017: v141
    3. Visual Studio 2019: v142

    These toolsets support .NET Framework 4.5 and later.

    Visual Studio also supports multitargeting for C++ projects. You can use the Visual Studio IDE to edit and build projects that were created with older versions of Visual Studio, without upgrading them to use a new version of the toolset. You do need to have the older toolsets installed on your computer. For more information, see How to use native multi-targeting in Visual Studio. For example, in Visual Studio 2015, you can target .NET Framework 2.0 but you must use an earlier toolset that supports it.

    To change the platform toolset

    1. In Visual Studio, in Solution Explorer, open the shortcut menu for your project (not for your solution) and then choose Properties to open your project Property Pages dialog box.
    2. In the Property Pages dialog box, open the Configuration drop-down list and then select All Configurations.
    3. In the left pane of the dialog box, expand Configuration Properties and then select General.
    4. In the right pane, select Platform Toolset and then select the toolset you want from the drop-down list. For example, if you have installed the Visual Studio 2010 toolset, select Visual Studio 2010 (v100) to use it for your project.
    5. Choose the OK button.

    Targeting Windows XP

    Some versions of Microsoft Visual Studio allow targeting Windows XP specifically. To specifically target Windows XP, choose a platform toolset option with a *_xp identifier, such as v120_xp or v110_xp. See the next section for information on how to choose the platform toolset.

    Not all C++ runtime features are supported when targeting Windows XP. Please refer to the following article for more information on targeting Windows XP: http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx.

  8. How to: Configure Visual Studio C++ projects to Target 64-Bit, x64 Platforms
  9. This is a paragraph.

  10. Configuring Programs for Windows XP
  11. Visual Studio supports multiple platform toolsets. That means it's possible to target operating systems and runtime libraries that aren't supported by the default toolset. For example, by switching the platform toolset, you can use the Visual Studio 2017 C++ compiler to create apps that target Windows XP and Windows Server 2003. You can also use older platform toolsets to maintain binary-compatible legacy code and still take advantage of the latest features of the Visual Studio IDE.

    The v142 toolset supplied in Visual Studio 2019 doesn't include support for creating code for Windows XP. Support for Windows XP development by using the Visual Studio 2017 v141_xp toolset is available as an individual component option in the Visual Studio Installer.

  12. Chapter 6 Support for the MFC Feature Pack
  13. What is the FoundationEx library? The Stingray Studio FoundationEx library is a new set of application, docking, frame, and user interface classes built on the MFC Feature Pack for Microsoft Visual Studio 2008 SP1 or later. The FoundationEx library is designed to be used with all Stingray Studio products. Some existing applications previously built with Stingray Studio 10.1 and earlier will need to be migrated to use the FoundationEx library in order to take advantage of any new features in the MFC Feature Pack.