Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++MFC]risorse

    ciao.
    ho il seguente spezzone di codice che da errore:
    ////////////////////////////////////////////////////////
    // old code:Times New Roman->MAKEINTRESOURCE(IDS_XXX340453)
    ///////////////////////////////////////////////////////
    1 AfxSetResourceHandle(NULL);
    2 AfxSetResourceHandle(AfxGetInstanceHandle());
    3 sprintf(m_LogFont.lfFaceName, CString(MAKEINTRESOURCE(IDS_XXX340453)));

    da errore nella riga 1.
    premetto che è un corposo programma su cui sto mettendo mano e mi da dei problemi con le risorse , se metto solo

    afxmessagebox( CString(MAKEINTRESOURCE(IDS_XXX340453)));

    non funziona,mentre questa sintassi funziona benissimo su un progetto nuovo.
    premetto che ho controllato il resource.h e il file di risorse .rc le stringhe sono corrette.
    vorei solo provare a resettare le risorse e risettarle .
    grazie in anticipo.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Bisognerebbe indicare sempre anche l'errore...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    allora.
    sto internazionalizando un applicazione c++.
    1)ho inserito nella string table e nel resource.h le risorse ,si compilano correttamente.
    2)ho inserito in una dll il resource.rc e ho compilato creando una dll come da esempi

    nell file principale .cpp(nel mio caso l'applicazione è creata col wizard ed è cxp.cpp,per chiarire c sono anche cxpview.cpp, cxpdoc.cpp e cxpview.cpp)
    l'evento è Initinstance

    BOOL CCXPApp::InitInstance()
    {
    AfxOleInit ();//Inizializzazione Ole
    // CG: This line was added by the ActiveX Control Containment component
    AfxEnableControlContainer();

    3)carico la dll in questo modo:


    HINSTANCE hInst = LoadLibrary(_T("CXPItaliano.dll"));
    AfxSetResourceHandle(hInst);


    si carica la dll ma poi se faccio ad es:
    CString str= CString(MAKEINTRESOURCE(IDS_340491))
    la stringa a volte mi da dei caratteri incomprensibili.
    qundo devo caricare la dll delle risorse(va caricata solo una volta o di +?)?
    in che evento?
    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    aggiungo , e scusate se non l'ho fatto prima che la variabile che tento di caricare col makeintresource è all' interno di una "finestra" Opengl.
    questo è il codice:
    BOOL CGLView::PreCreateWindow(CREATESTRUCT& cs)
    {
    WNDCLASS wc;
    memset(&wc, 0, sizeof(WNDCLASS)); // start with NULL defaults
    wc.lpfnWndProc = :efWindowProc;
    wc.hInstance = AfxGetInstanceHandle();
    wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
    wc.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    wc.hIcon= ::LoadIcon(NULL, IDI_APPLICATION);


    ////////////////////////////////////////////////////////
    // old codice:GLView->MAKEINTRESOURCE(IDS_XXX342338)
    ///////////////////////////////////////////////////////
    wc.lpszClassName = CString(MAKEINTRESOURCE(IDS_XXX342338));

    //registro la classe e memorizzo in cs per la creazione della vista
    cs.lpszClass = MAKEINTATOM(::RegisterClass(&wc));

    return CView::PreCreateWindow(cs);

    }
    grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    il problema forse è che dopo:

    wc.lpszClassName = CString(MAKEINTRESOURCE(IDS_XXX342338));
    che diventa
    wc.lpszClassName = GLView
    //registro la classe e memorizzo in cs per la creazione della vista
    cs.lpszClass = MAKEINTATOM(::RegisterClass(&wc));

    cs.lpszclass diventa
    0x0000c1a7 <Bad Ptr>
    è un possibile errore?
    grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.