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

    [c++]problema SECURE_SCL e _HAS_ITERATOR_DEBUGGING

    ciao, ho un progetto in cui mi sono incasinato , è composto di 4 .lib incluse dalla mia applicazione.
    Non so cosa ho combinato ma adesso mi becco un casino di errori:
    2>Wm5WglGraphics100d.lib(Wm5PixelShader.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in ClodMeshes_moc.obj

    ho letto sul sito microsoft la documentazione , ma non riesco a saltarci fuori.
    nelle librerie penso devo includere come proprietà sotto c++ -> preprocessing:

    _SECURE_SCL 1;_ITERATOR_DEBUG_LEVEL 1

    e le ho incluse , nel mio progetto , ma non riesco a capire perchè non funziona.
    uso vs 2010 sp1.
    gli errori del tipo sopra sono piu di 100.

    grazie.

    ps.nell' editor delle proprietà del progetto come devo inserire il valore delle preprocessor?
    cosi':
    _SECURE_SCL 1;_ITERATOR_DEBUG_LEVEL 1
    o
    cosi' :
    _SECURE_SCL = 1;_ITERATOR_DEBUG_LEVEL = 1



    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho trovato questa macro su

    _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCHlink

    a me sembra funzionare , la ho messa in tutte le direttive del preprocessore delle .lib.
    cosa fa precisamente è spiegato nel link.

    grazie.

    ciao

  3. #3
    Non mi pare una buona idea, credo che usando un'opzione del genere in caso di passaggio di iteratori o container tra una libreria e l'altra si possano avere seri problemi. Piuttosto, la soluzione corretta è impostare il medesimo livello di debug degli iteratori per tutte le librerie. Non è che stai compilando il progetto principale in modalità debug ma lo linki con le librerie compilate in modalità release o robe di questo genere?
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    mi spiace di aver postato un errore , pensavo andasse bene.
    Puttosto come devo settare le 3 macro _ITERATOR_DEBUG_LEVEL , _SECURE_SCL e _HAS_ITERATOR_DEBUGGING nelle librerie e nel progetto?
    e come assegno un valore a una macro dalla finestra delle proprietà c++->preprocessor? con l' = va bene? ad es:
    _ITERATOR_DEBUG_LEVEL = 1;

    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 © 2025 vBulletin Solutions, Inc. All rights reserved.