Ich habe speziell das Win32-Tutorial von Fälschern befolgt Dies Abschnitt und haben Sie sich gefragt, wie Sie die .rc(resource)-Datei beim Kompilieren eines Win32-Programms verknüpfen würden? (Ich kompiliere über die Befehlszeile).
ich habe gelesen Dies Artikel, der besagt, dass Sie so etwas tun könnten windres chocolate-doom-res.rc chocolate-doom-res.o
und so kompilierengcc other.o files.o etc.o chocolate-doom-res.o -o chocolate-doom.exe
Aber als ich es versuchte windres res.rc res.o
(res.rc ist meine Ressourcendatei) es gibt mir das windres: res.rc:3: syntax error
res.rc
#include "resource.h"
IDR_MYMENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", ID_FILE_EXIT
END
POPUP "&Stuff"
BEGIN
MENUITEM "&Go", ID_STUFF_GO
MENUITEM "G&o somewhere else",0,GRAYED
END
END
IDI_MYICON ICON "menu_one.ico"
Irgendwelche Ideen?.
Sie vermissen die SPEISEKARTE Ressourcentyp. Sie sollten schreiben:
#include "resource.h"
IDR_MYMENU MENU
BEGIN
.
.
.
END
FFWD bis 2020 Q4. Im Zeitalter von VS Code
, haben viele Leute etwas mit “über die Grundlagen hinaus” zu kämpfen, wenn sie versuchen, die WIN32-GUI “Hello World” ohne Visual Studio zu kompilieren. Und ja, die Ressourcendatei ist wahrscheinlich der größte Stolperstein. Das ist ein breiteres Thema.
Da es bei der Frage nur darum geht, wie die rc-Datei “kompiliert” wird, möchte ich nur darauf antworten.
Irgendwie bist du an den Punkt gekommen, an dem du es auch hast my_app.rc
und resource.h
.
- Um potenziell großen Ärger zu vermeiden, stellen Sie sicher, dass Sie dies getan haben
#include <windows.h>
an der Spitze der rc
Datei
- Ressourcen-Compiler wird aufgerufen
rc
. Wenn cl.exe
ist auf dem Weg, rc.exe
ist auch.
rc
macht eine Binärdatei res
Datei aus der rc
Datei.
rc my_app.rc
wird herstellen my_app.res
- natürlich nur, wenn Ihre rc-Datei keine Fehler enthält.
- wenn
rc
nicht finden können windows.h
Sie können den Pfad so hinzufügen
rc /i"C:\Windows Kits\10\Include\10.0.18362.0\um" my_app.rc
- mit Ihrem lokalen Pfad natürlich.
- die zu verwenden
res
auf der cl
Befehlszeile, die Sie übergeben müssen res
Datei an den Linker, wie in dieser imaginären Beispiel-CL-Kompilierungsbefehlszeile
cl /Zi /EHsc /Fe:my_app.exe my_app.cpp /link my_app.res
vergewissere dich /link
ist das letzte Argument für Sie cl
Befehlszeile.
BEARBEITEN
Nehmen wir an, Ihr Projektordner enthält:
my_app.cpp
resource.h
my_app.rc
Zuerst müssen Sie produzieren my_app.res
wie oben beschrieben. Zweitens im VS-Code .vscode/tasks.json
du wirst haben:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}",
"/link /SUBSYSTEM:WINDOWS ${fileDirname}\\${fileBasenameNoExtension}.res",
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: cl.exe"
}
]
}
Beachten Sie die /link
Argument, das Sie hinzufügen müssen, zu der ansonsten von generierten Standardaufgabendatei VS Code
. Offen my_app.cpp
und durchführen CTRL+SHIFT+B
. Dadurch wird die aktive Datei kompiliert und mit Ihrer WIN32-App verknüpft, einschließlich Ihrer Ressourcen.
Sie haben mir wahrscheinlich nur Stunden Zeit gespart! danke für den artikel!
– RIJIK
14. Februar 2018 um 17:18 Uhr