Dołączanie bibliotek SDK Windows

0

Witam
Na wstępie zaznaczę, że z C++ nie miałem do czynienia ładnych paru lat, a i wtedy tylko na poziomie akademickim.
Muszę napisać programik który podpisze mi xml za pomocą certyfikatu. Programik ma działać z wiersza poleceń, z możliwością późniejszego wykorzystania kodu w aplikacji okienkowej.
Po przekopaniu MSDN-a odkryłem że Windows ma bibliotekę, która może mi w tym pomóc (konkretnie cryptxml). Zainstalowałem więc Visual Studio Express 2013 na nowiutkiej maszynce wirtualnej z Windows 7 Sp1.
Kod mojej "Aplikacji":

#include "stdafx.h"
#include "cryptxml.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}

Mój programistyczny wzwód opadł po krótkim spojrzeniu na listę błędów (Wstawiam część dla czytelności):
//Error 1 error C2146: syntax error : missing ';' before identifier 'HCRYPTPROV' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 323 1 ConsoleApplication1
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 323 1 ConsoleApplication1
Error 3 error C2146: syntax error : missing ';' before identifier 'dwVersion' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 841 1 ConsoleApplication1
Error 4 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 841 1 ConsoleApplication1
Error 5 error C2143: syntax error : missing ';' before '' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 843 1 ConsoleApplication1
Error 6 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 843 1 ConsoleApplication1
Error 7 error C2146: syntax error : missing ';' before identifier 'cbOID' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 844 1 ConsoleApplication1
Error 8 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 844 1 ConsoleApplication1
Error 9 error C2143: syntax error : missing ';' before '
' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 850 1 ConsoleApplication1
Error 10 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 850 1 ConsoleApplication1
Error 11 error C2146: syntax error : missing ';' before identifier 'cbInnerString' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 851 1 ConsoleApplication1
Error 12 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 851 1 ConsoleApplication1
Error 13 error C2143: syntax error : missing ';' before '*' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 852 1 ConsoleApplication1
Error 14 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 852 1 ConsoleApplication1
Error 15 error C2146: syntax error : missing ';' before identifier 'cbOuterString' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 853 1 ConsoleApplication1
Error 16 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 853 1 ConsoleApplication1
Error 17 error C2146: syntax error : missing ';' before identifier 'dwUse' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 858 1 ConsoleApplication1
Error 18 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 858 1 ConsoleApplication1
Error 19 error C2146: syntax error : missing ';' before identifier 'cBits' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 860 1 ConsoleApplication1
Error 20 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 860 1 ConsoleApplication1
Error 183 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 1278 1 ConsoleApplication1
Error 184 error C2086: 'int BOOL' : redefinition c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 1278 1 ConsoleApplication1
Error 185 error C2146: syntax error : missing ')' before identifier 'hProv' c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 1280 1 ConsoleApplication1
Error 186 error C1003: error count exceeds 100; stopping compilation c:\program files (x86)\windows kits\8.1\include\um\wincrypt.h 1280 1 ConsoleApplication1
187 IntelliSense: identifier "LONG" is undefined c:\Program Files (x86)\Windows Kits\8.1\Include\shared\bcrypt.h 29 44 ConsoleApplication1
286 IntelliSense: identifier "PUCHAR" is undefined c:\Program Files (x86)\Windows Kits\8.1\Include\shared\bcrypt.h 958 34 ConsoleApplication1//

Więc teraz dochodzę do wniosku, że zrobiłem coś źle przy imporcie bibliotek, i wyobrażam sobie, że rozwiązanie jest trywialne. Czy ktoś z programistów C++ kto ma doczynienia z Windows SDK może udzielić jakiejś pomocy?

0

OK, znalazłem odpowiedź na swoje pytanie. wystarczyło dodać bibliotekę windows.h - najwyraźniej są w niej typy i makra potrzebne do korzystania z innych bibliotek SDK.
ostatecznie tak to powinno wyglądać:

#include "stdafx.h"
#include "windows.h"
#include "cryptxml.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
 

No i dalej już z górki :)
Temat do zamknięcia. Nie usuwam bo może ktoś kiedyś też będzie miał z tym problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1