sil*_*ent 14 c c++ resources winapi gcc
我一直在关注forgers win32教程,特别是此时此部分,并且想知道在编译win32程序时如何链接.rc(资源)文件?(我正在通过命令行编译).
我正在阅读这篇文章说你可以做这样的事情windres chocolate-doom-res.rc chocolate-doom-res.o
并以这种方式编译gcc other.o files.o etc.o chocolate-doom-res.o -o chocolate-doom.exe
但是当我尝试做windres res.rc res.o
(res.rc是我的资源文件)时,它给了我这个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"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?.
您错过了MENU资源类型.你应该写:
#include "resource.h"
IDR_MYMENU MENU
BEGIN
.
.
.
END
Run Code Online (Sandbox Code Playgroud)
FFWD 至 2020 年第四季度。在 时代VS Code
,很多人在尝试不使用 Visual Studio 来编译 WIN32 GUI“Hello World”时都有些“超越基础”的挣扎。是的,资源文件可能是主要的绊脚石。这是一个更广泛的主题。
由于问题只是关于如何“编译”rc 文件,所以我只回答这个问题。
不知何故,你已经达到了同时拥有my_app.rc
和 的地步resource.h
。
#include <windows.h>
的顶部rc
rc
. 如果cl.exe
在路上,rc.exe
也是。rc
res
从该文件创建一个二进制文件rc
。rc my_app.rc
将产生my_app.res
rc
找不到windows.h
你可以像这样添加路径
rc /i"C:\Windows Kits\10\Include\10.0.18362.0\um" my_app.rc
res
在命令行上使用 ,cl
您需要将res
文件传递给链接器,就像这个虚构的示例 cl 编译命令行一样cl /Zi /EHsc /Fe:my_app.exe my_app.cpp /link my_app.res
Run Code Online (Sandbox Code Playgroud)
确保/link
是命令行的最后一个参数cl
。
编辑
假设您的项目文件夹包含:
my_app.cpp
resource.h
my_app.rc
Run Code Online (Sandbox Code Playgroud)
首先,您需要my_app.res
按照上述方式进行制作。其次,在 VS Code 中 .vscode/tasks.json
,您将拥有:
cl /Zi /EHsc /Fe:my_app.exe my_app.cpp /link my_app.res
Run Code Online (Sandbox Code Playgroud)
请注意/link
您需要添加到由 生成的其他标准任务文件中的参数VS Code
。打开my_app.cpp
并执行CTRL+SHIFT+B
。这将编译活动文件并将其链接到您的 WIN32 应用程序中,其中包括您的资源。
归档时间: |
|
查看次数: |
6588 次 |
最近记录: |