Да, вам понадобится DefineUnmanagedResource (). Файл, который вы передаете, должен быть в формате .RES. Это требует средства Windows SDK rc.exe. Чтобы создать его, начните с создания текстового файла с именем test.rc с таким содержанием:
100 ICON test.ico
Где test.ico - имя файла, содержащего значок. Запустите командную строку Visual Studio и используйте эту команду
rc test.rc
Это создает файл test.res. Передайте его путь в DefineUnmanagedResource (), ваш окончательный .exe-файл содержит ресурс значка.
Обратите внимание, что это не проверяется на практике, вероятно, на целевом компьютере не будет установлен Windows SDK, и вы не сможете распространять rc.exe. Но вы можете распространять файл .res.