IDI_APPLICATION 與 IDC_ARROW資源存放在工程的哪個路徑?

書籍:《windows程序設計(第五版)》的開始

環境:visual studio 2022

內容:HELLOWIN程序

說明:以下內容大部分來自騰訊元寶。

IDI_APPLICATION?和?IDC_ARROW?是 ?Windows 系統預定義的資源標識符,它們并不以文件形式直接存放在你的工程目錄中,而是嵌入在 Windows 系統的動態鏈接庫(DLL)中。以下是詳細說明:


?1. 資源的存儲位置

  • ?系統 DLL 文件
    這些標識符對應的資源(圖標、光標)存儲在 Windows 系統的核心 DLL 文件中,例如:

    • ?**user32.dll**:包含基礎窗口和控件資源(如?IDI_APPLICATIONIDC_ARROW)。
    • ?**imageres.dll**:存儲圖標資源(如?IDI_APPLICATION)。
    • ?**shell32.dll**:包含 shell 相關資源(如?IDC_ARROW?光標)。
  • ?資源標識符的映射
    每個標識符(如?IDI_APPLICATION)對應 DLL 中的一個資源條目,由微軟在系統安裝時預先定義。


?2. 在代碼中的引用方式

在代碼中,你通過?LoadIconLoadCursor?等函數直接加載這些資源,無需指定文件路徑。例如:

HICON hIcon = LoadIcon(NULL, IDI_APPLICATION);       // 從系統加載應用程序圖標
HCURSOR hCursor = LoadCursor(NULL, IDC_ARROW);      // 從系統加載箭頭光標
  • ?參數?NULL?的含義
    表示從當前進程的模塊(或系統 DLL)中加載資源。由于這些資源是系統內置的,NULL?會自動指向正確的 DLL。

?3. 資源的可視化驗證

你可以通過工具(如 ?Resource Hacker?或 ?DLL Explorer)直接查看系統 DLL 中的資源:

  1. 打開?user32.dll?或?imageres.dll
  2. 搜索?IDI_APPLICATION(圖標)或?IDC_ARROW(光標)。
  3. 查看資源的元數據(如尺寸、顏色、數據流)。

?4. 常見誤區與注意事項

  • ?誤區1:認為需要將資源文件(如?.ico.cur)添加到工程目錄。
    ?糾正IDI_APPLICATION?和?IDC_ARROW?是系統資源,無需手動添加文件。

  • ?誤區2:嘗試通過文件路徑加載這些標識符。
    ?糾正:只能通過?LoadIconLoadCursor?等函數直接加載,無法通過文件路徑引用。

  • ?錯誤處理
    如果加載失敗(如返回?NULL),可能是以下原因:

    • 系統 DLL 丟失或損壞(罕見)。
    • 標識符拼寫錯誤(如?IDI_APPLICATION?寫成?IDI_APP)。
    • 編譯器未正確鏈接?winmm.lib?或?user32.lib(需確保已添加依賴庫)。

?5. 擴展:自定義資源與系統資源的區別

?類型?存儲位置?使用場景?示例標識符
?系統資源系統 DLL(如?user32.dll標準界面元素(圖標、光標、聲音)IDI_APPLICATION
?自定義資源工程目錄(.rc?文件)程序專屬資源(圖片、音頻、配置)IDR_MYICON(自定義圖標 ID)

?總結

IDI_APPLICATION?和?IDC_ARROW?是 Windows 系統內置資源,直接通過 API 函數加載,無需手動管理路徑。它們的存儲位置在系統 DLL 中,是 Windows 桌面應用程序開發的基石。理解這一點有助于避免資源加載錯誤,并提升代碼的兼容性和效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74066.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74066.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74066.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法 | 優化算法比較

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 優化算法 ?一、主流優化算法分類?1?、傳統梯度類算法?2?、啟發式算…

騰訊云HAI1元體驗:輕松調用DeepSeek-R1模型搭建網站

前言 隨著云計算和人工智能技術的不斷發展,構建和部署智能化的網頁變得越來越簡單。騰訊云提供的HAI(人工智能平臺)和DeepSeek(智能搜索引擎)服務,能幫助開發者快速搭建智能化網頁,提升用戶體驗…

AI Agent系列(七) -思維鏈(Chain of Thought,CoT)

AI Agent系列【七】 前言一、CoT技術詳解1.1 CoT組成1.2 CoT的特點 二、CoT的作用三、CoT的好處四、CoT適用場景五、CoT的推理結構 前言 思維鏈(Chain of Thought,CoT),思維鏈就是一系列中間的推理步驟(a series of intermediate reasoning steps),通過…

【一起來學kubernetes】21、Secret使用詳解

Secret 的詳細介紹 Secret 是 Kubernetes 中用于存儲和管理敏感信息(如密碼、令牌、密鑰等)的資源對象。Secret的設計目的是為了安全地存儲和傳輸敏感信息,如密碼、API密鑰、證書等。這些信息通常不應該直接硬編碼在配置文件或鏡像中&#x…

opencv中stitch圖像融合

openv版本: opencv249 vs &#xff1a;2010 qt : 4.85 #include "quanjing.h"#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <open…

1201. 【高精度練習】蜜蜂路線

題目描述 一只蜜蜂在圖5.1-2所示的數字蜂房上爬動&#xff0c;已知它只能從標號小的蜂房爬到標號大的相鄰蜂房&#xff0c; 現在問你&#xff1a;蜜蜂從蜂房M開始爬到蜂房N&#xff0c;l≤M 輸入 M&#xff0c;N的值。 輸出 一個數表示爬行路線種數。 樣例輸入 1 14 樣…

linux下基本命令和擴展命令(安裝和登錄命令、文件處理命令、系統管理相關命令、網絡操作命令、系統安全相關命令、其他命令)歡迎補充噢

基本命令 ls: 列出目錄內容 ls&#xff1a;列出當前目錄內容ls -l&#xff1a;以長格式列出&#xff08;顯示詳細信息&#xff09;ls -a&#xff1a;顯示隱藏文件ls -lh&#xff1a;以易讀格式顯示文件大小 pwd: 顯示當前工作目錄 pwd&#xff1a;顯示當前目錄的絕對路徑 cd:…

《C++11 基于CAS無鎖操作的atomic原子類型》

count; count--; 我們知道&#xff0c;/--操作并不是原子性的&#xff0c;其實對應三條匯編指令來完成的。 讀取&#xff1a;從內存中把變量的值讀取到寄存器修改&#xff1a;在寄存器里將變量的值1/-1寫入&#xff1a;把修改后的值寫入到內存 在單線程環境下&#xff0c;這…

C++常用多線程模式

文章目錄 1. Fork - Join模式2. Producer - Consumer模式3. Readers - Writers模式4. Work Thread模式5. Actor模式6、 Pipeline模式概述應用場景C實現示例代碼解釋 1. Fork - Join模式 原理&#xff1a;將一個大任務分解為多個子任務&#xff0c;這些子任務在不同的線程中并行…

【時時三省】(C語言基礎)習題2 scanf函數

山不在高&#xff0c;有仙則名。水不在深&#xff0c;有龍則靈。 ----CSDN 時時三省 用下面的scanf函數輸入數據&#xff0c;使a 3&#xff0c;b 7&#xff0c;x 8.5&#xff0c;y 71.82&#xff0c;c1 A&#xff0c;c2 x在鍵盤上應如何輸入? 分析第一個 scanf 函數&…

微信小程序計算屬性與監聽器:miniprogram-computed

小程序框架沒有提供計算屬性相關的 api &#xff0c;但是官方為開發者提供了拓展工具庫 miniprogram-computed。 該工具庫提供了兩個功能&#xff1a; 計算屬性 computed監聽器 watch 一、安裝 miniprogram-computed 在項目的根目錄下&#xff0c;使用如下命令&#xff0c;…

SOFAStack-00-sofa 技術棧概覽

SOFAStack 前言 大家好&#xff0c;我是老馬。 sofastack 其實出來很久了&#xff0c;第一次應該是在 2022 年左右開始關注&#xff0c;但是一直沒有深入研究。 最近想學習一下 SOFA 對于生態的設計和思考。 &#x1f31f; 核心項目 ?? SOFABoot GitHub: sofastack/sofa…

企業模板(QiMoban)是一個專注于企業官網搭建的高效平臺

企業模板(QiMoban.com )是一個專注于為企業提供高效、低成本網站建設解決方案的平臺&#xff0c;主要面向中小企業和創業者。其核心優勢在于幫助用戶快速搭建企業官網&#xff0c;提升品牌形象并拓展業務渠道。以下是關于企業模板(QiMoban.com )的詳細分析&#xff1a; 適用場…

Oracle 數據庫安全評估(DBSAT)簡明過程

下載DBSAT 從這里下載。 實際是從MOS中下載&#xff0c;即&#xff1a;Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1)。 最新版本為3.1.0 (July 2024)&#xff0c;名為dbsat.zip&#xff0c;近45MB。 $ ls -lh dbsat.zip -rw-rw-r-- 1 oracle oins…

【Linux 維測專欄 1 -- Hung Task 分析與驗證】

文章目錄 Linux Hung Task 簡介1. Hung Task 概述2. D 狀態與 Hung Task3. Hung Task 的工作原理4. Hung Task 的配置5. Hung Task 的典型輸出6. Hung Task 的應用場景7. kernel 配置7.1 編譯選項7.2 參數控制7.3 驗證方法4. 擴展接口 8. 注意事項 Linux Hung Task 簡介 1. Hu…

GCC 預定義宏:解鎖編譯器的隱藏信息

GCC 預定義宏&#xff1a;解鎖編譯器的隱藏信息 在 GCC 編譯器中&#xff0c;有許多內置的預定義宏&#xff0c;它們可以提供編譯環境的信息&#xff0c;如文件名、行號、時間、版本等。這些宏在調試、日志記錄、條件編譯等場景中非常有用。本文將介紹常見的 GCC 預定義宏&…

公鏈開發費用及其構成內容詳析

在區塊鏈技術迅速發展的今天&#xff0c;公鏈&#xff08;Public Blockchain&#xff09;作為去中心化、不可篡改、高安全性的重要應用之一&#xff0c;在金融、供應鏈、游戲等多個領域得到了廣泛應用。然而&#xff0c;開發一條公鏈并非易事&#xff0c;它不僅需要高度專業技能…

Java求101-200之間有多少素數

Java學習筆記 今天看教程看到了這個題&#xff0c;對于一名打過算法競賽的選手還是很簡單的&#xff0c;但由于之前是c組的&#xff0c;所以用java寫一下&#xff0c;練一下手。 代碼&#xff1a; package com.itheima.hello;public class Test1 {public static void main(S…

DM 達夢上的日志挖掘 DBMS_LOGMNR

適用場景 在 DM 中&#xff0c;用戶可以使用 DBMS_LOGMNR 包對歸檔日志進行挖掘&#xff0c;重構出 DDL 和 DML 等操作&#xff0c;并通過獲取的信息進行更深入的分析&#xff1b;同樣&#xff0c;可以對歸檔日志文件進行恢復被誤操作的數據&#xff0c;并進行故障跟蹤&#x…

JavaWeb之WebSocket

目錄 一、 websocket 概念二、WebSocket原理三、WebSocket特點四、WebSocket應用場景五、Websocket基本使用1、創建Websocket對象2、Websocket事件3、Websocket方法4、前端服務程序 六、聊天室案例1、Tomcat版本&#xff1a;8.0.442、Maven 依賴&#xff1a;3、前端代碼4、后端…