Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [vb.net e c++]conflitto decimal hex

    Ciao.
    Ho un applicazione che crea il file .rc aggiungendo stringhe da codice per lo string table.
    Il problema è che in alcune stringhe mi da il seguente errore:
    c:\C++\stringtable\stringtable\CMP.rc(29611): error RC2151 : cannot reuse string constants, 32805(0x8025) - "non è possibile caricare i risulatati dell'analisi " already defined. Cannot add 32805(0x8025) - "DataSet delle Distorsioni Termiche
    che non riesco a capire del tutto(si tratta di un conflitto tra esadecimale e decimale?).
    ho trovato anche questo che spiega l'errore , ma ancora non ho capito bene:
    http://msdn2.microsoft.com/en-us/lib...b9(vs.80).aspx
    grazie.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Ma si tratta di C++ o di VB.NET? Che senso ha specificarli entrambi?

    Il sospetto, comunque, è che tu stia aggiungendo semplicemente due risorse duplicate, cioè identificate dalla stessa costante numerica.
    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
    scusa alka
    precisazioni:
    sto scrivendo un addin in vb.net testato su progetto c++.
    l'addin deve anche scrivere nella stringtable 4.000 stringhe con relativo id e il risultato è quell'errore che ti ho postato,quando compilo le risorse.
    Come posso fare ad essere certo di non avere conflitti?
    grazie.
    ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Originariamente inviato da alka
    Ma si tratta di C++ o di VB.NET? Che senso ha specificarli entrambi?

    Il sospetto, comunque, è che tu stia aggiungendo semplicemente due risorse duplicate, cioè identificate dalla stessa costante numerica.
    ho controllato e non è cosi',le due righe di esempio che sono in conflitto sono:
    row 1:
    file .rc:
    IDS_PROPSHT_CAPTION13 "Parametri Plinto"
    file resource.h:
    #define IDS_PROPSHT_CAPTION13 116


    row 2:
    file .rc:
    IDS_XXX345652 "Funzione descritta per espressione algebrica"
    file resource.h:
    #define IDS_XXX345652 65652

    e questo è l'errore:
    c:\jiggler.rc(29384): error RC2151 : cannot reuse string constants, 116(0x74) - "Funzione descritta per espressione algebrica" already defined. Cannot add 116(0x74) - "Parametri Plinto".

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Probabilmente il problema e' dato dal fatto che hai superato il valore 65535 per una delle due costanti.

    Il valore 65652, in esadecimale, vale 10074 e dato che vengono considerati valori fino a FFFF (appunto 65535), viene ignorata la prima cifra (1) e viene presa in considerazione soltanto la parte 0074, che gia' e' dichiarata con la costante 116 (esadecimale 0074)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie di cuore oregon.
    ciao.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    un altra cosa oregon , sempre sulle risorse:

    ho il seguente pezzo di codice che da il seguente errore:
    c:\CmpFrg\CMPFRG\Grid\SpinEdit.cpp(171): error C2065: 'IDS_XXX347464' : undeclared identifier

    TRACE( CString(MAKEINTRESOURCE(IDS_XXX347464)) );

    eppure è nel resource.h e nella string table ,cosi:

    resource.h:
    #define IDS_XXX347464 41598

    e,nel .rc:
    IDS_XXX347464 "Errore --> La Sezione %s attribuita al %s n.%i ha il modulo resistente WeffT12P non inserito dall'utente!\n"


    ho provato a controllare l'esadecimale ma non ho trovato nessun conflitto.
    Preciso che ho inserito 4000 risorse nello string table e ho circa 100 errori di questo genere , le altre funzionano correttamente.
    ps il file resource.h non ha nessuna intestazione , ed è incluso nel file .rc.
    il file di risorse .rc compilato non da nessun errore.
    ciao

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Sei sicuro che la risorsa abbia proprio il nome

    IDS_XXX347464

    ?

    Molte volte l'editor delle risorse lascia parte del nome di default all'inizio o alla fine ... controlla bene ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho guardato e non ci sono errori , ha proprio quel nome
    Ho anche guardato il resource.h e non ci sono define attaccati tra la fine e l'inizio della riga c'è sempre un tab tant' è che anche l'autocompletamento del testo lo trova nei file dove lo si usa!.
    Ho pero' notato che dove da errore ci sono negli include delle righe come questa:
    #include ".\pushoverfunc.h"
    con il carattere:.\,penso voglia dire nella directory corrente,sbaglio?se è nella directory corrente non ci dovrebbero essere errori.
    ps.a volte da anche quest'errore se puo' servire:c:\CmpFrg\CMPFRG\MaxShellVerify.cpp(104) : error C3861: 'IDS_XXX343241': identifier not found, even with argument-dependent lookup.
    altro dato:le stringhe di errore sono usate piu' di una volta,ma non dovrebbero esserci problemi,no?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Guarda ... ho fatto una prova e non ho avuto problemi.

    Per una "diagnosi" ed una eventuale soluzione, bisognerebbe esaminare tutto il progetto ...

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.