生成的可执行文件 如何添加自己想要的图标

hzc543806053 2011-05-06 08:44:59
用C语言编了一个小程序,每次双击可执行文件都可以执行按我编辑时所赋予的功能,可是C编译器运行所生成的可执行文件的图标却是一个系统默认的图标,

请问我可不可以给生成的可执行文件添加图标,比方说可以给它添加一个小企鹅的图标,就像QQ的可执行文件图标一样了,

并且能保证在我上传给朋友这个可执行文件时,他也可以看到这个我自己添加的图标,而不是又是原来系统默认生成的图标.请问我该如何修改源代码,或者这个想法可行没有,或者有没有其它办法可以达到呢?
...全文
459 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-05-07
  • 打赏
  • 举报
回复
看看你用的 IDE,一般都有此功能的
  • 打赏
  • 举报
回复
楼下不准BS
  • 打赏
  • 举报
回复
用这个函数 LoadIcon(hInstance, TEXT("XXX图标的名字"));
1楼说的那个工具 ResHacker.exe 我知道这个
但是我没用过,因为我做的 都是芙蓉姐姐,肯定有保存过,那个能改很多
lbh2001 2011-05-06
  • 打赏
  • 举报
回复
resource.h文件内容
#define IDI_ICON	  1

hello.rc文件内容
#include	"resource.h"

IDI_ICON ICON "weq.ico"

HelloWin.c文件内容
#define STRICT
#include <windows.h>
#include "resource.h"

#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "user32.lib")

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
static TCHAR szAppName[] = TEXT("HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

RtlZeroMemory(&wndclass, sizeof(wndclass));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;

if (!RegisterClass(&wndclass))
{
MessageBox(NULL,
TEXT("This program requires Windows NT series!"),
szAppName,
MB_ICONERROR);
return 0;
}

hwnd = CreateWindow(szAppName, // window class name
TEXT("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL); // creation parameters

ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);

while (GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return (int)msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);

GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("Hello, Windows 98!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);

EndPaint(hwnd, &ps);
return 0L;

case WM_DESTROY:
PostQuitMessage(0);
return 0L;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}

将所有文件加入工程编译即可,注意要找一个图标文件重命名为weq.ico
delphiwcdj 2011-05-06
  • 打赏
  • 举报
回复
hzc543806053 2011-05-06
  • 打赏
  • 举报
回复
不懂

能详细点吗
nemo 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 skyworth98 的回复:]
将图标作为资源文件链接进去
[/Quote]
+1
skyworth98 2011-05-06
  • 打赏
  • 举报
回复
将图标作为资源文件链接进去
hzc543806053 2011-05-06
  • 打赏
  • 举报
回复
怎么换啊
ljt3969636 2011-05-06
  • 打赏
  • 举报
回复
可以有工具可以给exe换图标

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧