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

    [vc++ 7]problema variabile keyword

    ciao.
    Ho un exe activex importato (direttiva import)che mi crea un .tli con la seguente funzione:
    inline long _cFrameObj::GetEndLengthOffset ( _bstr_t name, VARIANT_BOOL * auto, double * Length1, double * Length2, double * rz ) {
    long _result = 0;
    HRESULT _hr = raw_GetEndLengthOffset(name, auto, Length1, Length2, rz, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
    }
    il c++(vc++ 7.0) mi da errore perchè auto è una keyword :
    c:\Documents and Settings\giugio\Documenti\Visual Studio Projects\test\MainFrm.cpp(6): warning C4279: 'auto': identifier in type library 'c:\\Programmi\\Computers and Structures\\SAP2000 11\\sap2000.exe' is a keyword; use the 'rename' qualifier
    Cos è il rename qualifer?
    come posso risolvere?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Non puoi solo chiamare quella variabile in modo diverso?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    si , potrei , ma il file (.tli) viene generato dal c++ in quanto includo un activex.
    COme faccio a non farlo generare tutte le volte che faccio partire una compilazione e a "fargli prendere" le modifiche che ho immesso?
    ciao

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Se viene generato ogni volta, non ti resta che sostituire quello modificato a quello creato ogni volta. Scomodo, ma non vedo altro modo.
    Forse qualche opzione del compilatore evita la generazione automatica, ma non lo conosco così bene. Sicuramente non è un activex scritto in C++ o C, per quello il problema non si è evidenziato in fase di creazione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    è possibile fare un include dell'exe activex e non un import e includere il .tld corretto?

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Non mi risulta.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Se viene generato ogni volta, non ti resta che sostituire quello modificato a quello creato ogni volta
    e come si fa allora?
    dato che quando faccio la compilazione viene ricreato ogni volta il file?
    devo fare in qualche modo un include del .tld
    scusami shodan ma non ho capito.

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Salvi il file modificato da qualche parte e terminata la ricompilazione, lo copi sopra quello generato dal compilatore. Puoi fare un piccolo file batch per semplificare la cosa.
    Intendo qualcosa del tipo:

    copy filemodificato.tli filecreatodalcompilatore.tli

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    il fatto è che devo fare il debug del programma,e ogni volta che parte il demug viene effettuata la compilazione,uso vs 2003.

  10. #10
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Dai un'occhiata qui:
    http://msdn.microsoft.com/en-us/libr...b6(VS.71).aspx
    e qui:
    http://msdn.microsoft.com/en-us/libr..._predir_rename

    da quel che ho capito si usa così.

    #import <activex.dll> rename("auto", "auto_t")

    oppure

    #import <activex.dll> \
    rename("auto", "auto_t")

    Edit:

    auto_rename

    When importing a type library that uses one or more C++ reserved words (keywords or macros) as variable names, the auto_rename attribute renames these reserved words by appending two underscores (__) to the variable name to resolve potential name conflicts.

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.