【发布时间】:2021-02-19 08:57:31
【问题描述】:
我在 Visual Studio 上收到以下代码的编译错误。请帮助我理解问题。 如果您没有 Visual Studio,您可以尝试通过以下链接编译代码 https://rextester.com/l/cpp_online_compiler_visual
#include <iostream>
#include <atlbase.h>
#include <secext.h>
int main()
{
EXTENDED_NAME_FORMAT enf = NameFullyQualifiedDN;
LPWSTR pwszComputerName;
DWORD dwLen;
dwLen = 0;
GetComputerObjectNameW(enf, NULL, &dwLen);
pwszComputerName = new WCHAR[dwLen + 1];
if(NULL == pwszComputerName)
{
return 0;
}
if(!GetComputerObjectNameW(NameSamCompatible, pwszComputerName, &dwLen))
{
delete pwszComputerName;
return 0;
}
sbstrTrustee = pwszComputerName;
wprintf(L"GetComputerObjectName: %s\n", pwszComputerName);
delete pwszComputerName;
return 0
}
错误如下。
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(117): error C2146: syntax error: missing ';' before identifier 'GetUserNameExA'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(126): error C2086: 'BOOLEAN SEC_ENTRY': redefinition
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(117): note: see declaration of 'SEC_ENTRY'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(126): error C2146: syntax error: missing ';' before identifier 'GetUserNameExW'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(130): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(140): error C2086: 'BOOLEAN SEC_ENTRY': redefinition
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(117): note: see declaration of 'SEC_ENTRY'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(140): error C2146: syntax error: missing ';' before identifier 'GetComputerObjectNameA'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(144): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(147): error C2086: 'BOOLEAN SEC_ENTRY': redefinition
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(117): note: see declaration of 'SEC_ENTRY'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(147): error C2146: syntax error: missing ';' before identifier 'GetComputerObjectNameW'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(151): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(161): error C2086: 'BOOLEAN SEC_ENTRY': redefinition
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(117): note: see declaration of 'SEC_ENTRY'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(161): error C2146: syntax error: missing ';' before identifier 'TranslateNameA'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(167): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(170): error C2086: 'BOOLEAN SEC_ENTRY': redefinition
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(117): note: see declaration of 'SEC_ENTRY'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(170): error C2146: syntax error: missing ';' before identifier 'TranslateNameW'
C:\Program Files (x86)\Windows Kits\8.1\include\\shared\secext.h(176): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
source_file.cpp(28): error C2065: 'sbstrTrustee': undeclared identifier
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
【问题讨论】:
标签: c++ windows visual-studio