DLL resources — explain for the "skripter" unclear point, please

Good afternoon.
I was never a programmer-systems analyst. I was always programming in scripting languages and for this reason have little idea about darker matters :-)

I have a few questions on the topic of programming Resouce-Only DLL.

The bottom line is this:
One means of internationalization of the file names in Windows is Desktop.ini
Content (chunk) looks like this:
[LocalizedFileNames] 3D Vision Photo Viewer.lnk=@%ProgramFiles(x86)%\NVIDIA Corporation\3D Vision\nvstlink.exe,-2003
(there may be a DLL)

If you look ResourceHacker-ω nvstlink.exe you can see that this string is in the tree is inside the String Table, in a strange section 126, then the section ID of the language, then the set of rows.


I would like to understand this:
1. The OS itself pulls these resources in a file or in a DLL there is a function responsible for the results of this line?
2. Is there any example of creating such a Resource-Only library?
3 I don't understand what is happening in the line "@%ProgramFiles(x86)%\NVIDIA Corporation\3D Vision\nvstlink.exe,-2003". Understand that there is a DLL and have the row ID, but this string is obtained by system — do not understand. Please explain, if you do not mind.
4. Quite a heroic act — a HowTo for creating resource DLLs.
October 3rd 19 at 03:29
2 answers
October 3rd 19 at 03:31
Answer point by point.
1. First, these resources need not the OS and the programs that use them (except for the manifest). But the OS (or rather, the win32api library) provides a way those same resources to obtain. The DLL any functions responsible for issuing resources, no (but there is a subtlety — some old programs to get online, downloaded the library as an executable and thus caused its initialization — this used some viruses). In addition, the format of the executable and its resources conventionally-known, and can work with the resources directly, bypassing the special functions. In this way, by the way, is ResHacker.

2. Example of creation, I do not know. But if you know at least one Resource-only library, you can delete all the resources and get "clean", which you can then put any other resources. Method completely correct, and, most importantly, eliminates the need to get acquainted with the compilers and compiled programming languages.

3. The Desktop File.ini is a declarative configuration file, not a mandatory program, so, strictly speaking, in this line, nothing happens. Instead, this line tells any application that can understand the file Desktop.ini that for file display 3D Vision Photo Viewer.lnk you should use the line number 2003 for the current locale resources from PE file %ProgramFiles(x86)%\NVIDIA Corporation\3D Vision\nvstlink.exe About the format of the Desktop file.ini well written in Wikipedia
October 3rd 19 at 03:33
ID is simply an identifier defined by the programmer (though there are some predefined options, but if reservoir do not understand them... so the net custom user)

All this grandeur is defined in the source code of the project in the resource.h and connects when you compile the resource file.rc in which the text was bewildered. If you are not that file, then break off... and nothing prevents the new version of the programmer to redefine these identifiers to your taste.

p.s. start with this button msdn.microsoft.com/en-us/library/windows/desktop/aa380599%28v=vs.85%29.aspx

Find more questions by tags Other