What I mean. One resource icon can be identified by number 555, and absolutely other icon can be identified by string "555". These icons are not the same icons. And programmer can give human readable resource ID to each resource instead of awkward numbers(This is what Qt toolkit does in its Windows port - all resource items are identified by strings).

Instructor managed to give you correct variant before me, but I will repeat.

Your code tried to load icon resource from DLL identified by "1". There is no ICON resource in Scripts.DLL identified by "1". There is ICON identified by 101.
Do not regret. This are typical errors(to mismatch string and number and to mismatch item identifier(101 in our case) and its ordinal(1 - first icon in DLL in out case) number in resource directory in PE Image). If you notice all function which have deals with resource IDs have both variants A and W, and ID argument always have type of LPCTSTR. That is because resource IDs in string form. And in order to give resource ID in number form to them in C there are used macros MAKEINTRESOURCEA/W, which receive integer number an cast it to LPCTSTR. In out JScript, there is no need to use any typecasts, and both number and string form can be used without additional casts. Sou your correct script is

I opened Scripts.dll using ResourceHacker.
There are two resources for icons: "Icon" and "Icon Group".
I thought, that proper is "Icon" resource (Icon:1, Icon:2).
But it is to be "Icon Group" (Icon Group:101).