Domanda

Sto provando a chiamare alcune funzioni WFP da una libreria di classi CLR C ++ (New Project -> Visual C ++ -> CLR -> Class Library)

Codice:

#include <windows.h>
#include <fwpmu.h>
#pragma comment (lib, "fwpuclnt.lib")

Con solo questo, molti file di inclusione da Windows SDK non vengono compilati.Cosa mi manca?

Esempio:

Error 12 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (program files)\microsoft sdks\windows\v7.0a\include\fwptypes.h 336 1 testlib

Modifica:

Ho trovato la soluzione, è un bug in alcuni file di intestazione: http://social.msdn.microsoft.com/Forums/en/wfp/thread/8fd93a3d-a794-4233-9ff7-09b89eed6b1f

E un conflitto tra il CLR e un'altra intestazione: http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/92c473d6-c963-44fa-9150-6c6af502112b

È stato utile?

Soluzione

Altri suggerimenti

Ho anche riscontrato questo errore, ma sfortunatamente la risposta di lunga data fornita da Izm non lo ha risolto per me. Ho anche provato a riparare e reinstallare Visual Studio, tra le altre cose, senza alcun risultato.

Nel mio caso, ciò che alla fine ha risolto è stato quello di reinstallare Windows SDK per 8.0. Per qualsiasi motivo, il file non era presente nella directory C:\Program Files (x86)\Windows Kits\8.0\Include\um in cui avrebbe dovuto trovarsi. Il file si trovava in vari altri posti per altri SDK di Windows (8.1 e 10), ma non in quello utilizzato dal progetto.

Non so perché mancava, ma ho scoperto che non c'era guardando le proprietà del progetto C ++ pertinente e vedendo a cosa valutavano le opzioni di inclusione delle directory ereditate, che alla fine è stato il kit 8.0 cartella. Pensavo fosse lì da quando ho visto il file in altre cartelle, ma non era nella cartella corretta, presumibilmente perché qualcosa da qualche parte ha incasinato i file 8.0 SDK per me.

Spero che questo aiuti chiunque altro là fuori a riscontrare l'errore o simili.

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