Domanda

Ho appena creato un programma VS C++ 6.0 utilizzando VS 2008.Quando tento di eseguire o eseguire il debug dell'applicazione, Vista richiede l'autorizzazione.Di cosa si tratta, nel modo in cui è costruito il programma, a causare questo?Il programma viene creato ed eseguito da una sottocartella di C:\Dev

Questa risposta non aveva senso per me come soluzione al problema.

È stato utile?

Soluzione

Possibilità 1:

Il tuo programma è contrassegnato come richiedente i diritti di amministratore nel file manifest

Possibilità 2:

Il tuo programma si chiama setup.exe o install.exe: questi nomi di programma richiedono sempre i diritti di amministratore

Per una spiegazione dettagliata di queste e altre possibilità, perché vedi questo controllo Informazioni sull'articolo Technet sul controllo dell'account utente

Altri suggerimenti

L'MVP stava parlando di far eseguire il codice e il progetto dalla cartella utente, ad esempio c:\users\yourname\appdata o qualcosa in quel percorso.

Non disabilitare l'UAC per risolvere questo problema, altrimenti l'applicazione non verrà eseguita su un altro computer a meno che non sia disattivato l'UAC.È una pratica pessima.La tua applicazione, in un mondo perfetto, dovrebbe richiedere autorizzazioni elevate da parte dell'utente.

Grazie Suma.La tua risposta è la migliore finora e mi ha aiutato ad arrivare a una soluzione.Ho stabilito che la causa è spiegata dal tuo primo suggerimento.Rinominare il file in qualcosa che non contenga la parola "setup" non ha aiutato.

Si è scoperto che mi sbagliavo.Ho installato sia VS 2005 che VS 2008 e quando ho provato ad aprire il vecchio file .dsw, è stato lanciato 2005 e mi è stato offerto di aggiornare il progetto.2005 apparentemente ha creato un manifest con una sola riga con il tag "assembly".Una volta aggiornato il progetto utilizzando VS 2008, è stato creato un file manifest più ampio.Ho confermato che il manifest è stato incorporato nel mio programma controllando l'impostazione Strumento Manifest...Input e Output...Incorpora Manifest.Questo nuovo manifest include i seguenti dati:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>   

Se non sei un amministratore, probabilmente non hai l'autorizzazione per eseguire programmi in C:\Dev.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top