CSelf XResource | CodeGuru

CSelf XResource

1. Description CSelfXResource presents binary resources contained in specified module and extracts them into local file 2. Purpose Assuming you need special version of the DLL for your program but do not want or cannot install this DLL before your application starts and cannot deinstall this DLL after your application ends. Or you need an […]

Written By
CodeGuru Staff
CodeGuru Staff
Aug 22, 2000
2 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

1. Description

CSelfXResource presents binary resources contained in specified module and
extracts them into local file

2. Purpose

Assuming you need special version of the DLL for your program but do not want
or cannot install this DLL before your application starts and cannot deinstall
this DLL after your application ends. Or you need an output of an other
application, but cannot or do not want to install this application before yours.
Or you need support from your customized driver, but again cannot or do not want
to install and deinstall this driver separately. In any these cases you can use
CSelfXResource:

  • developing your application insert needed binary (.DLL, .EXE, .SYS etc.)
    as custom binary resource in your project
  • instantiate CSelfXResource with resource ID and resource type you assigned
    to binary(-ies)
  • extract and save the needed resource to local file
  • use this binary as you need
  • on destruction of the CSelfXResource object the local file containing
    extracted resource will be also deleted

3. Sample

There is small sample application included: one useful utility ListDll.EXE
(thanks to Mr. Mark Russinovich www.sysinternals.com)
inserted as binary resource. This Application will be extracted on runtime in
local file, started, the output will be redirected int output file and the
contents of this file will be shown in the main application window.

The same way you can use CSelfXResource for DLL: insert DLL as binary
resource, extract into local file on runtime, call LoadLibrary, GetProcAddress
and so on.

Also drivers can be used this way: on Win9x – insert VxD into application as
binary resource, extract on runtime, and call CreateFile() etc. to load and call
the driver. On WindowsNT – insert SYS as binary resource, extract on runtime,
call CreateService(), StartService() and call the driver.

…just try!…Sure, the application executable (or DLL – if your application
is an DLL) will grow, but for 1-2 binary files this is sometimes preferrable
against need to create installation/deinstallation.

4. Credits

Thanks to Dr. Mark Russinovich www.sysinternals.com
for tools

5. Contact

For questions and bugfixes use mailto:mike_becker@freenet.de

Downloads

Download demo project – 66 Kb

Download source – 1 Kb

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.