HICON
-
Hallo ich hab folgendes Programm:
in der .h datei:
HICON m_pIconList[3];in der .cpp datei:
m_pIconList[0] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME)); m_pIconList[1] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME)); m_pIconList[2] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME));das problem ist, ich habe ein Programm da bekommen die arrays einen wert u. beim anderen aber nicht, obwohl alles genau so geschrieben ist. da schreibt er immer hin, Error: Symbol "" not found. verstehe ich nicht.
danke
-
Hi
vielleicht existiert in diesen Projekten kein Symbol Namens IDR_MAINFRAME (kein icon mit dem Namen).
Tendiert übrigends stark zu WinApi
.Grüße Rapha
-
Das Icon IDR_MAINFRAME gibt es aber!!!
-
Ist IDR_MAINFRAME in resource.h definiert (mit #define)?
-
Ja ist sie:
#define IDR_MAINFRAME 128
-
Braucht man bei der MFC-Version von LoadIcon keinen HINSTANCE angeben?
-
weiß ich nicht, aber ganz genau der gleiche source code funktioniert in einem anderen Programm, dass verstehe ich nicht.
-
Der einzige LoadIcon-Aufruf, den ich in der MSDN gefunden habe, der KEINEN HINSTANCE benötigt, ist in der CWinAPP-Klasse:
-
Hier das cpp-file:
// SystemMonitor.cpp : Definiert das Klassenverhalten für die Anwendung. // #include "stdafx.h" #include "SystemMonitor.h" #include "SystemMonitorDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSystemMonitorApp BEGIN_MESSAGE_MAP(CSystemMonitorApp, CWinApp) ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() // CSystemMonitorApp-Erstellung CSystemMonitorApp::CSystemMonitorApp() { // TODO: Hier Code zur Konstruktion einfügen // Alle wichtigen Initialisierungen in InitInstance positionieren // Load Icons for Tray } // Das einzige CSystemMonitorApp-Objekt CSystemMonitorApp theApp; // CSystemMonitorApp Initialisierung BOOL CSystemMonitorApp::InitInstance() { // InitCommonControls() ist für Windows XP erforderlich, wenn ein Anwendungsmanifest // die Verwendung von ComCtl32.dll Version 6 oder höher zum Aktivieren // von visuellen Stilen angibt. Ansonsten treten beim Erstellen von Fenstern Fehler auf. InitCommonControls(); CWinApp::InitInstance(); CoInitialize(NULL); CoInitializeSecurity ( NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_SECURE_REFS, //change to EOAC_NONE if you change dwAuthnLevel to RPC_C_AUTHN_LEVEL_NONE NULL ); AfxEnableControlContainer(); /**#ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif*/ // Load Icons for Tray m_pIconList[0] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME)); m_pIconList[1] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME)); m_pIconList[2] = LoadIcon (MAKEINTRESOURCE(IDR_MAINFRAME)); CSystemMonitorDlg dialog; m_pMainWnd = &dialog; INT_PTR nResponse = dialog.DoModal(); if (nResponse == IDOK) { } else if (nResponse == IDCANCEL) { } return FALSE; }und hier das header-file:
// SystemMonitor.h : Hauptheaderdatei für die SystemMonitor-Anwendung // #if !defined(AFX_ASHSYSTRAY_H__4861817C_B708_4733_B220_51AEC32F88D1__INCLUDED_) #define AFX_ASHSYSTRAY_H__4861817C_B708_4733_B220_51AEC32F88D1__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #include "resource.h" // Hauptsymbole // CSystemMonitorApp: // Siehe SystemMonitor.cpp für die Implementierung dieser Klasse // class CSystemMonitorApp : public CWinApp { public: HICON m_pIconList[3]; CSystemMonitorApp(); // Überschreibungen public: virtual BOOL InitInstance(); // Implementierung DECLARE_MESSAGE_MAP() }; extern CSystemMonitorApp theApp; #endifvielleicht hilft das