Problem beim Linking
-
Hallo rundherum,
ich habe ein Problem beim Linken des folgenden Programms:#include <stdio.h> #include <stdlib.h> #include <aclapi.h> #include <lmerr.h> #include <windows.h> using namespace System; int main(array<System::String ^> ^args) { LPWSTR mystr = L"c:\\autoexec.bat"; GetNamedSecurityInfo(mystr, SE_FILE_OBJECT,DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, NULL); return 0; }Die Fehlermeldung lautet:
Verknüpfen...
clrtest.obj : error LNK2028: Nicht aufgelöstes Token (0A00000B) ""extern "C" unsigned long __stdcall GetNamedSecurityInfoW(wchar_t *,enum _SE_OBJECT_TYPE,unsigned long,void * *,void * *,struct _ACL * *,struct _ACL * *,void * *)" (?GetNamedSecurityInfoW@@$$J232YGKPA_WW4_SE_OBJECT_TYPE@@KPAPAX2PAPAU_ACL@@32@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHPAAVString@System@@@Z)" verwiesen wird.
clrtest.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned long __stdcall GetNamedSecurityInfoW(wchar_t *,enum _SE_OBJECT_TYPE,unsigned long,void * *,void * *,struct _ACL * *,struct _ACL * *,void * *)" (?GetNamedSecurityInfoW@@$$J232YGKPA_WW4_SE_OBJECT_TYPE@@KPAPAX2PAPAU_ACL@@32@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHPAAVString@System@@@Z)".Leider sagen mir diese Meldungen nicht besonders viel... ich setze Visual C++ Express Edition und das SDK für Windows Server 2003 R2 ein.
Vielleicht hat einer von euch eine Idee?
-
Füge noch ein
#pragma comment(lib, "Advapi32.lib")ein.
PS: Du verwendest explizit LPWSTR, aber die Funktion will einen LPCTSTR!
PPS: Und wenn Du nur WinAPI machst, solltest/brauchst Du keine C++/CLI Projekt erzuegen!
-
Richtig gute Hilfe, vielen Dank!